Shipments in Cabal

Simon Peyton-Jones simonpj at
Fri Dec 9 03:54:18 EST 2005

That's helpful, but I still don't understand.  I'm just Joe User.  I'd
like to install GTK.  I'd like to download one thing and install it. I
don't much mind whether it's called a "package" or a "shipment".

Here are three things we can do

a) Make it possible for a "package" to have multiple executables
b) Invent "shipments", which can have multiple executables, and get rid
of "packages"
c) Have both "packages" and "shipments".

Clearly (a) and (b) are essentially identical, modulo nomenclature.
They seem simpler than (c).  What is the merit of (c)?  Would Joe User
ever see or know about a package? 

Adding a summary of the reply to Duncan's wiki page would be useful I


| -----Original Message-----
| From: Krasimir Angelov [mailto:kr.angelov at]
| Sent: 09 December 2005 08:43
| To: Simon Peyton-Jones
| Cc: Duncan Coutts; Haskell libraries
| Subject: Re: Shipments in Cabal
| Cabal already supports multiple executables in one package but only
| one library.
| The problem is that the current implementation is just a hack. The
| shipment allows to pack multiple packages in one tar.gz file and to
| build them together. Each package will have only one library or only
| one executable and this resumes the symmetry between executables and
| libraries. I found that this simplifies the code a lot.
| Cheers,
|   Krasimir
| 2005/12/9, Simon Peyton-Jones <simonpj at>:
| > | I started off from the assumption that "shipments" are necessary
| > | obviously beneficial. However after thinking about it for a while
| > | thinking through some of the implications (especially on
| > | resolution) I'm not not so convinced that we need shipments as
| >
| > I have not been following this thread much, but my original
| > understanding was precisely that
| >
| >        A Cabal package *is* the unit of distribution
| >        Indeed, that's what it is for
| >
| > I'm entirely unclear why new need some other larger unit.  Yes, a
| > package may depend on other Cabal package, but those dependencies
| > explicit in the package descr file, and Cabal-get can follow the
| > Any larger unit (shipments) will also have dependencies that need to
| > followed, in just the same way, so I don't understand what has been
| > gained.
| >
| > I'm probably missing something, but perhaps someone can write down
| > reasoning on Duncan's Wiki page?
| >
| >
| > Simon
| >
| > _______________________________________________
| > Libraries mailing list
| > Libraries at
| >
| >

More information about the Libraries mailing list