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

Joshua TAYLOR tayloj at cs.rpi.edu
Wed Mar 4 03:10:33 UTC 2009


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 a great HTTP client—DRAKMA's the one I turn to when I need
a Lisp HTTP client.

[1] http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/8d50284a29f51673#

Joshua Taylor
tayloj at cs.rpi.edu, jtaylor at alum.rpi.edu

"A lot of good things went down one time,
  back in the goodle days."
    John Hartford
-------------- next part --------------
<                              #+:clisp #+:clisp
<                              (flexi-stream-element-type stream) element-type))
>                              #+:clisp (flexi-stream-element-type stream)
> 			     #+:clisp element-type))
<                               #+openmcl
>                               #+:openmcl
<                                                           #-:lw-does-not-have-write-timeout
<                                                           #-:lw-does-not-have-write-timeout
<                                                           :write-timeout write-timeout
>                                                           #-:lw-does-not-have-write-timeout :write-timeout
>                                                           #-:lw-does-not-have-write-timeout write-timeout
<                                                              #+openmcl #+openmcl
<                                                              :deadline deadline
>                                                              #+:openmcl :deadline
> 							     #+:openmcl deadline
<               #+openmcl
>               #+:openmcl

More information about the Drakma-devel mailing list