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