Skip to content

hadrian: Build the stage1 "ghc" package only in the dynamic flavour by default.

Prompted by #22284 (closed)

In a regular two-stage build the only purpose of the stage1 ghc library is to be used to build stage1-ghc which will then go on to build stage2 ghc.

For a common build we would only need a static version of the stage1 ghc package if:

  • We were to load it into ghci (only possible with stage0's ghci).
  • If it's used by TH (also only possible with stage0, as stage1 does not support TH).

So it seems like a good idea to omit the static way for the stage1 ghc package. For nofib/spectral/simple/Main.hs -O2 -c the difference between -dynamic-too and only the dynamic flavour is around 15% in compile time (which tbh, is a lot more than I expected).

If building stage1-ghc is ~ 1/2 of the build time for a quick build this means we could make quick builds from scratch around 7% faster which seems worthwhile. Also saves on disk space as well.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information