#361: compile function fails -----------------------------+----------------- Reporter: mariano montone | Owner: Type: defect | Status: new Priority: major | Milestone: Component: compiler | Version: Keywords: | -----------------------------+----------------- http://clhs.lisp.se/Body/f_cmp.htm fails in the latest ABCL version:
This is what I get when I try to evaluate the example in CLHS:
(defun foo () "bar") => FOO
(compile 'foo)
Wrong number of arguments for #<FUNCTION {5236A94B}>. [Condition of type PROGRAM-ERROR]
Restarts: 0: [RETRY] Retry SLIME REPL evaluation request. 1: [*ABORT] Return to SLIME's top level. 2: [ABORT] Abort thread.
Backtrace: 0: (#<FUNCTION {752CC03}> #<PROGRAM-ERROR {600776A0}> #<FUNCTION {752CC03}>) 1: (APPLY #<FUNCTION {752CC03}> (#<PROGRAM-ERROR {600776A0}> #<FUNCTION {752CC03}>)) 2: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<PROGRAM-ERROR {600776A0}> #<FUNCTION {752CC03}>) 3: (INVOKE-DEBUGGER #<PROGRAM-ERROR {600776A0}>) 4: org.armedbear.lisp.Lisp.error(Lisp.java:382) 5: org.armedbear.lisp.CompiledClosure.notImplemented(CompiledClosure.java:81) 6: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:212) 7: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:121) 8: org.armedbear.lisp.FuncallableStandardObject.execute(FuncallableStandardObject.java:117) 9: org.armedbear.lisp.Symbol.execute(Symbol.java:826) 10: org.armedbear.lisp.compiler_pass2_387.execute(compiler- pass2.lisp:7495) 11: org.armedbear.lisp.compiler_pass2_370.execute(compiler- pass2.lisp:7450) 12: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:98) 13: org.armedbear.lisp.Symbol.execute(Symbol.java:803) 14: org.armedbear.lisp.compiler_pass2_386.execute(compiler- pass2.lisp:7495) 15: org.armedbear.lisp.Symbol.execute(Symbol.java:838) 16: org.armedbear.lisp.compiler_pass2_388.execute(compiler- pass2.lisp:7519) 17: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:109) 18: org.armedbear.lisp.Symbol.execute(Symbol.java:814) 19: org.armedbear.lisp.compiler_pass2_392.execute(compiler- pass2.lisp:7589) 20: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:98) 21: org.armedbear.lisp.LispThread.execute(LispThread.java:814) 22: org.armedbear.lisp.Lisp.evalCall(Lisp.java:575) 23: org.armedbear.lisp.Lisp.eval(Lisp.java:540) 24: org.armedbear.lisp.Primitives$pf__eval.execute(Primitives.java:345) 25: (COMPILE FOO)
I'm not using this directly, but some libraries like closer-mop, need compile to work.
Fails here:
CL-USER> (lisp-implementation-type) "Armed Bear Common Lisp" CL-USER> (lisp-implementation-version) "1.4.0-dev-svn-14713" "OpenJDK_64-Bit_Server_VM-Oracle_Corporation-1.7.0_55-b14" "amd64-Linux-3.5.0-17-generic"
It seems to work in some cases on ABCL 1.3.1, though.
CL-USER> (compile 'foo) FOO NIL NIL
But something like this signals an error:
CL-USER> (compile nil '(lambda (x) x)) ; Evaluation aborted on #<PROGRAM-ERROR {4C62C417}>.
With the same error above.
CL-USER> (lisp-implementation-version) "1.3.1" "OpenJDK_64-Bit_Server_VM-Oracle_Corporation-1.7.0_55-b14" "amd64-Linux-3.5.0-17-generic"
-- Ticket URL: http://abcl.org/trac/ticket/361 armedbear http://abcl.org armedbear
#361: COMPILE function fails ------------------------------+----------------- Reporter: mariano montone | Owner: Type: defect | Status: new Priority: major | Milestone: Component: compiler | Version: Resolution: | Keywords: ------------------------------+-----------------
-- Ticket URL: http://abcl.org/trac/ticket/361#comment:1 armedbear http://abcl.org armedbear
#361: COMPILE function fails ------------------------------+----------------- Reporter: mariano montone | Owner: Type: defect | Status: new Priority: major | Milestone: Component: compiler | Version: Resolution: | Keywords: ------------------------------+-----------------
Comment (by mevenson):
As I noted in my email to armedbear-devel@, I cannot reproduce this in either abcl-1.3.1 nor SVN HEAD, and find this problem somewhat mysterious.
And the CLOSER-MOP test suite continues to pass its tests as far as I can tell.
Perhaps one can try invoking abcl directly with '--noinit' to factor out problems with initialization:
{{{ illin:~/work/illithid$ abcl --noinit --eval '(if (compile nil (quote (lambda (x) x))) (format t "Succeeded.") (format t "Failed."))' Armed Bear Common Lisp 1.3.1 Java 1.8.0 Oracle Corporation Java HotSpot(TM) 64-Bit Server VM Low-level initialization completed in 0.231 seconds. Startup completed in 1.125 seconds. Succeeded. Type ":help" for a list of available commands. CL-USER(1): }}}
I suppose this could be a problem with openjdk7 under Linux, but I would be surprised.
-- Ticket URL: http://abcl.org/trac/ticket/361#comment:2 armedbear http://abcl.org armedbear
#361: COMPILE function fails ------------------------------+-------------------- Reporter: mariano montone | Owner: Type: defect | Status: closed Priority: major | Milestone: Component: compiler | Version: Resolution: invalid | Keywords: ------------------------------+-------------------- Changes (by mariano montone):
* status: new => closed * resolution: => invalid
Comment:
This works fine in a clean version of ABCL. The problem occurs after loading a couple of packages, so the problem may be in those packages, that may be rewriting things? I don't know...
-- Ticket URL: http://abcl.org/trac/ticket/361#comment:3 armedbear http://abcl.org armedbear
armedbear-ticket@common-lisp.net