state of the cabal (preprocessors)

Isaac Jones ijones at
Mon Oct 18 23:33:38 EDT 2004

Hey all.

Just thought I'd give an update... Cabal now does something [1] for
preprocessors, though it's perhaps not perfect.  I need a real test
case, a smallish program that uses a preprocessor (except for cpp,
which isn't yet supported).  Any suggestions?  Something that uses
happy perhaps?

Once I have such an example, and get cpp working nicely, then I'll
release 0.2.

Here's the cabal web page:

You can of course see what I have now by using darcs to check out the
repository.  On Debian simply:

% apt-get install darcs
% darcs get



[1] Foo.y is a happy grammer which, when processed, will produce Foo.hs.

The description file should include the module Foo.

./setup sdist (source distribution): Include Foo.y, not Foo.hs.  Maybe
we could add a flag to include Foo.hs as well.  This makes sense for
some preprocessors and not for others, but I'm wary of including too
much preprocessor-specific behavior.

./setup clean: Removes Foo.hs if Foo.y exists.

./setup build: Preprocesses Foo.y to Create Foo.hs before any

The issue with cpp is that we can't go by extensions as we do with the
rest of the preprocessors... There is a function in HMake which tests
to see if a file needs to be cpp'd, so we can employ that.  I think
we'll probably have to just treat cpp a little differently from the
others, unfortunitely, and I haven't gotten around to it.

More information about the Libraries mailing list