#90: resetSpecialBindings efficiency
-------------------------+--------------------------------------------------
Reporter: ehuelsmann | Owner: ehuelsmann
Type: enhancement | Status: new
Priority: major | Milestone: unscheduled
Component: compiler | Version:
Keywords: |
-------------------------+--------------------------------------------------
The code
{{{
(PROGN
(DEFVAR *X*)
(DEFUN F (*X*)
(LET (*X*)
(PRINT "OK"))))
}}}
will compile 2 specials-restoring blocks after the PRINT form: one for LET
and one for the function argument list.
If the function indicated to the body that it would be clearing the
specials, the LET form could skip that action (being the last form in the
body), reducing the number of CATCH/THROWs in case of non-local exits and
the number of resetSpecialBindings() calls in case of normal exits.
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/90>
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
#5: CLOS reimplementation to support a MOP (preferably AMOP)
--------------------------+-------------------------------------------------
Reporter: ehuelsmann | Owner: somebody
Type: enhancement | Status: new
Priority: major | Milestone: too-vague
Component: other | Version:
Resolution: | Keywords:
--------------------------+-------------------------------------------------
Changes (by ehuelsmann):
* milestone: => too-vague
Old description:
> Well, the subject says it all: the CLOS implementation doesn't support
> much of a MOP, which makes it impossible for Closer to run. Some (very
> interesting) projects require Closer to run (portably).
New description:
Well, the subject says it all: the CLOS implementation doesn't support
much of a MOP, which makes it impossible for Closer to run. Some (very
interesting) projects require Closer to run (portably).
--
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/5#comment:1>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#87: input history for REPL
-------------------------+--------------------------------------------------
Reporter: trittweiler | Owner: somebody
Type: enhancement | Status: new
Priority: minor | Milestone:
Component: other | Version:
Keywords: repl |
-------------------------+--------------------------------------------------
Would be nice to use http://jline.sourceforge.net/ for getting
an input history and tab completion for the REPL.
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/87>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#85: CL-JSON throws an error under ABCL where SBCL doesn't.
------------------------+---------------------------------------------------
Reporter: ehuelsmann | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone:
Component: other | Version:
Keywords: |
------------------------+---------------------------------------------------
The code is:
(require 'asdf)
(asdf:operate 'asdf:load-op :cl-json)
(json:decode-json-from-string
"{\"foo\": [10,20,50], \"bar\": true}")
The error message is: The value 50 is not of type CONS.
I'm using Yason as a work-around, but thought that you guys might want to
know, maybe this points to a deeper issue.
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/85>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#81: Inlining functions with &optional and other "complex" arguments
-------------------------+--------------------------------------------------
Reporter: ehuelsmann | Owner: ehuelsmann
Type: enhancement | Status: new
Priority: major | Milestone: 0.20
Component: compiler | Version:
Keywords: |
-------------------------+--------------------------------------------------
Currently we only inline functions which have only required parameters.
With a little bit more intelligence we could easily inline functions with
optional parameters.
With a bit more intelligence than that, we can even inline functions with
&keyword and &rest parameters.
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/81>
armedbear <http://common-lisp.net/project/armedbear>
armedbear