Re: Couple things... tb@xxxxxx 27 Dec 2003 20:35 UTC

felix <xxxxxx@call-with-current-continuation.org> writes:

> Exactly for that reason I propose to simplify the interface, and
> to remove space for dirty tricks and to specify the meaning of the
> forms rigorously.

I am aghast that you think taking the address of a function is a
"dirty trick"--especially since you are talking to a group of Scheme
programmers!  Good grief.

What *is* a dirty trick, and I am, I think, rightly worried about, is
the dirty tricks that *implementors* play when you tell them to do
things with a macro.  Functions are *far* more predictable than
macros; they have a single well-defined semantics.  C macros can be
tricky to write correctly.

I don't believe you simplify *anything* by saying "you can do this
with a macro if you like".  In practice, that is done in C standards
precisely when you want to give implementors weird flexibility.  Look
at, for example, the way that errno is allowed to be a macro in C, and
why.

Moreover, you still will have people doing things like:

#if defined (foo)
  do it where foo is a macre
#else
  take the address of foo
#endif

Thomas