On 6/16/2014 5:44 AM, "Ola Fosheim Grøstad" <ola.fosheim.grostad+dl...@gmail.com>" wrote:
As far as I can tell string mixins have the same bad properties that macros
have.

Assuming you are talking about C macros:

Having implemented the C preprocessor (multiple times), make's macro system, designed and implemented ABEL's macro system, Ddoc's macro system, and string mixins, I can unequivocably object to that opinion! The C macro system is awesome in its awfulness. Let me count the ways:

1. Probably < 10 people in the world actually understand it all the way down. It is absurdly complex for what little it does. Paul Mensonidas is usually acknowledged as the "world's leading expert on the C preprocessor." Why would a freakin' macro processor even have an ecological niche for a world leading expert on it? The mind boggles.

2. C preprocessor tokens are not the same thing as C tokens!

3. The "phases of translation" of the preprocessor guarantees slow compilation.

4. The way it works make any sort of parallel processing of source code impossible. It must be done serially.

5. There is no scoping of names of any sort - no hygiene whatsoever. Any #include file can trash any subsequent, unrelated, #include file in any way.

6. Any syntax highlighter cannot work entirely correctly without having a full preprocessor.

7. Because of the preprocessor, valid C code need not look remotely like C code according to the C grammar.

8. There are no looping macros, no CAR/CDR capabilities (Ddoc has the latter).

So there!

Reply via email to