[iterate-devel] Re: handler-bind macroexpansion and special operators (fwd)

Sam Steingold sds at gnu.org
Thu Jan 13 16:32:50 UTC 2005


> * Hoehle, Joerg-Cyril <Wbret-Plevy.Ubruyr at g-flfgrzf.pbz> [2005-01-13 15:06:43 +0100]:
>
> I believe the cause of the bug is that CLISP fails here to respect the
> obligation AFAIK (where was that in CLHS?) to have all its macros
> expand into either functions, macros or special forms -- so that code
> walkers work in CL.
>
> However, sys::%handler-bind looks like it must be handled as a special
> form (or macro) from the expansion example appended below, yet it's
> not declared as such.
> [28]> (special-operator-p 'sys::%handler-bind)
> NIL

SYS::%HANDLER-BIND cannot be evaluated, only compiled,
so, indeed, it is a special operator.
marking it as such will not buy much for ITERATE.
The only place where it occurs is HANDLER-BIND which is a standard
macro though, so I suggest that ITERATE handles HANDLER-BIND specially,
not via MACROEXPAND.

-- 
Sam Steingold (http://www.podval.org/~sds) running w2k
<http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/>
<http://www.mideasttruth.com/> <http://www.honestreporting.com>
Between grand theft and a legal fee, there only stands a law degree.



More information about the iterate-devel mailing list