ANN: Cabal 0.4

Isaac Jones ijones at
Mon Jan 17 16:27:48 EST 2005

                      The Haskell Cabal
The Common Architecture for Building Applications and Libraries.


See both the README file and the changelog for important interface changes.


The Haskell Cabal has reached pre-release stage, with a 0.4 version
The community should use this release to evaluate the interfaces and
explore the concepts of these tools.

Download the Cabal here (source and debian versions available):


Please report bugs and wish-list items to libraries at and
Isaac Jones: ijones at


The Haskell Cabal is meant to be a part of a larger infrastructure for
distributing, organizing, and cataloging Haskell Libraries and
Tools. It is an effort to provide a framework for developers to more
effectively contribute their software to the Haskell community.

Specifically, the Cabal describes what a Haskell package is, how these
packages interact with the language, and what Haskell implementations
must to do to support packages. The Cabal also specifies some
infrastructure (code) that makes it easy for tool authors to build and
distribute conforming packages.

The Cabal is only one contribution to the larger goal. In particular,
the Cabal says nothing about more global issues such as how authors
decide where in the module name space their library should live; how
users can find a package they want; how orphan packages find new
owners; and so on.


You cannot currently execute the setup scripts with "./Setup.lhs"
since Cabal Hugs support isn't ready-for-prime-time.  You can compile
it with ghc thusly: "ghc -package Cabal Setup.lhs -o setup" and then
use the "setup" executable after that.

This release is meant to provide the community with concrete
information about how the interfaces are shaping up.  This release
does NOT fix the interfaces, we can't promise not to break anything
that relies on these interfaces.  We hope that Haskell authors will
try to package their software using these tools, and let us know where
they fall short.


Please see the web site for the source code, interfaces, and
especially the proposal, which will serve as documentation for this


0.4  Isaac Jones  <ijones at> Sun Jan 16 2005

	* Much thanks to all the awesome fptools hackers who have been
	working hard to build the Haskell Cabal!

	* Interface Changes:

	** WARNING: this is a pre-release and the interfaces are still
	likely to change until we reach a 1.0 release.

	** Instead of Package.description, you should name your
	description files <something>.cabal.  In particular, we suggest
	that you name it <packagename>.cabal, but this is not enforced
	(yet).  Multiple .cabal files in the same directory is an error,
	at least for now.

	** ./setup install --install-prefix is gone.  Use ./setup copy
	--copy-prefix instead.

	** The "Modules" field is gone.  Use "hidden-modules",
	"exposed-modules", and "executable-modules".

	** Build-depends is now a package-only field, and can't go into
	executable stanzas.  Build-depends is a package-to-package

	** Some new fields.  Use the Source.

	* New Features

	** Cabal is now included as a package in the CVS version of
	fptools.  That means it'll be released as "-package Cabal" in
	future versions of the compilers, and if you are a bleeding-edge
	user, you can grab it from the CVS repository with the compilers.

	** Hugs compatibility and NHC98 compatibility should both be

	** Hooks Interface / Autoconf compatibility: Most of the hooks
	interface is hidden for now, because it's not finalized.  I have
	exposed only "defaultMainWithHooks" and "defaultUserHooks".  This
	allows you to use a ./configure script to preprocess
	"foo.buildinfo", which gets merged with "foo.cabal".  In future
	releases, we'll expose UserHooks, but we're definitely going to
	change the interface to those.  The interface to the two functions
	I've exposed should stay the same, though.

	** ./setup haddock is a baby feature which pre-processes the
	source code with hscpp and runs haddock on it.  This is brand new
	and hardly tested, so you get to knock it around and see what you

	** Some commands now actually implement verbosity.

	** The preprocessors have been tested a bit more, and seem to work
	OK.  Please give feedback if you use these.

0.3  Isaac Jones  <ijones at> Sun Jan 16 2005
	* Unstable snapshot release
	* From now on, stable releases are even.

0.2  Isaac Jones  <ijones at>

	* Adds more HUGS support and preprocessor support.

More information about the Libraries mailing list