From: Joel Salomon <chesky@plan9.jp>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] Include guards and multiple includes
Date: Mon, 23 Oct 2006 15:12:17 -0400 [thread overview]
Message-ID: <2ce618c636a8a74af13258cdeaa93de0@plan9.jp> (raw)
In-Reply-To: <e44be67fc6736d0e097e632a0cebdba9@terzarima.net>
> > ?c only recognize 9
> > preprocessor symbols:
<snip>
>
> and that's easily more than too much
When metaprogramming techniques are needed, should we have the C
preprocessor or are we going to get a better tool? (I know! I know!
C++ templates! ☺)
I’ve needed the full-power preprocessor in the past, when I had to
implement a miniature function-generating and function pointer table
populating mini-language (and it really was the most readable,
debuggable, and maintainable implementation of the spec possible). I
didn’t need the various #ifs, but I did need ANSI-type macro
expansion; IIRC, ?c’s is different enough—and not so well documented
(looking at the implementation of the assert macro; how do you do
symbol catenation, or conversion to a string?)—that an implementation
of this trick would need subtle rewriting.
I don’t know if a “good” metaprogramming/code generation tool is
possible for a language with syntax more complicated than Lisp’s, but
even CPP has its use.
For the sort of conditional compilation admitted by “#ifdef Considered
Harmful”, what minimal set of CPP symbols would suffice?
--Joel
next prev parent reply other threads:[~2006-10-23 19:12 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-20 18:45 Paul Lalonde
2006-10-20 19:27 ` Joel Salomon
2006-10-20 20:18 ` Russ Cox
2006-10-20 20:37 ` Paul Lalonde
2006-10-22 16:37 ` Joel Salomon
2006-10-23 12:29 ` Charles Forsyth
2006-10-20 23:15 ` geoff
2006-10-20 23:39 ` Bruce Ellis
2006-10-24 14:32 ` AtomicKobold Design
2006-10-23 12:39 ` Rogelio Serrano
2006-10-23 12:41 ` erik quanstrom
2006-10-23 12:52 ` Rogelio Serrano
2006-10-23 13:26 ` erik quanstrom
2006-10-23 15:30 ` Joel Salomon
2006-10-23 18:43 ` Charles Forsyth
2006-10-23 19:12 ` Joel Salomon [this message]
2006-10-23 20:23 ` geoff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2ce618c636a8a74af13258cdeaa93de0@plan9.jp \
--to=chesky@plan9.jp \
--cc=9fans@cse.psu.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).