Zubin, Sam It turns out that running hadrian/build --flavour=release docs --docs=no-sphinx is staggeringly slow. Much, much slower than --flavour=perf Moreover, and even worse, *it seems to virtually always start from scratch*. If I interrupt it and immediately re-invoke the same command, it starts from where it left off. But if I make any change (e.g. to a comment in a GHC source module) it starts again from scratch. There's a trace below. That, combined with the extremely slow compilation, makes it extremely hard to pursue my bug, because every single change requires recompiling the stage0 compiler, libraries, runtime, stage1 compiler and haddock, all from scratch, all slowly. I wonder if there is a bug in Hadrian? Simon simonpj@LHR-WD-22561:~/code/HEAD-19$ hadrian/build --flavour=release docs --docs=no-sphinx Warning: Specifying an absolute path to the project file is deprecated. Use --project-dir to set the project's directory. Up to date Warning: Specifying an absolute path to the project file is deprecated. Use --project-dir to set the project's directory. ]0;Starting...(/home/simonpj/code/HEAD-19) | Configure package 'haddock-api' | Successfully generated docs/index.html from its template | Configure package 'ghc' # cabal-configure (for _build/stage0/compiler/setup-config) Configuring ghc-9.15... Warning: Using ${pkgroot} in prefix ${pkgroot}/.. will not work if you rely on the Path_* module or other hard coded paths. Cabal does not yet support fully relocatable builds! See #462 #2302 #2994 #3305 #3473 #3586 #3909 #4097 #4291 #4872 # cabal-autogen (for _build/stage0/compiler/build/autogen/cabal_macros.h) | Successfully generated _build/stage0/compiler/build/GHC/Settings/Config.hs. | Run Alex: compiler/GHC/Parser/Lexer/String.x => _build/stage0/compiler/build/GHC/Parser/Lexer/String.hs ]0;Running for 5s [17060/69682], predicted 37m32s (0%)(/home/simonpj/code/HEAD-19) | Run Alex: compiler/GHC/Parser/Lexer.x => _build/stage0/compiler/build/GHC/Parser/Lexer.hs | Run Alex: compiler/GHC/Parser/HaddockLex.x => _build/stage0/compiler/build/GHC/Parser/HaddockLex.hs | Run Happy: compiler/GHC/Parser.y => _build/stage0/compiler/build/GHC/Parser.hs | Run Happy: compiler/GHC/Cmm/Parser.y => _build/stage0/compiler/build/GHC/Cmm/Parser.hs | Run Alex: compiler/GHC/Cmm/Lexer.x => _build/stage0/compiler/build/GHC/Cmm/Lexer.hs | Copy file: compiler/GHC/Parser.hs-boot => _build/stage0/compiler/build/GHC/Parser.hs-boot | Run Ghc FindHsDependencies (Stage0 InTreeLibs): compiler/GHC.hs (and 845 more) => _build/stage0/compiler/.dependencies.mk ]0;Running for 10s [17463/69682], predicted 33m52s (0%)(/home/simonpj/code/HEAD-19) ]0;Running for 15s [17463/69682], predicted 33m52s (0%)(/home/simonpj/code/HEAD-19) On Mon, 13 Apr 2026 at 05:21, Zubin Duggal <zubin@well-typed.com> wrote:
That is failing in haddock, which is trying to compile ghc-internal in --make mode (as opposed to hadrian which compiles using one-shot mode)
To reproduce, you can build haddocks using
hadrian/build --flavour=release docs --docs=no-sphinx
the --docs=no-sphinx part is optional, it avoids polluting your output with building sphinx docs for the ghc users guide.
On 26/04/12 22:47, Simon Peyton Jones via ghc-devs wrote:
Friends
I'm working on !15719, which is a big step towards making `base` reinstallable.
But in one build I'm getting a strange failure, below, just in one build x86_64-linux-fedora43-release
https://gitlab.haskell.org/ghc/ghc/-/jobs/2484333
Now, it's likely that this failure is due to my patch. *But I can't reproduce it locally*. How can I repo? I tried
hadrian/build --flavour=release
but that didn't fall over.
Thanks!
Simon
* Raised the exception: Development.Shake.cmd, system command failed Command line: _build/stage1/bin/haddock --verbosity=0 -B_build/stage1/lib --lib=_build/stage1/lib --odir=_build/doc/html/libraries/ghc-internal-9.1500.0
--dump-interface=_build/doc/html/libraries/ghc-internal-9.1500.0/ghc-internal.haddock --html '--title=ghc-internal-9.1500.0: Basic libraries'
--prologue=_build/doc/html/libraries/ghc-internal-9.1500.0/haddock-prologue.txt --optghc=-D__HADDOCK_VERSION__=2300 --hide=GHC.Internal.IO.Handle.Lock.Common --hide=GHC.Internal.IO.Handle.Lock.Flock --hide=GHC.Internal.IO.Handle.Lock.LinuxOFD --hide=GHC.Internal.IO.Handle.Lock.NoOp --hide=GHC.Internal.IO.Handle.Lock.Windows --hide=GHC.Internal.Event.Arr --hide=GHC.Internal.Event.Array --hide=GHC.Internal.Event.Internal --hide=GHC.Internal.Event.Internal.Types --hide=GHC.Internal.Event.IntTable --hide=GHC.Internal.Event.IntVar --hide=GHC.Internal.Event.PSQ --hide=GHC.Internal.Event.Unique --hide=GHC.Internal.Unicode.Bits --hide=GHC.Internal.Unicode.Char.DerivedCoreProperties --hide=GHC.Internal.Unicode.Char.UnicodeData.GeneralCategory --hide=GHC.Internal.Unicode.Char.UnicodeData.SimpleLowerCaseMapping --hide=GHC.Internal.Unicode.Char.UnicodeData.SimpleTitleCaseMapping --hide=GHC.Internal.Unicode.Char.UnicodeData.SimpleUpperCaseMapping --hide=GHC.Internal.System.Environment.ExecutablePath --hide=GHC.Internal.Bignum.Backend.GMP --hide=GHC.Internal.Event.Control --hide=GHC.Internal.Event.EPoll --hide=GHC.Internal.Event.KQueue --hide=GHC.Internal.Event.Manager --hide=GHC.Internal.Event.Poll --hide=GHC.Internal.Event.Thread --hide=GHC.Internal.Event.TimerManager --optghc=-hisuf --optghc=dyn_hi --optghc=-osuf --optghc=dyn_o --optghc=-hcsuf --optghc=dyn_hc --optghc=-fPIC --optghc=-dynamic --optghc=-hide-all-packages --optghc=-no-user-package-db '--optghc=-package-env -' '--optghc=-this-unit-id ghc-internal-9.1500.0-7cec' '--optghc=-this-package-name ghc-internal' '--optghc=-package-id rts-1.0.3' --optghc=-i --optghc=-i/builds/ghc/ghc/_build/stage1/libraries/ghc-internal/build
--optghc=-i/builds/ghc/ghc/_build/stage1/libraries/ghc-internal/build/autogen --optghc=-i/builds/ghc/ghc/libraries/ghc-internal/src --optghc=-Irts/include --optghc=-I_build/stage1/libraries/ghc-internal/build --optghc=-I_build/stage1/libraries/ghc-internal/build/include --optghc=-Ilibraries/ghc-internal/include --optghc=-I/builds/ghc/ghc/rts/include --optghc=-I/builds/ghc/ghc/_build/stage1/rts/build/include --optghc=-I/builds/ghc/ghc/libraries/libffi-clib/src/x86
--optghc=-I/builds/ghc/ghc/_build/stage1/libraries/libffi-clib/build/src/x86 --optghc=-I/builds/ghc/ghc/libraries/libffi-clib/include
--optghc=-I/builds/ghc/ghc/_build/stage1/libraries/libffi-clib/build/include --optghc=-optP-include
--optghc=-optP_build/stage1/libraries/ghc-internal/build/autogen/cabal_macros.h --optghc=-optP-DBIGNUM_GMP --optghc=-outputdir --optghc=_build/stage1/libraries/ghc-internal/build --optghc=-package-env=- --optghc=-this-unit-id --optghc=ghc-internal --optghc=-frebindable-known-key-names --optghc=-Wcompat --optghc=-Wnoncanonical-monad-instances --optghc=-XHaskell2010 --optghc=-XNoImplicitPrelude --optghc=-no-global-package-db --optghc=-package-db=/builds/ghc/ghc/_build/stage1/inplace/package.conf.d --optghc=-ghcversion-file=rts/include/ghcversion.h --optghc=-ghcversion-file=rts/include/ghcversion.h --optghc=-package-env=- --optghc=-this-unit-id --optghc=ghc-internal --optghc=-frebindable-known-key-names --optghc=-Wcompat --optghc=-Wnoncanonical-monad-instances --optghc=-XHaskell2010 --optghc=-XNoImplicitPrelude --optghc=-no-global-package-db --optghc=-package-db=/builds/ghc/ghc/_build/stage1/inplace/package.conf.d --optghc=-ghcversion-file=rts/include/ghcversion.h --optghc=-ghcversion-file=rts/include/ghcversion.h --optghc=-Wno-deprecated-flags --optghc=-Wno-trustworthy-safe +RTS -t_build/stage1/haddock-timing-files/ghc-internal.t --machine-readable -RTS --hyperlinked-source --hoogle --quickjump @/tmp/extra-file-93748803258994-2958-12008 Exit code: 1 Stderr: libraries/ghc-internal/src/GHC/Internal/Types.hs:1:1: error: [GHC-58427] attempting to use module ‘ghc-internal-9.1500.0:GHC.Internal.Types’ (libraries/ghc-internal/src/GHC/Internal/Types.hs) which is not loaded | 1 | {-# LANGUAGE Trustworthy #-} -- So that we can import in into Safe modules | ^ Build failed.
_______________________________________________ ghc-devs mailing list -- ghc-devs@haskell.org To unsubscribe send an email to ghc-devs-leave@haskell.org