state of the cabal (preprocessors)

Graham Klyne GK at ninebynine.org
Tue Oct 19 06:10:50 EDT 2004


At 09:57 19/10/04 +0100, Malcolm Wallace wrote:
>Isaac Jones <ijones at syntaxpolice.org> writes:
>
> > 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.
>
>On the other hand, you could reject the convention that cpp sources
>are not distinguished by file extension - e.g. create a new convention
>that, say, a .cpphs extension is preprocessed by cpp(hs) to get a
>plain .hs file.

+1

This is exactly what I do for my own code, e.g.,
   http://www.ninebynine.org/Software/HaskellUtils/HaXml-1.12/src/Text/XML/HaXml/ExtEntity.cpphs

which is processed to:

   http://www.ninebynine.org/Software/HaskellUtils/HaXml-1.12/src/Text/XML/HaXml/ExtEntity.hs


>Since Cabal is pretty new, this won't break any existing Cabal
>packages, and when converting non-Cabal packages to Cabal, there is
>some work to do anyway, so why not just adopt this as one extra rule
>to follow?
>
>This is just a suggestion - I'm in two minds whether it is a good
>idea myself, but it is at least worth considering the possibility.

I adopted this convention so I could run the cpphs software separately 
without zapping any original files.  I'm not aware of any downside.

#g


------------
Graham Klyne
For email:
http://www.ninebynine.org/#Contact



More information about the Libraries mailing list