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

Re: macros again

The macro committee is currently mulling over the lastet proposal for
the macro facility.  Assuming that we don't discover any serious
problems, I would look for the proposal to be posted to this list in a
week or so.  A full reference implementation has been written and will
be made available when the proposal is posted.

The new proposal is actually not far from the original goal of mixing
syntactic closures and extend-syntax.  The low-level system contains
objects that behave much like syntactic closures (although we are
calling them something different to avoid confusion), and the
high-level system contains a simplified version of extend-syntax (no
"with" and no fenders).

> Finally, we heard some news.  Syntactic closures had been abandoned,
> and we were to get something else instead.  It seemed that in some
> case (not described), it was impossible to figure out the status
> of some names at the right time (or something like that).
> I was a bit puzzled by this.  For one thing, exactly what was the
> problem?  For another, extend-syntax and syntactic closures had
> gone in on a fairly equal footing.  If they were incompatible,
> why was it that one got dropped and not the other?

It would be impossible for me to answer your first question any better
than Will did without going over all of the old notes on the subject.
Perhaps someone who remembers the problem better than I can speak about
this.  The answer to your second question is that syntactic closures
were never dropped---we have just been following a somewhat different
path.  Since a low-level facility based on syntactic closures and a
high-level facility based on extend-syntax seemed not be be
forthcoming, we had to strike out in different directions.  A proposal
based on syntactic closures with a reasonable high-level interface
would have received as much serious considertation would as a proposal
based on extend-syntax with a reasonable low-level interface.