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

Code Generated by Macros



Yeah, I went through a little bit of contortion to make Do-All-Symbols and
friends be efficient and maintain the right block structure.  I don't remember
any other macros in the language that require bending over backwards to do this
sort of thing.  Do you have a list of such things that you ran into for the
rest of us?

Zetalisp has some stuff to get around this problem (which makes it easier for
users to write iteration macros that do the right thing), but I doubt it could
be easily added to the Common Lisp language.  Since Common Lisp programs are
supposed to be easily machine-analyzable, one might write a portable thing that
mangles the Returns inside a piece of code to return to a block of one's
choice.

It might be worth a sentence or two in the manual to point out to implementors
and users alike that one may have to resort to writing hairy Progs to retain
the "returnability" feature.  Implementors are, of course, required to do so
for things specified in CLTL, and users should be encouraged to do so.

--Skef