Skip to content

Hadrian UX request: print input and output files on different lines

Having temporarily slid back to using make due to #20498 (closed), I realized how much I missed the very clean output from make with V=0 in build.mk.

Here's make:

  HC [stage 0] compiler/stage1/build/GHC/Tc/Utils/Env.o
  HC [stage 0] compiler/stage1/build/GHC/Rename/Fixity.o
  HC [stage 0] compiler/stage1/build/GHC/Linker/Loader.o
  HC [stage 0] compiler/stage1/build/GHC/Iface/Recomp.o
  HC [stage 0] compiler/stage1/build/GHC/IfaceToCore.o
  HC [stage 0] compiler/stage1/build/GHC/Rename/Utils.o
  HC [stage 0] compiler/stage1/build/GHC/Tc/Utils/Zonk.o

Here's Hadrian:

| Run Ghc CompileHs Stage1: compiler/GHC/Tc/TyCl.hs => _build/stage1/compiler/bu
ild/GHC/Tc/TyCl.o
| Run Ghc CompileHs Stage1: compiler/GHC/Tc/Gen/Head.hs => _build/stage1/compile
r/build/GHC/Tc/Gen/Head.o
| Run Ghc CompileHs Stage1: compiler/GHC/Tc/TyCl/Instance.hs => _build/stage1/co
mpiler/build/GHC/Tc/TyCl/Instance.o
| Run Ghc CompileHs Stage1: compiler/GHC/Tc/Gen/Rule.hs => _build/stage1/compile
r/build/GHC/Tc/Gen/Rule.o
| Run Ghc CompileHs Stage1: compiler/GHC/Tc/Module.hs => _build/stage1/compiler/
build/GHC/Tc/Module.o
| Run Ghc CompileHs Stage1: compiler/GHC/Tc/Gen/Splice.hs => _build/stage1/compi
ler/build/GHC/Tc/Gen/Splice.o
| Run Ghc CompileHs Stage1: compiler/GHC/Runtime/Eval.hs => _build/stage1/compil
er/build/GHC/Runtime/Eval.o

I have manually wrapped the Hadrian output as it appears on my 80-char wide terminal window. (Maybe I'm the only person still using 80-char-wide terminals? But I doubt it.)

The location information of the source files is marginally useful. ("marginally": most of the time it can easily be deduced from the location of the output; "useful": sometimes -- e.g. the parser -- it can't be). But can the output and input files be printed on different lines? Then the likelihood of everything fitting in 80 characters is much increased. For example:

| Run Ghc CompileHs Stage1: compiler/GHC/Tc/TyCl.hs
     => _build/stage1/compiler/build/GHC/Tc/TyCl.o
| Run Ghc CompileHs Stage1: compiler/GHC/Tc/Gen/Head.hs
     => _build/stage1/compiler/build/GHC/Tc/Gen/Head.o
| Run Ghc CompileHs Stage1: compiler/GHC/Tc/TyCl/Instance.hs 
     => _build/stage1/compiler/build/GHC/Tc/TyCl/Instance.o
| Run Ghc CompileHs Stage1: compiler/GHC/Tc/Gen/Rule.hs 
     => _build/stage1/compiler/build/GHC/Tc/Gen/Rule.o
| Run Ghc CompileHs Stage1: compiler/GHC/Tc/Module.hs
     => _build/stage1/compiler/build/GHC/Tc/Module.o
| Run Ghc CompileHs Stage1: compiler/GHC/Tc/Gen/Splice.hs
     => _build/stage1/compiler/build/GHC/Tc/Gen/Splice.o
| Run Ghc CompileHs Stage1: compiler/GHC/Runtime/Eval.hs
     => _build/stage1/compiler/build/GHC/Runtime/Eval.o

Note that I have cleverly indented the second line by 5 spaces so that the filenames match up vertically. This won't always work, but when it does, it's nice.

Thanks, Hadrian folks!

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