Advance notice that I'd like to make Cabal depend on parsec

Duncan Coutts duncan.coutts at googlemail.com
Mon Mar 18 13:34:16 CET 2013


On Sun, 2013-03-17 at 19:27 +0000, Ian Lynagh wrote:
> On Sun, Mar 17, 2013 at 09:57:25AM -0700, Mark Lentczner wrote:
> > 
> > Is it essential, or even sensical, that the serialization format GHC needs
> > for storing package info bear any relation to the human authored form? If
> > not, the split out of the package types could be accomplished in a way
> > where GHC uses simple show/read(P) style serialization for storage of
> > package info, where as cabal-lib would use a lovely parsec parser for
> > humans. I'd like this approach.
> 
> I think it would be feasible to stop GHC itself from using the human
> readable format. The only place I can think of it being used is in the
> package database, but we could use either Read/Show for that, or just
> exclusively use the binary format.

The change in functionality to enable that would be that the binary
"cache" would always have to be up to date, so ghc would only ever have
to read the cache and never have to read the human-readable package
files.

Then you can have ghc-pkg depend on Cabal and use that for the
human-readable bits, but since that's a program then it doesn't expose
the Cabal lib dependency. Then ghc (and hence the ghc lib) would not
depend on Cabal, but it would need a copy of the InstalledPackageInfo
type and the other types that it uses.

Duncan




More information about the Libraries mailing list