
Austin Seipp
On Sat, Nov 1, 2014 at 11:12 AM, Joachim Breitner
wrote: Hi,
for the Distributions it would be most easy if the custom llvm would come within the source tarball, would be built by the regular build process and installed along with GHC, in a private path (/usr/lib/ghc/somewhere). We certainly don’t want to have a separate packaging with separate binary packages "llvm-ghc" around.
Yes, that seems like a reasonable desire.
If we do this, my plan was actually to mirror a copy of the llvm git repository (an official one is maintained by llvm.org) to git.haskell.org, which is where we would base our own builds off of.
We could certainly let source distributions build their own copy.
How long does building those two llvm binaries take? If it is sufficiently quick, maybe that would be a suitable distribution for developers as well, and avoids having to separately build, distribute, download, and install the binaries.
In practice it takes a while... I haven't timed it, but I'd guess on average it adds about 30-40 minutes for most people just to build llvm. I'm not sure how many things we can disable to make the build faster, but I'd ballpark it at half an hour at best (it's a few thousand source files, after all).
This sounds about right.
This would mostly hurt if you cleaned up the tree later (e.g. 'make distclean'), which I do rather frequently in order to get a pristine build tree.
Ideally `make clean` would be a bit more complete so it could be used more often. Much of my use of `make distclean` comes from superstition after thinking `make clean` would be sufficient only to find out half-way through the build that there is still vestigal state hanging around. Perhaps the Shake build system (if it happens) will be better in this regard? Cheers, - Ben