[bitc-dev] Macro removal rationale
Jonathan S. Shapiro
shap at eros-os.org
Thu Jul 20 12:04:51 EDT 2006
Sorry for slow response -- I'm traveling on vacation.
In the end, there were three factors:
1. My conclusion that building a "clean" macro system (one that does not
capture the wrong identifiers) is extremely tricky and the result tends
to be hard to use.
2. My observation that there were few good motivating cases for macros
in a language that supports inlining properly.
3. Mark Miller's observation that macros obscure readability by making
it harder to understand what the code in front of you actually does.
This issue came up in the course of a security audit, and the general
consensus from the discussion was that macros are a feature better left
The last point was probably the most important one, though the first
point was also significant.
On Wed, 2006-07-19 at 02:41 +0200, Pierre THIERRY wrote:
> I've walked through the mailing list archives, from their beginning
> (october 2004), and I found some mails about the introduction of macros
> in BitC, but not the reasons the remove them (only a short mail about
> 'ancillary consequences' of that removal).
> What was the rationale to remove them? They give a great deal of
> flexibility and expressiveness to the programmer, and as they would have
> worked at the pre-semantic level, they should not have got in the way of
> the prover...
> Nowhere man
> bitc-dev mailing list
> bitc-dev at coyotos.org
More information about the bitc-dev