Triweekly update from the GHC DevX team at IOG.
Previous updates can be found here.
Stabilityโ
We've published Bartek's blog post about his internship at IOG on GHC stability features: https://engineering.iog.io/2023-10-25-internship
Maintenanceโ
Sylvain: fixed out-of-bounds array access bug in ghc-bignum
.
See GHC#24066
and GHC!11412.
Sylvain: got access to a big-endian PowerPC architectures on the GCC Compile Farm and started debugging endianness-related GHC bugs. See GHC#18431, GHC#23387, GHC!11473.
JS backendโ
Sylvain: worked on improving support for C sources with the JS backend
(e.g. to link with sqlite
compiled to JavaScript/Wasm with Emscripten).
The work is still in progress and you can follow progresses in
GHC!11502.
See also related refactoring merge requests GHC!11437
and GHC!11504.
Josh: merged documentation on replacing C FFI functions in libraries for the JS backend. See GHC!11291
Josh: added a ticket with a task list of C functions used in boot libraries that need to be replaced for the JS backend. See GHC#24015
Jeff: Finished splitting the JS Backend IR, JStat
, into two: JStg
and JStat
. This substantially cleans up the JS backend's DSL and makes it harder to write unsafe code in the DSL. More importantly this patch paves the way for the optimizer and for a more robust typed eDSL to express the JS Backend's runtime system in. See GHC!10722 for more.
Luite: Worked on bringing back an optimizer for the JS backend. The goal is to reduce code size and memory consumption during linking. An initial version reduced code size of a "hello world" program by 26.9%, and additional analysis should improve this more. See GHC!11507