Skip to main content

IOG GHC Update #17

ยท 2 min read

Triweekly update from the GHC DevX team at IOG.

Previous updates can be found here.

ICFPโ€‹

Most of the team was at ICFP 2023 last week!

Jeff presented our paper Stretching the Glasgow Haskell Compiler: Nourishing GHC with Domain-Driven Design at the Funarch workshop colocated with ICFP. This paper is a 6 page version of our white paper Modularizing GHC. It establishes anti-modular anti-patterns that we have found while modularizing GHC, discusses why these anti-patterns are problematic, and provides recommendation for other functional language software architects.

Luite gave a lightning talk at the Haskell Symposium on the status of the JavaScript backend in GHC, and about what you can do to make your packages work with it.

Performanceโ€‹

Sylvain: added some missing rewrite rules for cheaper Int64/Word64 to Float/Double conversions. See GHC#23907, GHC!11170, and CLC proposal #203.

GHC buildโ€‹

Hamish tried to build GHC head with haskell.nix and faced an issue with conflicting rules: two source files (Stack.cmm and Stack.c) would produce the same output object code (Stack.o). This isn't an issue for GHC which uses its adhoc build system which produces cmm/Stack.o and c/Stack.o in this case. But it is for Haskell.nix and cabal-install. See GHC#23898 and GHC!11160 for Sylvain's fix.

GHC User Experienceโ€‹

Jeff finally drove home the Haskell Foundation Error Index link merge request; it should be merged shortly. Now once GHC issues a type error the HF error link will be an actual link to its entry in the Haskell Foundation Error Index.

JS backendโ€‹

Sylvain: updated the wiki page about GHC tests still failing with the JS backend. Some failures were due to issues with the tests themselves (Cabal not finding the right ghc-pkg program to use) and have been fixed in GHC!11193.