[slime-devel] swank-arglists fragility

Ariel Badichi abadichi at bezeqint.net
Sun Nov 22 20:49:24 UTC 2009


Hello,

The arglist mechanism is too vocal when presumptions about its input
are not met.  A case in point, SWANK::EXTRACT-LOCAL-OP-ARGLISTS
expects the second element of the supplied "form", given that there is
such an element, to be a cons.  If it is not a cons, it will signal an
error.  A simple example of how this results in unsatisfactory
behavior:

(defmacro foo (bar zot)
  `(labels ,bar
     (|

Where | is the place following point.  Another example:

(defmacro foo (bar zot)
  `(labels (quux (boo))
     (|

This time an error may or may not be signaled, depending on whether
symbols corresponding to the strings in the source text exist.

I know that these particular cases can (and should) be fixed, but I
think in general the arglist mechanism shouldn't be allowed to scream
so loud, demanding the immediate attention of anyone within debugger
range when they're not even interested.

Ariel





More information about the slime-devel mailing list