#ifdef considered harmful

Simon Peyton-Jones simonpj at microsoft.com
Wed Apr 7 09:57:31 EDT 2004


I have not been following the details of this thread, but let me urge
caution.

Cpp is used in mostly-trivial ways to deal with the fact that a single
blob of source code is being fed into several different compilers.  

The fact that cpp is not perfect for this use is not a reason to design
something new.   cpp is readily available everywhere, whereas some new
tool would not be.  It certainly seems overkill to design a whole new
pre-processor system!  (Mind you, doing so might be an interesting
exercise in its own right -- Template Haskell is such an experiment --
but the need here is for a solution, not a research programme.)

I agree with Johannes: (a) keep it simple, (b) integrate with compilers.
(a) argues for cpp.  As to (b) is there some reason that Hugs cannot
simply run cpp? 
  
Simon

| -----Original Message-----
| From: libraries-bounces at haskell.org
[mailto:libraries-bounces at haskell.org] On Behalf Of Johannes
| Waldmann
| Sent: 07 April 2004 07:43
| To: Alastair Reid
| Cc: libraries at haskell.org
| Subject: Re: #ifdef considered harmful
| 
| Alastair Reid wrote:
| 
| > So, I'd like to float the idea that the Haskell preprocessor should
_only_
| > support conditional compilation, that macro expansion should only
occur in
| > lines that begin with '#' not in "normal" lines and that macros
should always
| > evaluate to expressions with simple scalar types (ints, strings,
etc.)
| 
| >    [It's probably simple enough that the preprocessor could
| >    easily be built into Hugs if we wanted.  This isn't the primary
| >    motivation for this suggestion but it would be nice.]
| 
| I'd vote for that (as a user). If we absolutely need preprocessing,
| then the above looks like a very reasonable way to go:
| 1. keep it simple, 2. integrate it with compilers.
| 
| best regards,
| --
| -- Johannes Waldmann,  Tel/Fax: (0341) 3076 6479 / 6480 --
| ------ http://www.imn.htwk-leipzig.de/~waldmann/ ---------
| 
| _______________________________________________
| Libraries mailing list
| Libraries at haskell.org
| http://www.haskell.org/mailman/listinfo/libraries


More information about the Libraries mailing list