id,summary,reporter,owner,description,type,status,priority,resolution,keywords,cc,topic,difficulty,mentor
1552,Cabal 'make-like' dependency framework,duncan,,"This project aims to prototype a make-like dependency system to use in Cabal.

Currently Cabal's building style is imperative and it relies on `ghc --make` or `hmake` to rebuild Haskell modules.

All the Cabal hackers agree that ideally almost all of the building code in Cabal should be done in a dependency style. There are many features we cannot currently add and bugs we cannot currently fix because they need a dependency system and for Cabal to do it's own module chasing rather than using `ghc --make`.

For Cabal-2.0 we aim to move to a dependency framework, this project is to prototype that system.

The cabal hackers already have quite a few ideas about the requirement and about how it could be done. Any student interested in this project should talk to the Cabal hackers to make sure they understand the issues and to help improve their project proposal.

One way the prototype project might work might be to implement module dependency analysis for yhc which is currently not supported by Cabal at all (or perhaps nhc98). This would allow the code to be included in the main Cabal development repo without destabilising the ghc support. From there we could move to using the dependency stuff for pre-processors, which would be very useful as it'd allow proper support for c2hs (which is what is holding back Cabalisation of gtk2hs).

== Links ==

 * [/trac/hackage/ticket/15 Cabal ticket #15 - implement dependency analysis]. This links to 13 other tickets that depend on it.
 * [http://haskell.org/pipermail/cabal-devel/2007-October/001297.html first prototype]

== Interested Mentors ==
 * Duncan Coutts

== Interested Students ==
",proposed-project,closed,good,fixed,,,Cabal,1 person Summer,not-accepted
