There are some insanely large ones, and that was just not nice.
Downside is all warnings and errors are also not shown during the native
part of the build (but the cross build will still show any it has).
Move all the binaries and libraries under a bundle/ subdirectory;
so when it's in PATH only git-annex, runshell, and git-annex-webapp
will be available.
<joeyh> anyone know why runghc Setup.hs is behaving differently than cabal configure for me?
<joeyh> I'm getting different flags selected
<geekosaur> joeyh, runghc Setup.hs uses --global by default
<geekosaur> cabal uses --local
<nomeata> joeyh: I don’t know the reasons, but I have made similar observations as well
<geekosaur> and if that means different libraries/versions visible, that can affect flag solving
<joeyh> aha!
<monochrom> it is because Cabal authors expect normal people to use cabal-install and linux distro creators to use Setup
<monochrom> the expectation is documented nowhere
I have seen some other programs do this, and think it's pretty cool. Means
you can test wherever it's deployed, as well as at build time.
My other reason for doing it is less happy. Cabal's handling of test suites
sucks, requiring duplicated info, and even when that's done, it fails to
preprocess hsc files here. Building it in avoids that and avoids having
to explicitly tell cabal to enable test suites, which would then make it
link the test executable every time, which is unnecessarily slow.
This also has the benefit that now "make fast test" does a max speed build
and tests it.
The only thing lost is ./ghci
Speed: make fast used to take 20 seconds here, when rebuilding from
touching Command/Unused.hs. With cabal, it's 29 seconds.
Pity that the library does not provide a function to extract the status
code from the StatusCodeException, so when they had to add a new field, it
breaks every single place that does it.