#38: CLOS :metaclass support
------------------------+---------------------------------------------------
Reporter: ehuelsmann | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone:
Component: component1 | Version:
Keywords: |
------------------------+---------------------------------------------------
Blake McBride reports:
Running the code:
(defclass meta-class1 (standard-class)
(cv1 cv2 cv3)
(:metaclass standard-class))
(defclass class1 (standard-object)
(iv1 iv2 iv3)
(:metaclass meta-class1))
The second object returns:
#<STANDARD-CLASS CLASS1 {F673CC}>
It should be:
#<META-CLASS1 CLASS1 {F673CC}>
Not only is it reporting the wrong class of class1 but it doesn't work
either. I suppose ABCL doesn't support the :metaclass option. It just
ignores it. The problem is that without that option ABCL's CLOS is
severely limited. Any plans to fix this?
Thanks.
Blake McBride
--
Ticket URL: <http://127.0.0.1:8000/armedbear/ticket/38>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#45: Support for passing unboxed arguments to local functions
-------------------------+--------------------------------------------------
Reporter: ehuelsmann | Owner: ehuelsmann
Type: enhancement | Status: new
Priority: major | Milestone:
Component: compiler | Version:
Keywords: |
-------------------------+--------------------------------------------------
It would save a great deal of boxing/unboxing, if local functions and
self-calling recursive functions could pass and return unboxed values.
Although passing unboxed values from the outside world is generally
considered 'dependency on implementation details', recursive calls and
calls to local functions should be able to depend on this: they get
recompiled upon function redefinition anyway.
One of the reasons for this ticket: with the improved type-derivations in
Jan/Feb 2009, the cl-bench TAK test deteriorated: more boxing was
performed. With this change, the (un)boxing can be eliminated, except for
the first call (from the outside world).
--
Ticket URL: <http://127.0.0.1:8000/armedbear/ticket/45>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#44: Unboxing of local variables with :float and :double representations
-------------------------+--------------------------------------------------
Reporter: ehuelsmann | Owner: ehuelsmann
Type: enhancement | Status: new
Priority: major | Milestone:
Component: compiler | Version:
Keywords: |
-------------------------+--------------------------------------------------
Currently, variables with :float or :double representations don't get
stored unboxed. Since intermediate results of those types do get unboxed,
this leads to additional boxing/unboxing.
--
Ticket URL: <http://127.0.0.1:8000/armedbear/ticket/44>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#48: SLIME CVS HEAD as of 2008-12-30 broken
-------------------------------------+--------------------------------------
Reporter: mevenson | Owner: mevenson
Type: defect | Status: new
Priority: major | Milestone: 0.13
Component: other | Version: 1.0
Keywords: slime emacs application |
-------------------------------------+--------------------------------------
Symptom is the failed listening to SlimeInputStream that doesn't detect a
pipe close, therefore never closes, so further enviornment bindings are
incorrect.
*inferior-lisp* buffers needs to evaluate a form before SLIME works
properly.
Something messed up in the Stream ._finishOuput() calls??
--
Ticket URL: <http://127.0.0.1:8000/armedbear/ticket/48>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#75: Character \U0080 causes infinite loop
------------------------+---------------------------------------------------
Reporter: ehuelsmann | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone:
Component: CLOS | Version:
Keywords: |
------------------------+---------------------------------------------------
The following code causes an infinite loop on systems which do not support
character \U0080 in their default output character set:
(defparameter single-character-symbols
'#.(let ((a (make-array 129)))
(dotimes (i 129)
(setf (svref a i) (make-string 1 :initial-element (code-char i))))
a))
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/75>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#72: Faster startup times
-------------------------+--------------------------------------------------
Reporter: ehuelsmann | Owner: somebody
Type: enhancement | Status: new
Priority: major | Milestone:
Component: other | Version:
Keywords: performance |
-------------------------+--------------------------------------------------
Analysis learned that 40% of the execution time spent loading ABCL was
spent finding constructors in the Java reflection code.
The idea of this issue is to spread the cost of that 40% better over the
life time of the application by loading - but not resolving - function
classes until they're actually used, by introducing a proxy object of some
kind which holds only the byte array of class bytes.
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/72>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#64: Caught (general) exceptions not rethrown everywhere
------------------------+---------------------------------------------------
Reporter: ehuelsmann | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone:
Component: other | Version:
Keywords: |
------------------------+---------------------------------------------------
The code base uses exceptions derived from ConditionThrowable (Go, Throw,
Return) to cause non-local transfers of control.
A special exception (ThreadDestroyed) has been derived to cause a jump to
the outer-most function in a LispThread. (This doesn't work in the main
thread, which isn't enclosed by a function in LispThread like those in
other threads.)
Some spots in our code seem to discard other exceptions than the ones
mentioned above. That's probably wrong in most cases.
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/64>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#14: Support for a C-calling FFI for CFFI to build upon
--------------------------+-------------------------------------------------
Reporter: ehuelsmann | Owner: mevenson
Type: enhancement | Status: assigned
Priority: major | Milestone:
Component: other | Version:
Resolution: | Keywords:
--------------------------+-------------------------------------------------
Changes (by mevenson):
* owner: somebody => mevenson
* status: new => assigned
Comment:
It looks like Luís Oliveira has [done the hard work][1]. Not sure what
the best way to support this in ABCL would be.
Maybe I should really start mirroring ASDF packages with ABCL-specific
patches until we get those patches merged upstream. But then I would like
to ABCL's support for ASDF up to current by implementing the long form of
CLOS's DEFINE-METHOD-COMBINATION. Chicken, meet egg.
[1]: http://common-lisp.net/~loliveira/patches/cffi-abcl.diff
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/14#comment:3>
armedbear <http://common-lisp.net/project/armedbear>
armedbear