#40: Non-constant function-argument initforms
------------------------+---------------------------------------------------
Reporter: ehuelsmann | Owner: ehuelsmann
Type: defect | Status: new
Priority: major | Milestone:
Component: compiler | Version:
Keywords: |
------------------------+---------------------------------------------------
The compiler doesn't support non-constant initforms for compiled
functions. One way to work around this would be to take advantage of the
existing processArgs() functionality in Closure.java. It's used by the
interpreter to evaluate non-constant initforms.
In order to re-use the functionality, the compiler would need to create an
Environment object and set it up with the variables used in the initforms
for the interpreter to access.
This can be done by removing the CompiledClosure wrapper around
ClosureTemplateFunction. The ClosureTemplateFunction should support being
.execute()-ed directly (instead of through the wrapper). The compiler
should then set a context record (array of LispObjects) currently carried
around in CompiledClosure directly in ClosureTemplateFunction. The
Environment object should be used to set the 'environment' field in
ClosureTemplateFunction.
--
Ticket URL: <http://127.0.0.1:8000/armedbear/ticket/40>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#37: The Lisp based build system should be aligned with build.xml
------------------------+---------------------------------------------------
Reporter: mevenson | Owner: mevenson
Type: defect | Status: new
Priority: major | Milestone: 0.13
Component: component1 | Version: 1.0
Keywords: |
------------------------+---------------------------------------------------
The Lisp based build system need some serious love to align with
'build.xml'.
This should be available for abcl-0.13.0
--
Ticket URL: <http://127.0.0.1:8000/armedbear/ticket/37>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#50: Implement STEP
-------------------------+--------------------------------------------------
Reporter: ehuelsmann | Owner: ehuelsmann
Type: enhancement | Status: new
Priority: major | Milestone: unscheduled
Component: interpreter | Version:
Keywords: |
-------------------------+--------------------------------------------------
STEP is currently implemented conformant, but trivially to evaluate the
form, without actual stepping.
The component here should probably be both the compiler and the
interpreter, but the interpreter should probably be targetted first.
--
Ticket URL: <http://127.0.0.1:8000/armedbear/ticket/50>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#47: toplevel TRACE form cannot be compiled
----------------------+-----------------------------------------------------
Reporter: mevenson | Owner: ehuelsmann
Type: defect | Status: new
Priority: major | Milestone: unscheduled
Component: compiler | Version: 1.0
Keywords: |
----------------------+-----------------------------------------------------
As of r11561 toplevel TRACE forms cannot be compiled, giving the complaint
{{{
There is no applicable method for the generic function #<STANDARD-GENERIC-
FUNCTION MAKE-LOAD-FORM {7607ED}> when called with arguments (#S(SYSTEM
::TRACE-INFO :NAME FOO :UNTRACED-FUNCTION NIL :BREAKP NIL)).
}}}
when trying to COMPILE-FILE the following in a file:
{{{
(defun foo ()
42)
(trace foo)
}}}
--
Ticket URL: <http://127.0.0.1:8000/armedbear/ticket/47>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#41: Compilation of single-/double-float arithmetic to immediate byte code
-------------------------+--------------------------------------------------
Reporter: ehuelsmann | Owner: ehuelsmann
Type: enhancement | Status: new
Priority: major | Milestone:
Component: compiler | Version:
Keywords: |
-------------------------+--------------------------------------------------
Currently, the following code
"
(lambda (x)
(declare (double-float x))
(+ 3.0e0
(* 12.0e0 x)))
"
disassembles to a call to a LispObject function for + and one for *.
However, this code could be more efficient if only 1 new object would be
required. This can be achieved by unboxing X, then doing the math in Java
byte code and boxing the result before it's returned.
--
Ticket URL: <http://127.0.0.1:8000/armedbear/ticket/41>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
#42: TRACE of FORMAT blows up the stack
----------------------+-----------------------------------------------------
Reporter: mevenson | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone: unscheduled
Component: other | Version: 1.0
Keywords: |
----------------------+-----------------------------------------------------
(trace format)
(format t "sfsdf")
will result in a STORAGE-CONDITION
{{{
Debugger invoked on condition of type STORAGE-CONDITION:
java.lang.StackOverflowError
at org.armedbear.lisp.Symbol.symbolValue(Symbol.java:300)
at org.armedbear.lisp.Readtable.<init>(Readtable.java:123)
at org.armedbear.lisp.Readtable$2.execute(Readtable.java:348)
at org.armedbear.lisp.Symbol.execute(Symbol.java:733)
at org.armedbear.lisp.LispThread.execute(LispThread.java:618)
at org.armedbear.lisp.with_standard_io_syntax_1.execute(with-
standard-io-syntax.lisp:35)
at org.armedbear.lisp.Symbol.execute(Symbol.java:733)
at org.armedbear.lisp.LispThread.execute(LispThread.java:618)
at org.armedbear.lisp.trace_30._execute(trace.lisp:88)
at
org.armedbear.lisp.ClosureTemplateFunction._execute(ClosureTemplateFunction.java:208)
at
org.armedbear.lisp.ClosureTemplateFunction.execute(ClosureTemplateFunction.java:100)
at
org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:86)
at org.armedbear.lisp.Symbol.execute(Symbol.java:777)
at org.armedbear.lisp.LispThread.execute(LispThread.java:690)
at org.armedbear.lisp.trace_31._execute(trace.lisp:88)
at
org.armedbear.lisp.ClosureTemplateFunction.execute(ClosureTemplateFunction.java:71)
}}}
--
Ticket URL: <http://127.0.0.1:8000/armedbear/ticket/42>
armedbear <http://common-lisp.net/project/armedbear>
armedbear