base libraries

Neil Mitchell ndmitchell at gmail.com
Wed Nov 22 20:17:19 EST 2006


Hi

> * core libs includes ghc version dependent libs. currently it's base,
> stm and th
>
> * base libs are libs, which is guaranteed to be shipped with *every*
> haskell distribution. on windows, it should be a part of monolithic
> installer while on unixes these libs may be a separate packages, but
> porters should ensure that they ported all these libs too
>
> * other libs are either too specific or too large, such as gui,
> database and xml ones. these may be included in some distros or
> installed separately

That sounds fine, and when this work has been done, bytestring and
filepath both deserve to live in this second ring. Only modules which
are deeply tied to the compiler should live in that core ring.

However, for the moment, base (as we know it) is the first two layers
of your proposal. As such, both bytestring and filepath belong in the
base library.

There is also the question of Cabal, your second layer is not
guaranteed to be installed on all systems, so Cabal setup programs
cannot use them. This means that all Cabal setup programs will have to
keep randomly string hacking at FilePath's.

This definitely sounds like the way to go for the future - it will
make library porting to other compilers much easier. It is important
to realise that this is the future, not the present, so to reject
things from the base library on the basis they need moving to a place
that doesn't currently exist is probably the wrong solution.

I know Bulat is investigating this, are the GHC team/Igloo aiming to
split up base with any particular target timeframe?

Thanks

Neil


More information about the Libraries mailing list