Packages in GHC 6.6
sven.panne at aedion.de
Sun Sep 24 09:46:42 EDT 2006
Am Mittwoch, 23. August 2006 15:23 schrieb Bulat Ziganshin:
> i think that better way is to supply non-core libs in source form and
> just recompile them in this case. so, [...]
Nice theory, but this doesn't work at all in practice: The majority of the
packages mentioned so far are not purely Haskell, so one needs tons of
development tools and C libraries, headers, etc. (all in a consistent state,
of course) to compile those packages, which is a bit tricky on *nices and a
huge task on WinDoze. And there might even be packages where Joe User can't
get the development tools without signing an NDA...
Regarding the sets of packages: This discussion comes up again and again, but
it does not really focus on the main point, namely that we simply don't know
what is important for a specific user or not. Some people can't live without
XML parsing, others want fancy graphics and sound, others depend on
elaborated datastructures but are otherwise happy with putStrln. So the only
sane way to proceed is as Simon suggested: Ship GHC with the packages needed
to compile and run "Hello, world!" and those which are intimately tied to
GHC, and all the rest is shipped separately.
Cross-module optimizations introduce a lot of dependencies, but are one of the
strong points of GHC and are *absolutely* necessary to get decent performance
for some applications. I would very much object to give this up for more
stable ABIs. This is not a real problem on mature platforms with sensible
package management systems, like most modern Linux distros, where one could
easily upgrade GHC and automatically upgrade all the Haskell packages needed.
Of course WinDoze is a bit different here. Therefore I opt for 2 different
WinDoze installers, everything between doesn't make sense IMHO:
* A set of highly modularized, small, separate installers for GHC/core
packages and each non-core package.
* As an alternative, a "sumo"/"omnibus"/<whatever you call it> installer
containing everything from the central darcs repo, plus probably even more.
This can have the option to install only a subset of the contained packages.
The best option would of course be some kind of "net installer", just like
Cygwin's setup.exe, but this is of course something for the future.
Meanwhile, the first set of small installers should make people happy which
have only a limited amount of disk space and a slow internet connection,
while the "sumo" installer should make people with modern machines and
high-speed ADSL/cable-modem/T1 more happy. Let's not forget that we live in a
world where patches regularly exceed 100MB, downloadable game demos are >1GB
and disks with >200GB are common even in cheap new computers. In such a
setting, it is hard to argue that it is "much better" to surf the Net for an
hour to get all the packages one wants instead of downloading and installing
everything in a single click within minutes...
More information about the Glasgow-haskell-users