Packages in GHC 6.6

Peter Tanski p.tanski at gmail.com
Wed Aug 23 11:42:20 EDT 2006


Hi Bulat,

> sorry, but you miscitated me and seems to misinterpret whole idea:

Sorry about that.  I put the emphasis on your mention of  
"fundamental," almost to the exclusion of compiler-builds.  My point  
was that there are two design considerations when you are designing a  
compiler system: (1) the compiler itself (which practically everyone  
agrees should optimally be stand-alone); and (2) the core language  
libraries.  Domain-specific languages like Mozart, research languages  
or languages with only one compiler, such as Clean, and languages  
which lack good FFI support tend to be complete language packages.   
Relatively mature languages such as Fortran, C, C++, Ada and ML  
(smlnj, MLTon) have "standard library" systems; I think Haskell is  
moving in that direction.

The library systems in Haskell have gone beyond the Haskell98  
standard of "core" functionality with extensions, such as GHC- 
specific code (and libraries integrated with it), TH, MTL and  
Arrows.  What is "standard" is more properly a matter for Haskell- 
prime but may (and has) been implemented into Haskell compiler  
systems, especially the "biggies," GHC and nhc98.  As compilers  
become more plentiful organisations and even individuals may move  
away from the Microsoft/Borland/CodeWarrior core distributions and  
introduce their own separate compiler for a language, such as Intel,  
Sun and IBM have for C, C++ and Fortran; Comeau and Digital Mars for C 
++; and many others.  Haskell hasn't gotten that far yet--once JHC  
and Yhc are production ready they might fill that position.

> 2. For windows-like OSes where users prefer to see larger monolithic
> installations we should include more libraries in "standard
> distribution".

I seriously believe the reason for standard distributions on Windows  
is the extreme difficulty of getting things to build correctly and  
work together.  Once you have reached that beautiful point where  
almost everything is balanced and relatively stable--Quick! package  
it before it breaks again!  Package distributions for OS X and mostly- 
GUI Linux distributions are a convenience; they aren't practically  
necessary as they are with Windows.  Imagine trying to tag GHC  
distributions to a capricious system like MinGW--which may have older  
versions of gcc installed.

> * data structures and algorithms (highest priority)
> * web/networking
> * interfacing with OS such as file operations (lowest priority)

--web/networking?  When I first wrote that email last night I agreed  
with you that including web and networking tools would be good, as a  
kind of uniform-interface to varying low-level systems libraries, but  
these are the kinds of libraries that are easily installed separately  
from a distribution and may be volatile enough to merit separate  
update cycles.  For HTML, XML and cgi-networking in particular there  
are several stand-alone, stable libraries too choose from.

> i think that this are the kinds of libraries most widely used.
> ... and useless graphics libs will allow to
> cut down GHC installer by about 20%, while "selling" of basic ghc
> without these libraries will not by for us any more size reduction

I agree.  Utility is, however, a very relative term.  Core language  
systems such as general Haskell-tuned data structures is not because  
at some point all programs need them to function.

> 3. We can also create "larger installer" which includes libraries and
> tools that also highly popular but too big to "sell" them to all who
> want to download ghc. i mean at first place graphics, databases and
> RAD tools. concrete, wxHaskell, gtk2hs, db libs, VisualHaskell and
> EclipseFP

Separately maintained, of course; that would give some freedom to  
Porters :)

> and last - all the libraries installed except for core ones will be
> easily upgradable without upgrading ghc... boost their
> development.

That is the hope, I guess.  The unfortunate problem with Haskell is  
rampant, rapid bit-rot: some programs written or maintained into  
2003---only three years ago!--are already outdated.  GreenCard is a  
prime example of this.  My point in emphasising a somewhat standard  
compiler-and-core-libraries setup was to encourage widespread support  
and maintenance of "new-standard" libraries and to ensure that by  
forcing the compiler to build with them, they would not be left behind.

-Peter



More information about the Glasgow-haskell-users mailing list