Packages in GHC 6.6

Sven Panne 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...

Cheers,
   S.


More information about the Glasgow-haskell-users mailing list