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.