Building "production stable" software in Haskell
simonmarhaskell at gmail.com
Tue Sep 18 08:10:56 EDT 2007
Adrian Hey wrote:
> Neil Mitchell wrote:
>>>> They are less stable and have less quality control.
>>> Surely you jest? I see no evidence of this, rather the contrary in fact.
>> No, dead serious. The libraries have a library submission process.
> It does not follow that libraries that have not been submitted
> to this process "are less stable and have less quality control". Nor
> does it follow that libraries that have been through this submission
> process are high quality, accurately documented, bug free and efficient
> (at least not ones I've looked at and sometimes even used).
Adrian's right - the set of libraries that are shipped with GHC is
essentially random. A bit of history:
Originally we shipped pretty much all freely-available non-trivial Haskell
libraries with GHC. At some point (about 5 years ago or so) the number of
Haskell libraries started to grow beyond what we could reasonably ship with
GHC, and some of them were providing duplicate functionality, so we stopped
adding to the set. We made a few small exceptions (e.g. filepath) for
things that we felt really should be in the default GHC install, but to a
large extent the set of libraries that are "shipped with GHC" has remained
constant over the last 3 major releases.
In 6.6, we made a nomenclature change: we divided the packages "shipped
with GHC" into two: those that are required to bootstrap GHC (the "boot"
libraries, until recently called the "core" libraries), and the others that
we just include with a defualt binary install (the "extra" libraries). On
some OSs, e.g. Debian, Ubuntu, Gentoo, you don't even get the "extra"
libraries by default. This was intended to be a stepping stone to
decoupling GHC from these libraries entirely, which is possible now that we
have Cabal and Hackage.
What I'm getting around to is that being "shipped with GHC" is not a
category that has any particular meaning right now. I think it's time the
community started to look at what libraries we have in Hackage, and
identify a subset that we should consider "standard" in some sense - that
is, those to which the library submission process applies, at the least.
If there were such a set, we could easily make GHC's "extra" libraries
equal to it.
More information about the Libraries