[GHC] #12807: GHC is too verbose by default (source/object paths)

GHC ghc-devs at haskell.org
Fri Nov 4 21:30:54 UTC 2016


#12807: GHC is too verbose by default (source/object paths)
-------------------------------------+-------------------------------------
           Reporter:  hsyl20         |             Owner:  hsyl20
               Type:  feature        |            Status:  new
  request                            |
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  8.0.1
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  Other
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 With the default verbosity, GHC shows the path of the source file and the
 path of the object file (or "interpreted" in GHCi) making the lines very
 long as in the following example:

 {{{
 [133 of 159] Compiling ViperVM.Arch.Linux.Internals.Input (
 src/lib/ViperVM/Arch/Linux/Internals/Input.hs, .stack-
 work/dist/x86_64-linux/Cabal-1.24.0.0/build/ViperVM/Arch/Linux/Internals/Input.o
 )
 [134 of 159] Compiling ViperVM.Arch.Linux.Input (
 src/lib/ViperVM/Arch/Linux/Input.hs, .stack-
 work/dist/x86_64-linux/Cabal-1.24.0.0/build/ViperVM/Arch/Linux/Input.o )
 [135 of 159] Compiling ViperVM.System.Input (
 src/lib/ViperVM/System/Input.hs, .stack-
 work/dist/x86_64-linux/Cabal-1.24.0.0/build/ViperVM/System/Input.o )
 [136 of 159] Compiling ViperVM.Arch.Linux.Internals.Sound (
 src/lib/ViperVM/Arch/Linux/Internals/Sound.hs, .stack-
 work/dist/x86_64-linux/Cabal-1.24.0.0/build/ViperVM/Arch/Linux/Internals/Sound.o
 )
 [137 of 159] Compiling ViperVM.Arch.Linux.Internals.Graphics (
 src/lib/ViperVM/Arch/Linux/Internals/Graphics.hs, .stack-
 work/dist/x86_64-linux/Cabal-1.24.0.0/build/ViperVM/Arch/Linux/Internals/Graphics.o
 )
 }}}

 In most cases, I think we don't need these paths. I propose that we keep
 this output for the verbose mode and that we change the default behaviour
 to something like:
 {{{
 [135 of 159] Compiling ViperVM.System.Input (.hs -> .o)
 [136 of 159] Compiling ViperVM.Arch.Linux.Internals.Sound (.hs -> .o)
 -- GHCi
 [137 of 159] Compiling ViperVM.Arch.Linux.Internals.Graphics (.hs ->
 interpreted)
 }}}

 It is also particularily nice with BackPack that uses hashes in output
 paths: we may not want to expose them to users by default. Example:

 {{{#!patch
    [1 of 1] Including p[A=r:A]
      Instantiating p[A=r:A]
 -    [1 of 2] Compiling A[sig]           ( p/A.hsig,
 bkp26.out/p/p-8YQRY0unRYZCev5HBjXieS/A.o )
 -    [2 of 2] Compiling P                ( p/P.hs,
 bkp26.out/p/p-8YQRY0unRYZCev5HBjXieS/P.o )
 -  [1 of 1] Compiling M                ( q/M.hs, bkp26.out/q/M.o )
 +    [1 of 2] Compiling A[sig]          (.hsig -> .o)
 +    [2 of 2] Compiling P               (.hs -> .o)
 +  [1 of 1] Compiling M               (.hs -> .o)
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12807>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list