[Haskell] Re: Trying to install binary-0.4

Udo Stenzel u.stenzel at web.de
Sat Oct 13 14:35:53 EDT 2007

Simon Marlow wrote:
> >- Provide a known good cabal.  Make sure it installs on GHC 6.6 and 6.4.
> Cabal 1.2 works all the way back to GHC 6.2.  The recommended way to build 
> new packages with an old GHC will be to upgrade Cabal first.

Can it be installed by a user?  Because I think my GHC 6.4 always picks
up Cabal-1.0, which is installed globally.  tar-1.0 then fails through
not finding Distribution.Simple.

> >- Refrain from renaming stuff.  System.Posix is a fine name.
> Who renamed it?  It's still called System.Posix AFAIK.

tar references System.PosixCompat, which apparently comes from a library
called unix-compat.  I have no idea why the lib isn't just called unix
and the modules not System.Posix.*, for tar works fine with

> Personally I object to ECT, it's too heavy.  I believe versioning belongs 
> in the package system where it currently is.

Well, versioning of shared libraries belongs into the dynamic linker,
where it currently is.  My gut says, Cabal is more like ld than apt-get.
Of course I don't care for the solution ultimately implemented, as long
as it works.  However, without guidelines for what can be changed
between versions of packages, nothing will.

> The main problem you seem to be running into is that base previously 
> contained bytestring, but you need to upgrade bytestring in order to use 
> binary, right?

Actually I'm more annoyed by the many small and unneccessary stumbling
blocks right now.  I mean, you could easily put an instruction into the
INSTALL file that says "if you're on GHC 6.4 or 6.6, register this
replacement configuration for base to sanitize it".  You cannot write
"if you're on 6.4, edit all references to System.PosixCompat, unless you
already installed unix-compat, and you absolutely need binary 0.4,
unless you're on 6.4, where you want binary 0.3 but need to patch it so
it has instance MonadFix Get, etc. pp." there, since something like that
just pisses off your users.

But yes, base and bytestring not liking each other is the showstopper,
since base can neither be hidden nor upgraded.  

> In that case, I think a reasonable hack is to modify the package 
> configuration for base to move Data.ByteString from exposed-modules to 
> hidden-modules (I'd be wary about removing it altogether).  Perhaps the 
> bytestring Setup.lhs should do this automatically when registering?

First off, this should be documented.  Having bytestring's Setup do the
messy registering would be a good solution, I think.  A better one than
a gazillion Cabal configurations, I might add.

-------------- 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/haskell/attachments/20071013/d5d1048d/attachment.bin

More information about the Haskell mailing list