[drakma-devel] Conditional (#+/#-) expressions in DRAKMA

Edi Weitz edi at agharta.de
Wed Mar 4 08:22:23 UTC 2009


On Wed, Mar 4, 2009 at 4:10 AM, Joshua TAYLOR <tayloj at 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?

  http://weitz.de/patches.html

Thanks,
Edi.




More information about the Drakma-devel mailing list