base libraries
Sven Panne
sven.panne at aedion.de
Fri Nov 24 03:32:35 EST 2006
Hmmm, this whole base library reoganization discussion gets a little bit long
a confusing, because quite a few things are mixed up IMHO, so I don't even
know to which mail I should reply...
Just a few miscellaneous thoughts about this area:
* Splitting up libraries in tiny little packages does not only have
advantages. Even if every small package is well-tested, there is no guarantee
at all that it will work well with the rest of the packages. If we split up
things more and more, this problem will get more severe, because probably
nobody will have the same set of versioned packages as somebody else =>
testing nightmare!
* There are other quite successful libraries out there, which are very
monolithic: Java's standard libraries, Boost, etc. Their advantage is: If I
download version XY of them, I get a consistent, well-tested library.
* Bulat wants to do several things at once, if I understand it correctly: a)
Split the compiler-dependent parts of the libraries from the portable ones b)
Introduce a finer package granularity in general. While I think that a) is a
worthy goal, I think that this will be very, very tricky due to the fact that
different Haskell implementations have quite different notions of builtins,
extensions, etc. Furthermore, I am not yet fully convinced that the resulting
structure will be vastly superior regarding readability and maintainability,
sometimes some simple CPP tricks are the lesser evil. Regarding b): As
already mentioned above, there is always a tension between the ease of
upgrading and testing. Furthermore, we should not abuse the package system to
get versioned *modules*. Anyway, let's not mix a) and b)!
* It is silly to split a data type like FilePath and the only portable
operations on it into different packages. Let's put the file path handling
operations whereever FilePath lives, and this is "base" in the foreseeable
future. Discussing if FilePath should belong into "base" is a different
topic.
Cheers,
S.
More information about the Libraries
mailing list