
Hello Malcolm, Friday, November 24, 2006, 6:36:03 PM, you wrote:
In 6.6 you can, in theory, upgrade the base package.
This, I think, is the heart of Bulat's complaint: namely, that until recently it was not possible to upgrade the 'base' package in ghc.
as i many times said, the problem is two-sided: first, Base can't be upgraded without upgrading ghc. second, Base contains many different functionality which is artificially tied together. this has cumulative effect. for example, i want to use old arrays and new foreign ptrs both with 6.4 and 6.6. there are no technical problems here - both arrays and fptrs implementations don't rely on compiler version specific apis. but due to this tieing, i should use old arrays and old array with 6.4 and new ones with 6.6. this leads to #ifdefs in program as far as i want to support both ghc versions and to poor performance with 6.4
All the other implementations of Haskell do permit the base package to be upgraded (or downgraded) separately from upgrading the compiler itself.
never known about it! but it is only theoretical advantage - while Base developed as all-in-one package, we don't have any real upgrade offers on this market
All of the questions about whether such-and-such a library belongs in the 'base' package or in some separate package, are questions of policy. The answers really don't matter quite so much, provided the mechanism exists to choose to install whatever version of whatever packages you like.
unfortunately, it's not enough. it easy part of problem, but we should also work on splitting Base into natural parts. currently, it's more than 2 megs. maintainable parts should be about 100-300k, i think. rather obvious splitting is at upper level of module names: Control, Data, so on. Another possible criterion is that everything which can be detached from Base should be extracted and put into separate library -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com