#285: (setf documentation) is undefined until documentation is called
-------------------------+--------------------------------------------------
Reporter: rschlatte | Owner: ehuelsmann
Type: defect | Status: new
Priority: minor | Milestone:
Component: interpreter | Version:
Keywords: |
-------------------------+--------------------------------------------------
Reported by Eric Marsden:
{{{
Armed Bear Common Lisp 1.2.0-dev-svn-14349
Java 1.6.0_18 Sun Microsystems Inc.
OpenJDK 64-Bit Server VM
Low-level initialization completed in 0.241 seconds.
Startup completed in 1.128 seconds.
Type ":help" for a list of available commands.
CL-USER(1): (defun foo (x) x)
FOO
CL-USER(2): (setf (documentation 'foo 'function) "Horx")
#<THREAD "interpreter" {482982BF}>: Debugger invoked on condition of type
UNDEFINED-FUNCTION
The function (SETF DOCUMENTATION) is undefined.
}}}
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/285>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#279: default-initargs not respected for funcallable-standard-class
-----------------------+----------------------------------------------------
Reporter: rschlatte | Owner: rschlatte
Type: defect | Status: new
Priority: major | Milestone:
Component: (A)MOP | Version:
Keywords: |
-----------------------+----------------------------------------------------
Report by Pascal Costanza:
Here is a test case:
{{{
CL-USER(1): (use-package :mop)
T
CL-USER(2): (defclass my-method (standard-method) ())
#<STANDARD-CLASS MY-METHOD {1EE9DE5F}>
CL-USER(3): (defclass my-generic-function (standard-generic-function) ()
(:metaclass funcallable-standard-class)
(:default-initargs :method-class (find-class 'my-method)))
#<FUNCALLABLE-STANDARD-CLASS MY-GENERIC-FUNCTION {6E06D676}>
CL-USER(4): (defgeneric my-function ()
(:generic-function-class my-generic-function))
#<MY-GENERIC-FUNCTION MY-FUNCTION {2EA1569}>
CL-USER(5): (generic-function-method-class #'my-function)
#<STANDARD-CLASS STANDARD-METHOD {4E513D61}>
}}}
The reason is that the defaulting happens in the keyword arguments for
ensure-generic-function (in clos.lisp), which thus overrides any default
initargs. However, the defaulting should be left to the class.
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/279>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#280: Additional slots in function classes screw up std-compute-discriminating-
function
-----------------------+----------------------------------------------------
Reporter: rschlatte | Owner: rschlatte
Type: defect | Status: new
Priority: major | Milestone:
Component: (A)MOP | Version:
Keywords: |
-----------------------+----------------------------------------------------
Report by Pascal Costanza
Here is a test case:
{{{
CL-USER(1): (use-package :mop)
T
CL-USER(2): (defclass my-function (standard-generic-function)
((a-slot :initarg :a-slot :accessor a-slot))
(:metaclass funcallable-standard-class))
#<FUNCALLABLE-STANDARD-CLASS MY-FUNCTION {24DF7EA4}>
CL-USER(3): (defgeneric test (x y z)
(:generic-function-class my-function))
#<THREAD "interpreter" {14BAAEA8}>: Debugger invoked on condition of type
TYPE-ERROR
The value TEST is not of type LIST.
}}}
The reason is that std-compute-discriminating-function is also called for
subclasses of standard-generic-function that don't override compute-
discriminating function. The specialization in std-compute-discriminating-
function should only occur if the passed function is _extactly_ a
standard-generic-function (or if it doesn't add any slots on top of
standard-generic-function).
By the way, we're getting closer (ha!). More and more test cases in my
test suites work. I'm pretty confident that I can add full support for
ABCL in Closer to MOP for the next version of ABCL.
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/280>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#251: ffi callbacks don't unbox integer values
-----------------------+----------------------------------------------------
Reporter: sboukarev | Owner: nobody
Type: defect | Status: new
Priority: major | Milestone: 1.1.0
Component: java | Version: 1.1.0-dev
Keywords: |
-----------------------+----------------------------------------------------
It very well may be a cffi issue.
Compile the following C code
with gcc -shared test.c -o test.so
{{{
#ifdef WIN32
#define DLLEXPORT __declspec(dllexport)
#else
#define DLLEXPORT
#endif
DLLEXPORT
short test(short (*f)(short, short))
{
return f(23, 24);
}
}}}
Then
{{{
(cffi:load-foreign-library "/tmp/test.so")
(cffi:defcfun test :short
(function :pointer))
(cffi:defcallback (test-callback)
:short ((a :short) (b :short))
(+ a b))
}}}
And finally
{{{
(test (cffi:get-callback 'test-callback)) =>
The value #<java.lang.Short 23 {5EE76547}> is not of type NUMBER.
}}}
That's on 64-bit x86 linux, with OpenJDK 1.6.0_24 and jna downloaded by
maven.
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/251>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#258: Compiler bug in call to MAX
----------------------+-----------------------------------------------------
Reporter: mevenson | Owner: ehuelsmann
Type: defect | Status: new
Priority: major | Milestone: 1.1.0
Component: compiler | Version: 1.1.0-dev
Keywords: |
----------------------+-----------------------------------------------------
Eric Marsten reports in
http://article.gmane.org/gmane.lisp.armedbear.devel/2611:
The following illustrates what looks like a bug in the compiler's
handling of type propagation (bug disappears without the type
declaration).
{{{
CL-USER(25): (lisp-implementation-version)
"1.1.0-dev-svn-14222M"
"OpenJDK_64-Bit_Server_VM-Oracle_Corporation-1.7.0_03-b21)"
"amd64-Linux-3.3.0-trunk-amd64)"
CL-USER(26): (defun foo (a b)
(declare (type (integer * 6488318769) b))
(max 1 (the (integer * 5711538578) a) b 2 1351352470))
FOO
CL-USER(27): (foo 5711538444 6488318765)
6488318765
CL-USER(28): (compile 'foo)
FOO
NIL
NIL
CL-USER(29): (foo 5711538444 6488318765)
1351352470
}}}
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/258>
armedbear <http://common-lisp.net/project/armedbear>
armedbear