[GHC] #3226: please eliminate error message from Make on every
build
GHC
trac at galois.com
Tue May 19 04:42:07 EDT 2009
#3226: please eliminate error message from Make on every build
---------------------------------+------------------------------------------
Reporter: nr | Owner:
Type: feature request | Status: new
Priority: normal | Milestone:
Component: Build System | Version: 6.11
Severity: minor | Resolution:
Keywords: | Difficulty: Unknown
Testcase: | Os: Unknown/Multiple
Architecture: Unknown/Multiple |
---------------------------------+------------------------------------------
Comment (by simonmar):
Replying to [comment:7 nr]:
> Two comments:
>
> * Regarding the speed of the build, I think it is really worth
exploring Glenn Fowler's nmake. nmake is engineered by real engineers to
be portable and to work at scale. It is entirely possible that it might
make the safe path also fast. It could even make it possible (although
time-consuming and tedious) to eliminate the separate 'configure' step.
What do you think of this as a possible student project?
The speed of `make` is not the limiting factor. IIRC, at the end of a
complete GHC build the single `make` process has used only a couple of
seconds of CPU time.
nmake may well be better than GNU make (though it's not clear that it does
everything we need). Anyway I don't have the energy to rewrite the build
system again right now - maybe in a few years!
The real problem we would like to solve is the way GNU make handles
rebuilding included makefiles, which leads to the need for the
[wiki:Building/Architecture/Idiom/PhaseOrdering phase ordering]. This
adds 4 seconds or so to each rebuild, not to mention complexity and
fragility in the build system. Now, two of those phases are only needed
because GHCs before 6.11 didn't generate makefile dependencies between
packages in the way the new build system needs, so in the future when
bootstrapping with 6.11+ we can drop the two slowest phases, which should
help a lot.
For now I've made `make 1` and `make 2` omit phases 1-3. It's much
quicker for me now.
> * Having established the safe but slow path, is there a way to make it
less noisy? In particular, is there a way to change ghc/ghc.mk so that it
does ''not'' bleat if the dependency file is missing? I have upgraded
severity to 'minor' (from 'trivial') because this error message interrupts
my workflow in emacs ({{{C-x `}}} now has to stop at an extra error
message... sometimes).
I agree the message is annoying, but I can't see an easy way to quiet it
short of filtering the output of make (which is possible, but exceedingly
ugly). Surely most of the time the dependency file will be there anyway?
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/3226#comment:8>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list