Triweekly update from the GHC DevX team at IOG.
Previous updates can be found here.
High-level Summaryโ
The team has been working on the preparation of a GHC 9.6.7 release with a fix for the Cardano node and investigating how to simplify the build of GHC distributions.
See details below for the more general maintenance and improvement fixes.
Detailsโ
Performanceโ
Luite: Created a stand-alone testcase for GHC#25284 so possible mitigations can be tested quickly. Discussed some options to improve the flags we created earlier (GHC!13556).
Jeff: investigated variations in Plutus criterion benchmarks (possibly related to GC).
Toolchainโ
Luite: Worked on preparing the upcoming GHC 9.6.7 release by backporting and testing patches: See luite/ghc/wip/ghc-9.6-backports.
Sylvain: investigated how to build GHC differently (e.g. without Hadrian). Work still in progress.
Sylvain: experimented with using HPP instead of the C toolchain as a CPP preprocessor to build GHC. I had to implement some features and to fix a few bugs to support CPP as used in the RTS:
- Add support for macros with empty argument list: HPP#7
- Fix removal of C comments (otherwise we tried to substitute macros in them): HPP#8
- Add support for variadic macros: HPP#10
- Fix line counting for
__LINE__
support and#line
token insertion: HPP#6, HPP#11 and HPP#12
Shoutout to HPP's author and maintainer Anthony Cowley who has been very responsive.
Maintenanceโ
Sylvain: reviewed GHC patches about the JS backend