[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Couple things...

This page is part of the web mail archives of SRFI 50 from before July 7th, 2015. The new archives for SRFI 50 contain all messages, not just those from before July 7th, 2015.



felix <felix@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> 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