PS On a hunch I tried adding `-r` to the hadrian command line.  That did
work; the funny @ file doesn't get deleted.  I suppose I can always add
-r.  But in a full build I assume it'll make thousands of these funny
files, and now they stay around forever right?

And indeed my root directory is now full of funny files. See below.

I suppose I can delete them all every now and again, but it's all work

Simon


simonpj@PF55P26D:~/code/HEAD-31$ ls
CODEOWNERS driver       hadrian-rsp115834-23  hadrian-rsp115834-46
HACKING.md foo       hadrian-rsp115834-24  hadrian-rsp115834-5
INSTALL.md foo-patch       hadrian-rsp115834-25  hadrian-rsp115834-6
LICENSE foo.~1~       hadrian-rsp115834-26  hadrian-rsp115834-7
README.md ghc       hadrian-rsp115834-27  hadrian-rsp115834-8
VERSION ghc-interp.js       hadrian-rsp115834-28  hadrian-rsp115834-9
_build hadrian       hadrian-rsp115834-29  hie.yaml
aclocal.m4 hadrian-rsp115369-0   hadrian-rsp115834-3   install-sh
autom4te.cache hadrian-rsp115532-0   hadrian-rsp115834-30  libraries
bindisttest hadrian-rsp115834-0   hadrian-rsp115834-31  linters
boot hadrian-rsp115834-1   hadrian-rsp115834-32  llvm-passes
cabal.project-reinstall  hadrian-rsp115834-10  hadrian-rsp115834-33
 llvm-targets
changelog.d hadrian-rsp115834-11  hadrian-rsp115834-34  m4
closure-patch hadrian-rsp115834-12  hadrian-rsp115834-35  mk
compile_flags.txt hadrian-rsp115834-13  hadrian-rsp115834-36  nofib
compiler hadrian-rsp115834-14  hadrian-rsp115834-37  packages
config.guess hadrian-rsp115834-15  hadrian-rsp115834-38  rts
config.log hadrian-rsp115834-16  hadrian-rsp115834-39  sync-hi
config.status hadrian-rsp115834-17  hadrian-rsp115834-4   testsuite
config.sub hadrian-rsp115834-18  hadrian-rsp115834-40  testsuite_summary.txt
configure hadrian-rsp115834-19  hadrian-rsp115834-41  utils
configure.ac hadrian-rsp115834-2   hadrian-rsp115834-42  validate
configure~ hadrian-rsp115834-20  hadrian-rsp115834-43
distrib hadrian-rsp115834-21  hadrian-rsp115834-44
docs hadrian-rsp115834-22  hadrian-rsp115834-45
simonpj@PF55P26D:~/code/HEAD-31$

On Fri, 1 May 2026 at 23:35, Simon Peyton Jones <[email protected]>
wrote:

> Friends
>
> Something extremely tiresome has happened to Hadrian.
>
> When I'm compiling GHC, and I get a type error, Hadrian helpfully tells me
> the command line that broke.  I often copy/paste that command line to
> re-run it, for two reasons:
>
>    - It is much much faster than running Hadrian from scratch, as I
>    repeatedly try to compile the same source file.
>    - More important, when building libraries or the stage2 compiler, I
>    often want to add lots of debug or tracing flags to the command line, so I
>    can find what is wrong with the stage1 compiler.  This is utterly
>    essential.
>    - Indeed I often make a deliberate syntax error in (say) a library
>    module, run Hadrian, watch it fall over with that syntax error, so I get
>    the command line.  Then I fix the deliberate error and repeatedly compile
>    that one file with lots of tracing.
>
> But now something has broken.  If I re-run the command I get
>
> simonpj@PF55P26D:~/code/HEAD-31$ /home/simonpj/.ghcup/bin/ghc -Wall
> -hisuf hi -osuf o -hcsuf hc -static -hide-all-packages -no-user-package-db
> '-package-env -' '-package-db _build/stage0/inplace/package.conf.d'
> '-this-unit-id ghc-10.1-inplace' '-this-package-name ghc' '-package-id
> array-0.5.8.0-9044' '-package-id base-4.21.0.0-ae91' '-package-id
> binary-0.8.9.3-25e5' '-package-id bytestring-0.12.2.0-7dd0' '-package-id
> containers-0.7-5a8f' '-package-id deepseq-1.5.1.0-6837' '-package-id
> directory-1.3.10.1-inplace' '-package-id exceptions-0.10.9-4d2e'
> '-package-id filepath-1.5.4.0-inplace' '-package-id ghc-boot-10.1-inplace'
> '-package-id ghc-boot-th-next-10.1-inplace' '-package-id
> ghc-heap-9.12.2-4363' '-package-id ghc-toolchain-0.1.0.0-inplace'
> '-package-id ghci-10.1-inplace' '-package-id hpc-0.7.0.2-inplace'
> '-package-id os-string-2.0.8-inplace' '-package-id
> process-1.6.26.1-inplace' '-package-id rts-1.0.2' '-package-id
> semaphore-compat-1.0.0-inplace' '-package-id stm-2.5.3.1-d35b' '-package-id
> text-2.1.2-ecdb' '-package-id time-1.15-inplace' '-package-id
> transformers-0.6.1.2-38b1' '-package-id unix-2.8.8.0-inplace' -i
> -i/home/simonpj/code/HEAD-31/_build/stage0/compiler/build
> -i/home/simonpj/code/HEAD-31/_build/stage0/compiler/build/autogen
> -i/home/simonpj/code/HEAD-31/compiler/ -I_build/stage0/compiler/build
> -I_build/stage0/compiler/build/. -Icompiler/.
> -I/home/simonpj/code/HEAD-31/libraries/process/include
> -I/home/simonpj/code/HEAD-31/_build/stage0/libraries/process/build/include
> -I/home/simonpj/code/HEAD-31/libraries/directory
> -I/home/simonpj/code/HEAD-31/_build/stage0/libraries/directory/build
> -I/home/simonpj/code/HEAD-31/libraries/unix/include
> -I/home/simonpj/code/HEAD-31/_build/stage0/libraries/unix/build/include
> -I/home/simonpj/code/HEAD-31/libraries/time/lib/include
> -I/home/simonpj/code/HEAD-31/_build/stage0/libraries/time/build/lib/include
> -I/home/simonpj/.ghcup/ghc/9.12.2/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-a828/bytestring-0.12.2.0-7dd0/include
> -I/home/simonpj/.ghcup/ghc/9.12.2/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-a828/ghc-internal-9.1202.0-1465/include
> -I/home/simonpj/.ghcup/ghc/9.12.2/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-a828/ghc-bignum-1.3-6db4/include
> -I/home/simonpj/.ghcup/ghc/9.12.2/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-a828/rts-1.0.2/include
> -optP-include -optP_build/stage0/compiler/build/autogen/cabal_macros.h
> -optP-DCAN_LOAD_DLL -outputdir _build/stage0/compiler/build
> -fdiagnostics-color=always -Wall -Wno-name-shadowing
> -Wnoncanonical-monad-instances -Wnoncanonical-monoid-instances -XGHC2024
> -XNoImplicitPrelude -optc-Wno-error=inline -c -o
> _build/stage0/compiler/build/GHC/Core.o -DDEBUG -haddock
> -fno-warn-deprecated-flags -O +RTS -O64M -RTS -O2
> @/tmp/extra-file-9558430904709-115211-0
> ghc-9.12.2: panic! (the 'impossible' happened)
>   GHC version 9.12.2:
> processArgs: no arg yet
>
> It's that pesky "@" thing.   And of course GHC has deleted that tmp file.
>
> Super frustrating.  What can I do?  Do we have to use the pesky @ thing?
> It's just complicating things!
>
> ALSO, *all the error messages come out twice*, which is disconcerting and
> tiresome.  See below.
>
> Thanks
>
> Simon
>
>
> simonpj@PF55P26D:~/code/HEAD-31$ hadrian/build -j6
> --flavour=perf+assertions_stage1+no_profiled_libs+ticky_ghc+lint
> Warning: Specifying an absolute path to the project file is deprecated. Use
> --project-dir to set the project's directory.
> Configuration is affected by cabal.project at
> '/home/simonpj/code/HEAD-31/hadrian'.
> Up to date
> Warning: Specifying an absolute path to the project file is deprecated. Use
> --project-dir to set the project's directory.
> Configuration is affected by cabal.project at
> '/home/simonpj/code/HEAD-31/hadrian'.
> ]0;Starting...(/home/simonpj/code/HEAD-31) | Run Ghc CompileHs (Stage0
> InTreeLibs): compiler/GHC/Core.hs => _build/stage0/compiler/build/GHC/Core.o
> ]0;Running for 5s [9912/37741], predicted 4m26s
> (1%)(/home/simonpj/code/HEAD-31) compiler/GHC/Core.hs:1680:41: error:
> [GHC-88464]
>     Variable not in scope:
>       mkTick :: CoreTickish -> CoreExpr -> CoreExpr
>     Suggested fix: Perhaps use data constructor ‘Tick’ (line 270)
>      |
> 1680 | wrapFloat (FloatTick t)          body = mkTick t body
>      |                                         ^^^^^^
>
> compiler/GHC/Core.hs:1682:41: error: [GHC-88464]
>     Variable not in scope:
>       mkSingleAltCase
>         :: CoreExpr -> Id -> AltCon -> [Var] -> CoreExpr -> CoreExpr
>      |
> 1682 | wrapFloat (FloatCase e b con bs) body = mkSingleAltCase e b con bs
> body
>      |                                         ^^^^^^^^^^^^^^^
>
> ]0;Finished in 5.74s(/home/simonpj/code/HEAD-31) Development.Shake.cmd,
> system command failed
> Command line: /home/simonpj/.ghcup/bin/ghc -Wall -hisuf hi -osuf o -hcsuf
> hc -static -hide-all-packages -no-user-package-db '-package-env -'
> '-package-db _build/stage0/inplace/package.conf.d' '-this-unit-id
> ghc-10.1-inplace' '-this-package-name ghc' '-package-id array-0.5.8.0-9044'
> '-package-id base-4.21.0.0-ae91' '-package-id binary-0.8.9.3-25e5'
> '-package-id bytestring-0.12.2.0-7dd0' '-package-id containers-0.7-5a8f'
> '-package-id deepseq-1.5.1.0-6837' '-package-id directory-1.3.10.1-inplace'
> '-package-id exceptions-0.10.9-4d2e' '-package-id filepath-1.5.4.0-inplace'
> '-package-id ghc-boot-10.1-inplace' '-package-id
> ghc-boot-th-next-10.1-inplace' '-package-id ghc-heap-9.12.2-4363'
> '-package-id ghc-toolchain-0.1.0.0-inplace' '-package-id ghci-10.1-inplace'
> '-package-id hpc-0.7.0.2-inplace' '-package-id os-string-2.0.8-inplace'
> '-package-id process-1.6.26.1-inplace' '-package-id rts-1.0.2' '-package-id
> semaphore-compat-1.0.0-inplace' '-package-id stm-2.5.3.1-d35b' '-package-id
> text-2.1.2-ecdb' '-package-id time-1.15-inplace' '-package-id
> transformers-0.6.1.2-38b1' '-package-id unix-2.8.8.0-inplace' -i
> -i/home/simonpj/code/HEAD-31/_build/stage0/compiler/build
> -i/home/simonpj/code/HEAD-31/_build/stage0/compiler/build/autogen
> -i/home/simonpj/code/HEAD-31/compiler/ -I_build/stage0/compiler/build
> -I_build/stage0/compiler/build/. -Icompiler/.
> -I/home/simonpj/code/HEAD-31/libraries/process/include
> -I/home/simonpj/code/HEAD-31/_build/stage0/libraries/process/build/include
> -I/home/simonpj/code/HEAD-31/libraries/directory
> -I/home/simonpj/code/HEAD-31/_build/stage0/libraries/directory/build
> -I/home/simonpj/code/HEAD-31/libraries/unix/include
> -I/home/simonpj/code/HEAD-31/_build/stage0/libraries/unix/build/include
> -I/home/simonpj/code/HEAD-31/libraries/time/lib/include
> -I/home/simonpj/code/HEAD-31/_build/stage0/libraries/time/build/lib/include
> -I/home/simonpj/.ghcup/ghc/9.12.2/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-a828/bytestring-0.12.2.0-7dd0/include
> -I/home/simonpj/.ghcup/ghc/9.12.2/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-a828/ghc-internal-9.1202.0-1465/include
> -I/home/simonpj/.ghcup/ghc/9.12.2/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-a828/ghc-bignum-1.3-6db4/include
> -I/home/simonpj/.ghcup/ghc/9.12.2/lib/ghc-9.12.2/lib/x86_64-linux-ghc-9.12.2-a828/rts-1.0.2/include
> -optP-include -optP_build/stage0/compiler/build/autogen/cabal_macros.h
> -optP-DCAN_LOAD_DLL -outputdir _build/stage0/compiler/build
> -fdiagnostics-color=always -Wall -Wno-name-shadowing
> -Wnoncanonical-monad-instances -Wnoncanonical-monoid-instances -XGHC2024
> -XNoImplicitPrelude -optc-Wno-error=inline -c -o
> _build/stage0/compiler/build/GHC/Core.o -DDEBUG -haddock
> -fno-warn-deprecated-flags -O +RTS -O64M -RTS -O2
> @/tmp/extra-file-80099975488219-115449-0
> Exit code: 1
> Stderr:
> compiler/GHC/Core.hs:1680:41: error: [GHC-88464]
>     Variable not in scope:
>       mkTick :: CoreTickish -> CoreExpr -> CoreExpr
>     Suggested fix: Perhaps use data constructor ‘Tick’ (line 270)
>      |
> 1680 | wrapFloat (FloatTick t)          body = mkTick t body
>      |                                         ^^^^^^
>
> compiler/GHC/Core.hs:1682:41: error: [GHC-88464]
>     Variable not in scope:
>       mkSingleAltCase
>         :: CoreExpr -> Id -> AltCon -> [Var] -> CoreExpr -> CoreExpr
>      |
> 1682 | wrapFloat (FloatCase e b con bs) body = mkSingleAltCase e b con bs
> body
>      |                                         ^^^^^^^^^^^^^^^
>
>
> Build failed.
>
>
_______________________________________________
ghc-devs mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to