[Hackage] #487: print less useless info during builds
Hackage
trac at galois.com
Mon Feb 2 06:01:59 EST 2009
#487: print less useless info during builds
------------------------------+---------------------------------------------
Reporter: duncan | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone:
Component: Cabal library | Version: 1.6.0.1
Severity: minor | Keywords:
Difficulty: easy (<4 hours) | Ghcversion:
Platform: |
------------------------------+---------------------------------------------
Here's an example from a blog post:
{{{
$ cabal update
$ cabal install gofer-prelude
Resolving dependencies...
Downloading gofer-prelude-2.30...
Configuring gofer-prelude-2.30...
Preprocessing library gofer-prelude-2.30...
Building gofer-prelude-2.30...
[1 of 1] Compiling Prelude.Gofer ( Prelude/Gofer.hs,
dist/build/Prelude/Gofer.o )
/usr/bin/ar: creating dist/build/libHSgofer-prelude-2.30.a
Installing library in /home/dons/.cabal/lib/gofer-prelude-2.30/ghc-6.10.1
Registering gofer-prelude-2.30...
Reading package info from "dist/installed-pkg-config" ... done.
Writing new package config file... done.
}}}
Which bits are useful and useless? I mean at the standard verbosity level.
I bet this is useless:
{{{
Preprocessing library gofer-prelude-2.30...
}}}
Does it actually do any pre-processing? See also #475.
Useless:
{{{
/usr/bin/ar: creating dist/build/libHSgofer-prelude-2.30.a
}}}
This is produced by the `ar` program. We can however pass it a flag to
tell it to be quiet.
Not especially useful:
{{{
Installing library in /home/dons/.cabal/lib/gofer-prelude-2.30/ghc-6.10.1
}}}
This message is generated by Cabal. At the default verbosity level we
probably only need something like "Installing gofer-prelude-2.30..."
Useless:
{{{
Reading package info from "dist/installed-pkg-config" ... done.
Writing new package config file... done.
}}}
This message is generated by ghc-pkg. We should patch ghc-pkg to not be so
verbose by default. That message is only needed at a higher verbosity
level.
So if we get all these things fixed it'd look like:
{{{
$ cabal update
Downloading package list from hackage.haskell.org
$ cabal install gofer-prelude
Resolving dependencies...
Downloading gofer-prelude-2.30...
Configuring gofer-prelude-2.30...
Building gofer-prelude-2.30...
[1 of 1] Compiling Prelude.Gofer ( Prelude/Gofer.hs,
dist/build/Prelude/Gofer.o )
Installing gofer-prelude-2.30...
Registering gofer-prelude-2.30...
}}}
This is assuming the package in question doesn't actually need any pre-
processing. Even the pre-processing message could be elided if we don't
think it'll take that long.
I wonder if we can get ghc to not tell us the source and object file
locations. While it is sometimes useful while hacking, for batch builds we
do not need it.
--
Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/487>
Hackage <http://haskell.org/cabal/>
Hackage: Cabal and related projects
More information about the cabal-devel
mailing list