Skip to main content

IOG GHC Update #38

ยท 2 min read

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