Triweekly update from the GHC DevX team at IOG.
Previous updates can be found here.
CI / Testsuite​
- Sylvain: implemented
openat
in JavaScript. See GHC#23697 and GHC!10909. Found while working onunix
's package testsuite (see Unix!285.
Performance​
Josh: investigated alternative implementations of the union function for GHC's UDFM type, with the intent of removing the use of
Data.List.sort
. For unknown reasons, there were mixed results in GHC's performance tests.Josh: investigated the performance of package database loading in GHC. In comparing ticky profiles of simple builds with and without package databases (see https://github.com/haskell/cabal/issues/4093), there was a large amount of excess entries into
Word64Map.insert
andList.++
. More investigation is required to find the source of these entries.Luite: Investigated memory consumption of GHC when linking large JavaScript results. GHC consumes over 10GB of memory when linking various test cases in the testsuite that compile the GHC API to JavaScript. Investigation is still ongoing, see GHC#23882.
Jeff: Finished investigating a performance regression in cardano-ledger when migrating from GHC-8.10.7 to GHC-9.2.8 and the report. This work will be rolled into a chapter for the Optimization Handbook.
JS Backend​
Josh: Built the GHCJS libraries against the first GHC 9.8 alpha release. There are many version bumps required in
ghcjs-base
dependencies, due to boot library changes, but not many code changes. Because of various JS backend fixes in GHC 9.8, these library updates will delay the release of the GHCJS libraries for the JS backend.Luite: The
process
submodule has been bumped to include support for the JavaScript backend and to fix a bug on macOS. This also enables JavaScript CI tests for theprocess
package. From now onprocess
can be used for the JavaScript target, for example to build node.js scripts that manage other processes or packages that use the Cabal custom setup method.
Miscellaneous​
Jeff: Finished his presentation for FUNARCH 2023. See you at ICFP!
Bartek: Finished his internship with us and has moved on to his next year of study. We enjoyed his stay, wish him the best of luck, and appreciate his labor.