Long-term success of Cabal configurations? (was: Stability vs
latest features)
Stefan O'Rear
stefanor at cox.net
Thu Aug 16 15:43:57 EDT 2007
On Thu, Aug 16, 2007 at 09:29:28PM +0200, Thomas Schilling wrote:
> On 15 aug 2007, at 20.20, Stefan O'Rear wrote:
>>
>> I'd much prefer a situation where the (much smaller number of) library
>> authors carry the burden of compatibility; maybe something like
>>
>> {- in base-2.0's .cabal -}
>>
>> Provides: fps-1.0 by { Data.ByteString* }
>>
>> ... which unfortunately doesn't handle splits (FiniteMap etc) anywhere
>> near as well.
>
> How far would re-exporting imported modules bring us? This would allow
> some sort of "virtual" packages (put in quotes, because I don't know how
> much this reflects the usage of this term in, e.g., Gentoo), which could at
> least solve package splits quite nicely.
>
> Assume we have base-2.0. Then the .cabal for base-1.0 could look somewhat
> like:
>
> build-depends: base >= 2.0, filepath, {- ... -}
> exposed-modules: Data.ByteString*, System.FilePath*, {- ... -}
Hmm, good point. I like it. (I do think it would work much better if
Cabal had a better notion of version numbers that includes forward
compatibility and suchlike - don't ever satisfy a 1.0.0 request with
2.x.y, etc)...
> I really don't like hacks with configurations like
>
> if flag(small_base) {
> build-depends: base >= 2.0, filepath >= 1.0, ...
> } else {
> build-depenhs: base >= 1.0 && base < 2.0
> }
>
> since they have to be put in _every_ .cabal file.
And fragile, too - when someone tries to build on GHC 6.4 for the first
time, that misspelled field will cause major headaches :)
Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://www.haskell.org/pipermail/libraries/attachments/20070816/a8704406/attachment.bin
More information about the Libraries
mailing list