#88: Predicate to distinguish between functions implemented directly in Java vs.
Lisp
-------------------------+--------------------------------------------------
Reporter: trittweiler | Owner: nobody
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: java | Version:
Keywords: |
-------------------------+--------------------------------------------------
For Slime, we need a predicate to distinguish between
functions implemented in Java, and functions compiled
from Lisp. The reason is because we use different
mechanism to get at the definition: for Java functions,
we'll use TAGS, whereas for Lisp functions we will
use source-location information stored by the ABCL
compiler.
Compiled Lisp functions also end up to be of type Primitive,
so just making the Primitive class available to Lisp
won't cut it.
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/88>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#101: lambda list checking optimizes away dispatch macros which return nil
-----------------------------------------+----------------------------------
Reporter: mevenson | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone:
Component: other | Version:
Keywords: lambda list, dispatch macro |
-----------------------------------------+----------------------------------
After [r12693][1], dispatch macros which return nil are stripped from
processing in lambda lists.
For example
{{{
CL-USER> (defun foo (&key (this :that))
this)
CL-USER> (foo :this (#+:nil :other))
Odd number of keyword arguments.
[Condition of type PROGRAM-ERROR]
}}}
Among other things, this causes [usocket][2] to fail to load, erroring
with the slightly mysterious "Unrecognized keyword argument :NAME" as
reported by Kevin Raison.
[1]: http://trac.common-lisp.net/armedbear/changeset/12693
[2]: http://common-lisp.net/project/usocket/
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/101>
armedbear <http://common-lisp.net/project/armedbear>
armedbear