On Wed, Mar 4, 2009 at 4:10 AM, Joshua TAYLOR tayloj@cs.rpi.edu wrote:
With the new release of DRAKMA I was looking over some of the source, and came across code like
(some-function ...#+:clisp #+:clisp :clisp-arg clisp-val)
which I'd never seen before. I started to investigate, and a discussion even started on c.l.l [1]. It turns out that not all Lisps treat these constructions in the same way. Particularly, in the case of #-feature #-feature, some process the second #-feature with *READ-SUPPRESS* bound to T, so the behavior is like #-CL:NIL. At any rate, it seems a bit safer and more portable not to nest the conditionalized expressions. The only place I found these was in request.lisp, and even there only in three places.
I've attached a diff in which they are changed to the safer form. I've also added leading colons to openmcl, since the rest of the source seemed to use that style.
Thanks for the patch. I'm aware of the theoretical implications of this usage, but is it actually a problem in practice, i.e. does the code break for one of the supported Lisps? And, without reading the c.l.l discussion, is this maybe because the Lisp in question is not following the standard correctly?
I'd be willing to accept the patch although I like the current form more, but it'd be nice to know what we really lose or win. Also, could you please resend the patch as a unified diff and without tab characters?
Thanks, Edi.