Skip to main content

IOG GHC Update #19

ยท 2 min read

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