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. It would be a little less user-friendly, but maybe worth it to remove the ghc library dependencies on most-of-Cabal, mtl and parsec. > Perhaps the major cause is that because GHC is shipped as a library itself, > it exposes all it's package dependencies. Yes. > In otherwords, users that wanted to > incorporate the ghc-lib into their programs would depend, and download, and > configure, and build, ghc-lib indpenendant of the GHC binaries I think this would create more problems than it solves. > Okay, perhaps that is all just fantasy. But, no other programming system > operates the way we do. They all fall into one of two camps: > > - The dominant implementation is maintained, built, and shipped along > with a large collection of "common packages". Examples: Python, Ruby, PHP, > Java. > - The dominant implementation is shipped as a bare tool, and large > common libraries are maintained and shipped independently. Examples: C++ > (think g++ and boost), JavaScript (think browsers, and jQuery). > > We are in the middle and, I think, experiencing growing pains because of it. I would say that we are doing the first option, in the form of the HP. It's just that the core gets frozen (i.e., ghc + libs gets released) earlier than the higher level libraries. I don't think that moving (back) to trying to freeze/release everything all at once would be an improvement. You just need to remain strong, and keep saying "no" :-) (you're doing a great job, BTW!) Thanks Ian _______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://www.haskell.org/mailman/listinfo/cabal-devel