[Haskell-cafe] Binary serialization, was Re: Abstraction leak

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Thu Jul 5 13:08:45 EDT 2007


On Thu, 2007-07-05 at 17:51 +0100, Neil Mitchell wrote:
> Hi
> 
> It's not a great experience now, but hopefully things are moving in
> the right direction.
> 
> > - Found crypto 3.0.3 on hackage.
> > - Tried to build, it depends on NewBinary
> 
> Cabal-install is intended to remove this problem, so that you can say
> "i want crypto" and it gets everything that requires.
> 
> > - Found that on hackage, downloaded and built OK. Lots of scary
> > warnings about happy, greencard etc, not being found during configure,
> > but let's go on.
> 
> I've complained about these before, although I don't think anyone
> considered doing anything about it.

We know what needs to change, but it's not a trivial change.

The problem is that currently .cabal files to not specify what build
tools they need, so Cabal has to look for all the possible tools it
knows about before it finds out if any of them will be needed. This is
because at the moment it has to check for these tools in the configure
step, but currently it only finds out if it needs the tools in the build
phase.

The right thing to do is to have proper dep resolution that works out
what tools are needed and it should tell the developer to record this in
the .cabal file in a new build tools dependency field. They do have to
be recorded in the .cabal file because it's impossible for the dep
resolution to discover the build tools required in the configure step
without actually running some of those build tools, which obviously
should not happen in the configure step. So the best we can do is tell
developers when they've missed a tool.

Then once they're recorded in the .cabal file it'll be easy to avoid
looking for and warning about build tools that are not required.

Duncan



More information about the Haskell-Cafe mailing list