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
Ariel Badichi abadichi@bezeqint.net writes:
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.
Definitively. I forgot to replicate that when I rewrote that part.
-T.
Ariel Badichi abadichi@bezeqint.net writes:
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
Thanks for the report. This should be taken care of in HEAD.
-T.