|Version 3 (modified by benmachine, 8 weeks ago)|
This page is also found on the new GitHub wiki.
Cabal does not currently do any of its own dependency tracking, it relies on ghc --make for this. Many desirable features in Cabal rely on this capability.
Saizan's GSoC project aimed to create a dependency framework for use in Cabal. This page describes the plan for integration.
Instead of directly integrating the new framework into Cabal the plan is to develop things in an external usable hbuild tool and eventually to completely replace the building code in Cabal with this new system.
hmake / ghc --make
The first major milestone is to make a tool with the use case and rough feature set of hmake or ghc --make (though not with all of ghc's command line options!), supporting parallel builds. Specifically that means cases like:
$ hbuild -j 4 -i src Foo.Bar Foo.Baz
and it will look for source files to compile those modules, including chasing pre-processors. But essentially zero configuration. No equivalent of the .cabal file.
The next major milestone should be to integrate configuration into the dependency framework. This involves getting configuration from the .cabal file which provides extra targets like libraries and executables. It also involves making sure things are rebuilt as appropriate when configuration setting change.
The code is available via darcs and can be built using cabal.
darcs get --partial http://code.haskell.org/hbuild/