Biweekly update from the GHC DevX team at IOG.
Previous updates can be found here.
JavaScript backend​
Luite: implemented JS support for running interactive processes via the
processlibrary by using NodeJS features. See Process#292. This change fixes a major issue with Cabal's customSetup.hsscripts which are built with the JS backend (i.e. when not using haskell.nix) as these scripts need to run other processes such asghcinteractively.Sylvain: fixed an issue with exception pretty-printing. GHC#23565 and GHC!10739.
Sylvain: fixed an issue with levity polymorphic data constructors. GHC#22360 and GHC!10681. It also fixed GHC#22291 as a side-effect.
Sylvain: disabled dumping the
eventlogintostderrby default GHC!10677. We still neeed a better eventlog implementation but at least it fixed theT16707test in thestmpackage that was failing fo a reason unrelated to stm.Josh: worked on updating
ghcjs-domandghcjs-baseto support the JS backend. This requires changes to some dependencies that have GHCJS FFI import strings, as well as dependencies that are broken by GHC 9.8. See: splitmix!75Jeff: Changed the CI runner on gitlab to split the JavaScript job into two jobs: a debug build and a performance build. This re-enables performance testing and tracking on GHC's testsuite for the JavaScript backend. GHC!10576
Jeff: Opened the JStg draft MR. This MR is the next step on the roadmap to add GHCJS's optimizer to the JS backend. It adds a new IR to the JavaScript backend pipeline that allows us to separate concerns in the code base. The current pipeline uses the same IR to write the RTS and garbage collector, as a target to compile STG to and as a optimization target. As a consequence the IR is not a particularly good optimization target nor a good eDSL for the RTS and GC. With this MR we'll have the beginnings of a good eDSL for the RTS and GC, which allows for a better IR for the code generator and optimizer.
Deprecation warnings​
- Bartek: Deprecating exports proposal is now implemented in GHC 9.8
Incomplete Record Selectors​
- Bartek: The MR for the Incomplete Record Selectors warning is ready, waiting for another MR to fix the long-range PMC information in do-notations
Cabal​
- Josh: added support for
js/asm/cmmsources to executable components, and factorised the overlapping code forc/cpp/js/asm/cmmsource handling for both library and executable components. See: Cabal!9061.
GHCi​
Miscellaneous​
Bartek: Almost finished investigating some of the cases for record fields not emitting custom warnings. See GHC#23279 for details
Jeff: FUNARCH GHC modularity paper was accepted! See you at ICFP.
Sylvain: implemented a
-prelude-isGHC flag to make thePreludemodule selectable, following the discussion on Discourse. See ticket GHC#23551 and merge request GHC!10704. Not sure if/when it's going to be merged. Do show your support on the issue if you want this.