cabal release (was: cabal experiences)

John Meacham john at repetae.net
Mon Dec 12 21:32:53 EST 2005


On Mon, Dec 12, 2005 at 03:14:09PM +0000, Duncan Coutts wrote:
> On Mon, 2005-12-12 at 14:46 +0000, Simon Peyton-Jones wrote:
> > If the reason you want 6.6 is to get a new Cabal, why not download a
> > new Cabal package?  Or is there another reason you want 6.6?
> 
> That is exactly the problem. All non-trivial packages need a later
> version of Cabal since there are many many minor bug fixes and little
> feature additions in later versions of Cabal.

This is a large part of the reason I'd like to see cabal as a completly
separate package from any compiler with a programatic interface rather
than a library one. things will get very complicated when there are
multiple major compilers and you have to tell users things like 'run
runhaskell Setup.lhs, unless your runhaskell points to jhc, in which
case do runghc Setup.lhs, oh, create a link from runhaskell to your
proper compiler'.

We can do so without losing any flexability at all. just add a new line
to the cabal file

build-style: (makelike|simple|custom)

where makelike and simple just call the current cabal library routines
and custom lets you specify a command that should be run and arguments
passsed to it. (which can be something like 'runhaskell Setup.lhs')

seperating cabal into its own program would also be a good place to
provide a unified compiler independent 'runhaskell' script that can have
logic for finding and running an appropirate compiler so people don't
have to maintain an appropriate link to runhugs,runghc, or runjhc...


while having a source code interface makes a lot of sense for
single-source implementation-defined languages like perl, I think it is
very inappropriate for multi-source, compiled programs. Especially when
it gains you absolutly nothing other than headaches. The chance that
someone will have such an absurdly odd build setup that one of the
standard cabal models won't apply AND they can simulate the cabal
interface exactly are virtually nil and if such a thing does exist, a
build-style: custom will take care of it. You might not even have a
haskell compiler on the system you want to run cabal on.
(cross-compiling, bootstrapping)

        John



-- 
John Meacham - ⑆repetae.net⑆john⑈ 


More information about the Libraries mailing list