Skip to main content

IOG GHC Update #20

ยท 2 min read

Triweekly update from the GHC DevX team at IOG.

Previous updates can be found here.

JS backendโ€‹

Luite: Fixed some bugs in the new JStg intermediate representation. newIdents was broken, which resulted in the same identifiers being generated multiple times (see GHC!11569. Some local variable declarations were missing, causing global variables to be used instead (or programs to fail with an error in strict mode). See GHC!11581.

Luite: Continued work on the JStg optimizer. Floating of single-use values into expressions (removing an intermediate assignment) and constant folding with integers and booleans in expressions now work. See GHC!11507 for work in progress.

Josh: Fixed several bugs remaining in ghcjs-base that occur with the JavaScript backend.

Josh: Finished updating ghcjs-base, ghcjs-dom, jsaddle, and jsaddle-dom to work with the JavaScript backend on GHC 9.8.1. These will be officially released soon, for now see:

Sylvain: fixed support for "wrapper" and "dynamic" FFI imports. This is part of the work towards linking C sources with JS sources using Emscripten. This issue came while compiling sqlite.c. GHC!11525


Sylvain: helped debugging iserv-proxy-interpreter which was failing with internal error:Evaluated a CAF that was GC'd! (see iserv-proxy!1). It turned out that this interpreter didn't disable CAF garbage collection contrary to GHC and the non-proxy external interpreter.

Sylvain: fixed a compiler panic triggered by some package database state with unusable packages GHC!11604. This has been reported quite a few times on the GHC tracker GHC#21097, GHC#11050, GHC#16996, and internally on IOG channels. Before that a workaround was to delete cabal-install's store (~/.cabal/store on Linux).

Jeff: Has been helping the Cardano team migrate to GHC-9.6.