Could this be the result of some corruption of my java environment?
Error loading /Users/alanr/repos/lsw/trunk/util/armedbear-0.19.0-dev-darwin-unknown/obo.abcl at line 16 (offset 951) Debugger invoked on condition of type ERROR: Class verification failed: (class: org/armedbear/lisp/obo_10, method: execute signature: (Lorg/armedbear/lisp/LispObject;Lorg/armedbear/lisp/LispObject;)Lorg/armedbear/lisp/LispObject;) Accessing value from uninitialized register 10 Restarts: 0: RETRY Retry performing #<ASDF:LOAD-OP (:VERBOSE NIL) {A3513D}> on #<ASDF:CL-SOURCE-FILE "obo" {DD5547}>. 1: ACCEPT Continue, treating #<ASDF:LOAD-OP (:VERBOSE NIL) {A3513D}> on #<ASDF:CL-SOURCE-FILE "obo" {DD5547}> as having been successful. [1] CL-USER(1): :bt 0: (SYSTEM:BACKTRACE) 1: (APPLY #<FUNCTION SYSTEM:BACKTRACE {59067}> NIL) 2: (SYSTEM:BACKTRACE) 3: (INVOKE-DEBUGGER #<ERROR {690C8E}>) 4: org.armedbear.lisp.AutoloadedFunctionProxy.loadPreloadedFunction(AutoloadedFunctionProxy.java:237) 5: org.armedbear.lisp.CompiledClosure$1.execute(CompiledClosure.java:232) 6: org.armedbear.lisp.Load.faslLoadStream(Load.java:548) 7: org.armedbear.lisp.Load.access$100(Load.java:54) [1] CL-USER(2):
On 2/16/10 12:42 AM, Alan Ruttenberg wrote:
Could this be the result of some corruption of my java environment?
[…]
I don't think so, because in my experience Java installations fail catastrophically.
Do you have possibly two compilers in your environment?
For what it's worth, I was able to compile obo.lisp from lsw r619. The compiler complained heavily about READ-OBO-KEY-VALUES OBO STREAM claiming that variables named LAMBDA::Gnnn "being defined but never used", but produced the output attached to this message. Perhaps you can check your installation by attempting to load this FASL?
I used ABCL svn r12481 with the OSX 10.2.0 jdk 1.6.0_17 to build.
Not sure what else I can try from my side without more details, but if you have a suggestion, I'd be happy to try to help.
It loads without error, but gets an error when run. The error does not occur in evaluated code. There is a compiler macro involved, but it has worked in the past.
(define-compiler-macro regex-replace-all (&whole form regex string replacement) "Compile constant regex to pattern at compile time" (cond ((stringp regex) `(#"replaceAll" (#0"matcher" (load-time-value (#0"compile" 'java.util.regex.Pattern ,regex)) ,string) ,replacement)) (t form)))
When I don't get a loading error, I get the same error on running. I don't understand why I get all the gensym style warnings either. -Alan
(load "/Users/alanr/Downloads/2010-02-16/obo.abcl") ; Loading #P"/Users/alanr/Downloads/2010-02-16/obo.abcl" ... ; Loaded #P"/Users/alanr/Downloads/2010-02-16/obo.abcl" (0.079 seconds) T CL-USER(4): (setq obo (make-instance 'obo :path "/Users/alanr/Downloads/2010-02-15/quality.obo.txt")) #<OBO {A7533B}> CL-USER(5): (read-obo obo) Debugger invoked on condition of type JAVA-EXCEPTION: Java exception 'SchemeException: ERROR: NO INSTANCE METHOD OF TYPE
(.matcher org.armedbear.lisp.Cons ...)'. Restarts: 0: TOP-LEVEL Return to top level. [1] CL-USER(6): :bt 0: (SYSTEM:BACKTRACE) 1: (APPLY #<FUNCTION SYSTEM:BACKTRACE {59067}> NIL) 2: (SYSTEM:BACKTRACE) 3: (INVOKE-DEBUGGER #<JAVA-EXCEPTION SchemeException: ERROR: NO INSTANCE METHOD OF TYPE
(.matcher org.armedbear.lisp.Cons ...) {A01AAF}>) 4: org.armedbear.lisp.Java.jstatic(Java.java:402) 5: org.armedbear.lisp.Java.access$600(Java.java:50) 6: org.armedbear.lisp.Java$9.execute(Java.java:434) 7: org.armedbear.lisp.Primitive.execute(Primitive.java:174) [1] CL-USER(7):
On Tue, Feb 16, 2010 at 2:31 PM, Mark Evenson evenson@panix.com wrote:
On 2/16/10 12:42 AM, Alan Ruttenberg wrote:
Could this be the result of some corruption of my java environment?
[…]
I don't think so, because in my experience Java installations fail catastrophically.
Do you have possibly two compilers in your environment?
For what it's worth, I was able to compile obo.lisp from lsw r619. The compiler complained heavily about READ-OBO-KEY-VALUES OBO STREAM claiming that variables named LAMBDA::Gnnn "being defined but never used", but produced the output attached to this message. Perhaps you can check your installation by attempting to load this FASL?
I used ABCL svn r12481 with the OSX 10.2.0 jdk 1.6.0_17 to build.
Not sure what else I can try from my side without more details, but if you have a suggestion, I'd be happy to try to help.
-- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now."
armedbear-devel mailing list armedbear-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel
There's definitely something wierd going on with the compiler macro. I changed compiler to java 1.6. Compilers correctly but behaves wrong - seems the load-time-value is creating a cons.
I then evaluated the compiler macro, and then tried to recompile the function and get an error (in slime)
Unable to load #<jarray [B@77d7141e {4969FB09}> [Condition of type ERROR]
Restarts: 0: [ABORT] Abort compilation. 1: [ABORT] Return to SLIME's top level.
Backtrace: 0: org.armedbear.lisp.CompiledClosure$1.execute(CompiledClosure.java:239) 1: org.armedbear.lisp.Symbol.execute(Symbol.java:775) 2: org.armedbear.lisp.compiler_pass2_453.execute(compiler-pass2.lisp:5224) 3: org.armedbear.lisp.Symbol.execute(Symbol.java:786) 4: org.armedbear.lisp.compiler_pass2_454.execute(compiler-pass2.lisp:5261) 5: org.armedbear.lisp.Symbol.execute(Symbol.java:798) 6: org.armedbear.lisp.compiler_pass2_560.execute(compiler-pass2.lisp:8127) 7: org.armedbear.lisp.Symbol.execute(Symbol.java:798) 8: org.armedbear.lisp.compiler_pass2_327.execute(compiler-pass2.lisp:2961) 9: org.armedbear.lisp.Symbol.execute(Symbol.java:775) 10: org.armedbear.lisp.compiler_pass2_332.execute(compiler-pass2.lisp:3023) 11: org.armedbear.lisp.Symbol.execute(Symbol.java:798) 12: org.armedbear.lisp.compiler_pass2_560.execute(compiler-pass2.lisp:8127) 13: org.armedbear.lisp.Symbol.execute(Symbol.java:798) 14: org.armedbear.lisp.compiler_pass2_401.execute(compiler-pass2.lisp:4131) 15: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:112) 16: org.armedbear.lisp.Symbol.execute(Symbol.java:786) 17: org.armedbear.lisp.compiler_pass2_567.execute(compiler-pass2.lisp:8350) 18: org.armedbear.lisp.Symbol.execute(Symbol.java:775) 19: org.armedbear.lisp.compiler_pass2_569.execute(compiler-pass2.lisp:8581) 20: org.armedbear.lisp.Symbol.execute(Symbol.java:786) 21: org.armedbear.lisp.compiler_pass2_571.execute(compiler-pass2.lisp:8623) 22: org.armedbear.lisp.Symbol.execute(Symbol.java:839) 23: org.armedbear.lisp.compiler_pass2_596.execute(compiler-pass2.lisp:8737) 24: org.armedbear.lisp.compiler_pass2_582.execute(compiler-pass2.lisp:8692) 25: org.armedbear.lisp.Java$23.execute(Java.java:1007) 26: org.armedbear.lisp.Symbol.execute(Symbol.java:775) 27: org.armedbear.lisp.compiler_pass2_578.execute(compiler-pass2.lisp:8692) 28: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:101) 29: org.armedbear.lisp.Symbol.execute(Symbol.java:775) 30: org.armedbear.lisp.compiler_pass2_595.execute(compiler-pass2.lisp:8737) 31: org.armedbear.lisp.Symbol.execute(Symbol.java:810) 32: org.armedbear.lisp.compiler_pass2_601.execute(compiler-pass2.lisp:8754) 33: org.armedbear.lisp.Java$23.execute(Java.java:1007) 34: org.armedbear.lisp.Symbol.execute(Symbol.java:775) 35: org.armedbear.lisp.compiler_pass2_597.execute(compiler-pass2.lisp:8754) 36: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:112) 37: org.armedbear.lisp.Symbol.execute(Symbol.java:786) 38: org.armedbear.lisp.compiler_pass2_602.execute(compiler-pass2.lisp:8825) 39: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:112) 40: org.armedbear.lisp.Lisp.progn(Lisp.java:628) 41: org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) 42: org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40) 43: org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) 44: org.armedbear.lisp.Lisp.progn(Lisp.java:628) 45: org.armedbear.lisp.Java$23.execute(Java.java:1007) 46: org.armedbear.lisp.Lisp.progn(Lisp.java:628) 47: org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) 48: org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40) 49: org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) 50: org.armedbear.lisp.Lisp.progn(Lisp.java:628) 51: org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) 52: org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40) 53: org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) 54: org.armedbear.lisp.Lisp.progn(Lisp.java:628) 55: org.armedbear.lisp.Lisp.funcall(Lisp.java:183) 56: (JVM::COMPILE-FORM #'#S(JVM::COMPILAND :NAME #:ANONYMOUS-LAMBDA-94099 :LAMBDA-EXPRESSION (LAMBDA (MOP::ARGS MOP::NEXT-EMFUN) (DECLARE (IGNORE MOP::NEXT-EMFUN)) #S(JVM::LET/LET*-NODE :FORM (LET (# #) (.. 57: (#<FUNCTION {5093ACC2}>) 58: (#<FUNCTION {F331DE2}>) 59: (#<FUNCTION {64EEE839}> NIL (LAMBDA NIL (DEFMETHOD READ-OBO-KEY-VALUES (# STREAM) (LOOP FOR LINE = # FOR ...)))) 60: (#<FUNCTION (LAMBDA ()) {294DE1C8}>) 61: (JRUN-EXCEPTION-PROTECTED #<FUNCTION (LAMBDA ()) {294DE1C8}>) 62: (#<FUNCTION (LAMBDA (STRING &KEY SWANK-BACKEND::BUFFER ...)) {382226A7}> "(defmethod read-obo-key-values ((g obo) stream) (loop for line = (read-line stream) for (tag value) = (car (all-matches.. 63: (APPLY #<FUNCTION (LAMBDA (STRING &KEY SWANK-BACKEND::BUFFER ...)) {382226A7}> "(defmethod read-obo-key-values ((g obo) stream) (loop for line = (read-line stream) for (tag value) = (car (all-m.. 64: (SWANK-BACKEND:SWANK-COMPILE-STRING "(defmethod read-obo-key-values ((g obo) stream) (loop for line = (read-line stream) for (tag value) = (car (all-matches line "^(\\S+): (.*?)\\s*(![^\.. 65: (#<FUNCTION {4A17BABB}>) 66: (#<FUNCTION {5BE470FD}>) 67: (SWANK::MEASURE-TIME-INTERVAL #<FUNCTION {5BE470FD}>) 68: (#<FUNCTION {72B6212C}>) 69: (JRUN-EXCEPTION-PROTECTED #<FUNCTION {72B6212C}>) 70: (SWANK::COLLECT-NOTES #<FUNCTION {4A17BABB}>) 71: (#<FUNCTION {133C0A8A}>) 72: (FUNCALL #<FUNCTION {133C0A8A}>) 73: (#<FUNCTION (LAMBDA (SWANK-BACKEND::FN)) {F598D5F}> #<FUNCTION {133C0A8A}>) 74: (APPLY #<FUNCTION (LAMBDA (SWANK-BACKEND::FN)) {F598D5F}> #<FUNCTION {133C0A8A}> NIL) 75: (SWANK-BACKEND:CALL-WITH-SYNTAX-HOOKS #<FUNCTION {133C0A8A}>) 76: (SWANK::CALL-WITH-BUFFER-SYNTAX NIL #<FUNCTION {133C0A8A}>) 77: (SWANK:COMPILE-STRING-FOR-EMACS "(defmethod read-obo-key-values ((g obo) stream) (loop for line = (read-line stream) for (tag value) = (car (all-matches line "^(\\S+): (.*?)\\s*(![^\"]+?.. 78: (SYSTEM::%EVAL (SWANK:COMPILE-STRING-FOR-EMACS "(defmethod read-obo-key-values ((g obo) stream) (loop for line = (read-line stream) for (tag value) = (car (all-matches line "^(\\S+): (.*?)\.. 79: (EVAL (SWANK:COMPILE-STRING-FOR-EMACS "(defmethod read-obo-key-values ((g obo) stream) (loop for line = (read-line stream) for (tag value) = (car (all-matches line "^(\\S+): (.*?)\\s*(![^.. 80: (SWANK::EVAL-FOR-EMACS (SWANK:COMPILE-STRING-FOR-EMACS "(defmethod read-obo-key-values ((g obo) stream) (loop for line = (read-line stream) for (tag value) = (car (all-matches line "^(\\S+):.. 81: (APPLY #<FUNCTION SWANK::EVAL-FOR-EMACS {4AD7F3E3}> ((SWANK:COMPILE-STRING-FOR-EMACS "(defmethod read-obo-key-values ((g obo) stream) (loop for line = (read-line stream) for (tag value) = (car .. 82: (#<FUNCTION {27CCE278}>) 83: (FUNCALL #<FUNCTION {27CCE278}>) 84: (#<FUNCTION (LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) {7C2848B1}> #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK {38BC9C25}> #<FUNCTION {27CCE278}>) 85: (APPLY #<FUNCTION (LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) {7C2848B1}> #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK {38BC9C25}> #<FUNCTION {27CCE278}> NIL) 86: (SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK {38BC9C25}> #<FUNCTION {27CCE278}>) 87: (#<FUNCTION {66AF5E3C}>) 88: (SWANK::CALL-WITH-BINDINGS ((*STANDARD-OUTPUT* . #S(SLIME-OUTPUT-STREAM)) (*STANDARD-INPUT* . #S(SLIME-INPUT-STREAM)) (*TRACE-OUTPUT* . #S(SLIME-OUTPUT-STREAM)) (*ERROR-OUTPUT* . #S(SLIME-OUTPUT-STREA.. 89: (#<FUNCTION {7A1B16BD}>) 90: (JRUN-EXCEPTION-PROTECTED #<FUNCTION {7A1B16BD}>) 91: (#<FUNCTION {87210EC}>) 92: (JRUN-EXCEPTION-PROTECTED #<FUNCTION {87210EC}>) 93: (SWANK::CALL-WITH-CONNECTION #S(SWANK::CONNECTION :SOCKET-IO #<TWO-WAY-STREAM {78B4FA48}> :DEDICATED-OUTPUT NIL :USER-INPUT #S(SLIME-INPUT-STREAM) :USER-OUTPUT #S(SLIME-OUTPUT-STREAM) :USER-IO #<TWO-W.. 94: (#<FUNCTION {319BCAE1}>) 95: (SWANK::CALL-WITH-BINDINGS NIL #<FUNCTION {319BCAE1}>) 96: (#<FUNCTION {6B249338}>) 97: (FUNCALL #<FUNCTION {6B249338}>) 98: (#<FUNCTION (LAMBDA ()) {2E3D787C}>)
On Tue, Feb 16, 2010 at 12:42 AM, Alan Ruttenberg alanruttenberg@gmail.com wrote:
Could this be the result of some corruption of my java environment?
Error loading /Users/alanr/repos/lsw/trunk/util/armedbear-0.19.0-dev-darwin-unknown/obo.abcl at line 16 (offset 951) Debugger invoked on condition of type ERROR: Class verification failed: (class: org/armedbear/lisp/obo_10, method: execute signature: (Lorg/armedbear/lisp/LispObject;Lorg/armedbear/lisp/LispObject;)Lorg/armedbear/lisp/LispObject;) Accessing value from uninitialized register 10 Restarts: 0: RETRY Retry performing #<ASDF:LOAD-OP (:VERBOSE NIL) {A3513D}> on #<ASDF:CL-SOURCE-FILE "obo" {DD5547}>. 1: ACCEPT Continue, treating #<ASDF:LOAD-OP (:VERBOSE NIL) {A3513D}> on #<ASDF:CL-SOURCE-FILE "obo" {DD5547}> as having been successful. [1] CL-USER(1): :bt 0: (SYSTEM:BACKTRACE) 1: (APPLY #<FUNCTION SYSTEM:BACKTRACE {59067}> NIL) 2: (SYSTEM:BACKTRACE) 3: (INVOKE-DEBUGGER #<ERROR {690C8E}>) 4: org.armedbear.lisp.AutoloadedFunctionProxy.loadPreloadedFunction(AutoloadedFunctionProxy.java:237) 5: org.armedbear.lisp.CompiledClosure$1.execute(CompiledClosure.java:232) 6: org.armedbear.lisp.Load.faslLoadStream(Load.java:548) 7: org.armedbear.lisp.Load.access$100(Load.java:54) [1] CL-USER(2):
Hi Alan,
Thanks for the report. Can you provide an explanation on how to reproduce it?
We recently made a change in the compiler to inline all lambda calls and local function calls which are declared to be inline; that may have something to do with your bug, does it ring a bell to you?
hth, Alessio
Hi Alan,
Thanks for the report. Can you provide an explanation on how to reproduce it?
We recently made a change in the compiler to inline all lambda calls and local function calls which are declared to be inline; that may have something to do with your bug, does it ring a bell to you?
hth, Alessio
Yes, this seems to be related to the problem. If I don't let that happen, as such:
(defun rewrite-function-call (form) (let ((op (car form)) (args (cdr form))) (if (and nil (and (listp op) ; don't let this optimization happen (eq (car op) 'lambda))) (expand-function-call-inline form (cadr op) (cddr op) args) (if (unsafe-p args) ...
And the recompile the compiler macro and then recompile, the function compiles and operates correctly. I'll poke around a bit.
-Alan
Maybe this can help.
First define:
(defmethod print-object ((v jvm::var-ref) s) (prin1 (jvm::variable-name (jvm::var-ref-variable v)) s))
So that when tracing the expansion we don't throw a fit.
Then:
(defun expand-function-call-inline (form lambda-list body args) (handler-case (multiple-value-bind (bindings ignorables) (match-lambda-list (multiple-value-list (parse-lambda-list lambda-list)) args) (let ((expanded `(let* ,bindings (declare (ignorable ,@ignorables)) ,@body))) (let ((*print-structure* nil) (*print-pretty* t) (*print-case* :downcase)) (format t "transforming ~a ~% into~% ~a~%-------~%" form expanded) expanded))) (lambda-list-mismatch (x) (compiler-warn "Invalid function call: ~S (mismatch type: ~A)" form (lambda-list-mismatch-type x)) form)))
Given that, here's the trace of what happens when I compile the function in question:
java.lang.VerifyError: (class: abcl_6037b542_0820_4605_aeb0_a2000b3f3a45, method: execute signature: (Lorg/armedbear/lisp/LispObject;Lorg/armedbear/lisp/LispObject;)Lorg/armedbear/lisp/LispObject;) Illegal local variable number at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) at java.lang.Class.getConstructor0(Class.java:2699) at java.lang.Class.newInstance0(Class.java:326) at java.lang.Class.newInstance(Class.java:308) at org.armedbear.lisp.Lisp.makeCompiledFunctionFromClass(Lisp.java:1266) at org.armedbear.lisp.Lisp.loadClassBytes(Lisp.java:1327) at org.armedbear.lisp.Lisp.loadClassBytes(Lisp.java:1320) at org.armedbear.lisp.CompiledClosure$1.execute(CompiledClosure.java:236) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.compiler_pass2_453.execute(compiler-pass2.lisp:5224) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.compiler_pass2_454.execute(compiler-pass2.lisp:5261) at org.armedbear.lisp.Symbol.execute(Symbol.java:798) at org.armedbear.lisp.compiler_pass2_560.execute(compiler-pass2.lisp:8127) at org.armedbear.lisp.Symbol.execute(Symbol.java:798) at org.armedbear.lisp.LispThread.execute(LispThread.java:596) at org.armedbear.lisp.compiler_pass2_327.execute(compiler-pass2.lisp:2961) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.compiler_pass2_332.execute(compiler-pass2.lisp:3023) at org.armedbear.lisp.Symbol.execute(Symbol.java:798) at org.armedbear.lisp.compiler_pass2_560.execute(compiler-pass2.lisp:8127) at org.armedbear.lisp.Symbol.execute(Symbol.java:798) at org.armedbear.lisp.compiler_pass2_401.execute(compiler-pass2.lisp:4131) at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:112) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.compiler_pass2_567.execute(compiler-pass2.lisp:8350) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.compiler_pass2_569.execute(compiler-pass2.lisp:8581) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.compiler_pass2_571.execute(compiler-pass2.lisp:8623) at org.armedbear.lisp.Symbol.execute(Symbol.java:839) at org.armedbear.lisp.compiler_pass2_596.execute(compiler-pass2.lisp:8737) at org.armedbear.lisp.compiler_pass2_582.execute(compiler-pass2.lisp:8692) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Java$23.execute(Java.java:1007) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.compiler_pass2_578.execute(compiler-pass2.lisp:8692) at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:101) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.compiler_pass2_595.execute(compiler-pass2.lisp:8737) at org.armedbear.lisp.Symbol.execute(Symbol.java:810) at org.armedbear.lisp.compiler_pass2_601.execute(compiler-pass2.lisp:8754) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Java$23.execute(Java.java:1007) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.compiler_pass2_597.execute(compiler-pass2.lisp:8754) at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:112) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.compiler_pass2_602.execute(compiler-pass2.lisp:8825) at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:112) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:501) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:489) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:449) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.Closure.execute(Closure.java:421) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Java$
transforming ((lambda (g172 &rest g173) (invoke-restargs replaceAll lambdas::g172 #:temp13766 nil)) ((lambda (g174 &rest g175) (invoke-restargs matcher lambdas::g174 #:temp13767 t)) (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.))) value) $1) into (let* ((g172 ((lambda (g174 &rest g175) (invoke-restargs matcher lambdas::g174 #:temp13767 t)) (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.))) value)) (temp15717 (list $1)) (g173 temp15717)) (declare (ignorable)) (invoke-restargs replaceAll lambdas::g172 #:temp13766 nil)) ------- transforming ((lambda (g174 &rest g175) (invoke-restargs matcher lambdas::g174 #:temp13767 t)) (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.))) value) into (let* ((g174 (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.)))) (temp15718 (list value)) (g175 temp15718)) (declare (ignorable)) (invoke-restargs matcher lambdas::g174 #:temp13767 t)) ------- transforming ((lambda (g172 &rest g173) (invoke-restargs replaceAll lambdas::g172 #:temp13766 nil)) ((lambda (g174 &rest g175) (invoke-restargs matcher lambdas::g174 #:temp13767 t)) (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.))) value) $1) into (let* ((g172 ((lambda (g174 &rest g175) (invoke-restargs matcher lambdas::g174 #:temp13767 t)) (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.))) value)) (temp15725 (list $1)) (g173 temp15725)) (declare (ignorable)) (invoke-restargs replaceAll lambdas::g172 #:temp13766 nil)) ------- transforming ((lambda (g174 &rest g175) (invoke-restargs matcher lambdas::g174 #:temp13767 t)) (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.))) value) into (let* ((g174 (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.)))) (temp15726 (list value)) (g175 temp15726)) (declare (ignorable)) (invoke-restargs matcher lambdas::g174 #:temp13767 t)) ------- STYLE-WARNING: The variable LINE is defined but never used. STYLE-WARNING: The variable LAMBDAS::G172 is defined but never used. STYLE-WARNING: The variable LAMBDAS::G173 is defined but never used. STYLE-WARNING: The variable LAMBDAS::G174 is defined but never used. STYLE-WARNING: The variable LAMBDAS::G175 is defined but never used.
23.execute(Java.java:1007) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:494) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:449) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:449) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.Closure.execute(Closure.java:646) at org.armedbear.lisp.LispThread.execute(LispThread.java:711) at org.armedbear.lisp.Lisp.funcall(Lisp.java:183) at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2829) at org.armedbear.lisp.Symbol.execute(Symbol.java:886) at org.armedbear.lisp.LispThread.execute(LispThread.java:711) at org.armedbear.lisp.swank_backend_45.execute(swank-backend.lisp:402) at org.armedbear.lisp.Symbol.execute(Symbol.java:886) at org.armedbear.lisp.LispThread.execute(LispThread.java:711) at org.armedbear.lisp.swank_541.execute(swank.lisp:2691) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.swank_529.execute(swank.lisp:2639) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.swank_524.execute(swank.lisp:2619) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.swank_528.execute(swank.lisp:2639) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Java$23.execute(Java.java:1007) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.swank_526.execute(swank.lisp:2639) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.swank_540.execute(swank.lisp:2691) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Primitives$pf_funcall.execute(Primitives.java:2673) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:494) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.Closure.bindParametersAndExecute(Closure.java:446) at org.armedbear.lisp.Closure.execute(Closure.java:479) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.Lisp.funcall(Lisp.java:163) at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2811) at org.armedbear.lisp.Symbol.execute(Symbol.java:798) at org.armedbear.lisp.LispThread.execute(LispThread.java:596) at org.armedbear.lisp.swank_backend_41.execute(swank-backend.lisp:382) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.swank_370.execute(swank.lisp:1774) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.swank_539.execute(swank.lisp:2691) at org.armedbear.lisp.LispThread.execute(LispThread.java:632) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:522) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Primitives$pf__eval.execute(Primitives.java:328) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:494) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3720) at org.armedbear.lisp.Lisp.eval(Lisp.java:449) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.Closure.bindParametersAndExecute(Closure.java:446) at org.armedbear.lisp.Closure.execute(Closure.java:479) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.swank_400.execute(swank.lisp:1979) at org.armedbear.lisp.LispThread.execute(LispThread.java:596) at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2784) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.swank_248.execute(swank.lisp:1023) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Primitives$pf_funcall.execute(Primitives.java:2673) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:494) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:449) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.Closure.bindParametersAndExecute(Closure.java:446) at org.armedbear.lisp.Closure.execute(Closure.java:493) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.Lisp.funcall(Lisp.java:165) at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2829) at org.armedbear.lisp.Primitive.execute(Primitive.java:143) at org.armedbear.lisp.Symbol.execute(Symbol.java:810) at org.armedbear.lisp.LispThread.execute(LispThread.java:614) at org.armedbear.lisp.swank_backend_74.execute(swank-backend.lisp:663) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.swank_148.execute(swank.lisp:423) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.swank_1.execute(swank.lisp:174) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.swank_147.execute(swank.lisp:423) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Java$23.execute(Java.java:1007) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.swank_145.execute(swank.lisp:423) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Java$23.execute(Java.java:1007) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.swank_143.execute(swank.lisp:423) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.swank_247.execute(swank.lisp:1023) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.swank_1.execute(swank.lisp:174) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.swank_246.execute(swank.lisp:1023) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Primitives$pf_funcall.execute(Primitives.java:2673) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:494) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.Closure.execute(Closure.java:421) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Lisp.funcall(Lisp.java:161) at org.armedbear.lisp.LispThread$2.run(LispThread.java:88) at java.lang.Thread.run(Thread.java:637)
; Compilation unit finished ; Caught 5 WARNING conditions ; Caught 5 STYLE-WARNING conditions
; No value CL-USER>
On Wed, Feb 17, 2010 at 1:53 AM, Alan Ruttenberg alanruttenberg@gmail.com wrote:
Maybe this can help.
First define:
(defmethod print-object ((v jvm::var-ref) s) (prin1 (jvm::variable-name (jvm::var-ref-variable v)) s))
So that when tracing the expansion we don't throw a fit.
Then:
(defun expand-function-call-inline (form lambda-list body args) (handler-case (multiple-value-bind (bindings ignorables) (match-lambda-list (multiple-value-list (parse-lambda-list lambda-list)) args) (let ((expanded `(let* ,bindings (declare (ignorable ,@ignorables)) ,@body))) (let ((*print-structure* nil) (*print-pretty* t) (*print-case* :downcase)) (format t "transforming ~a ~% into~% ~a~%-------~%" form expanded) expanded))) (lambda-list-mismatch (x) (compiler-warn "Invalid function call: ~S (mismatch type: ~A)" form (lambda-list-mismatch-type x)) form)))
Sorry, I can't still reproduce it. I tried downloading lsw from http://svn.mumble.net:8080/svn/lsw/trunk/ and following the instructions, but ./abcl (from inside bin/) fails after compiling some files with:
Error loading /home/alessio/projects/lsw/trunk/jss/armedbear-0.18.0-dev-linux-unknown/invoke.abcl at line 77 (offset 4749) Debugger invoked on condition of type ERROR: Class not found: BSH.CLASSPATH.CLASSMANAGERIMPL ...
even if bsh-2.0b4.jar is in classpath apparently.
I also tried translating the code you posted to "pure" abcl while trying to preserve what I understood to be its meaning, to find out if it's the load-time-value of a Pattern object to cause harm, but apparently my translation has lost the important bits because it compiles and loads fine. For reference, this is my "translation":
((lambda (g172 &rest g173) (jcall "replaceAll" g172 "replacement")) ((lambda (g174 &rest g175) (jcall "matcher" g174 "string")) (load-time-value ((lambda (g176 &rest g177) (jstatic "compile" g176 (car g177))) "java.util.regex.Pattern" "\\(.)")) 'value) '$1)
I got rid of the lambdas::gnnn symbols, because using them as in the code you posted gives unbound variables errors. Since the symbol names are the same between a variable declaration in the lambda list and its use, I guess those are intended to be the same symbol even if for mysterious reasons they get printed differently (maybe your print-object method has something to do with it - I didn't quite get it). Also, I replaced all temp variables with dummy string literals, and I quoted the unused rest arguments (value and $1) to prevent unbound variable errors.
Maybe the fact that you use a compiler macro is relevant. I'll try to understand that.
Later, Alessio
Given that, here's the trace of what happens when I compile the function in question:
java.lang.VerifyError: (class: abcl_6037b542_0820_4605_aeb0_a2000b3f3a45, method: execute signature: (Lorg/armedbear/lisp/LispObject;Lorg/armedbear/lisp/LispObject;)Lorg/armedbear/lisp/LispObject;) Illegal local variable number at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) at java.lang.Class.getConstructor0(Class.java:2699) at java.lang.Class.newInstance0(Class.java:326) at java.lang.Class.newInstance(Class.java:308) at org.armedbear.lisp.Lisp.makeCompiledFunctionFromClass(Lisp.java:1266) at org.armedbear.lisp.Lisp.loadClassBytes(Lisp.java:1327) at org.armedbear.lisp.Lisp.loadClassBytes(Lisp.java:1320) at org.armedbear.lisp.CompiledClosure$1.execute(CompiledClosure.java:236) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.compiler_pass2_453.execute(compiler-pass2.lisp:5224) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.compiler_pass2_454.execute(compiler-pass2.lisp:5261) at org.armedbear.lisp.Symbol.execute(Symbol.java:798) at org.armedbear.lisp.compiler_pass2_560.execute(compiler-pass2.lisp:8127) at org.armedbear.lisp.Symbol.execute(Symbol.java:798) at org.armedbear.lisp.LispThread.execute(LispThread.java:596) at org.armedbear.lisp.compiler_pass2_327.execute(compiler-pass2.lisp:2961) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.compiler_pass2_332.execute(compiler-pass2.lisp:3023) at org.armedbear.lisp.Symbol.execute(Symbol.java:798) at org.armedbear.lisp.compiler_pass2_560.execute(compiler-pass2.lisp:8127) at org.armedbear.lisp.Symbol.execute(Symbol.java:798) at org.armedbear.lisp.compiler_pass2_401.execute(compiler-pass2.lisp:4131) at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:112) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.compiler_pass2_567.execute(compiler-pass2.lisp:8350) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.compiler_pass2_569.execute(compiler-pass2.lisp:8581) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.compiler_pass2_571.execute(compiler-pass2.lisp:8623) at org.armedbear.lisp.Symbol.execute(Symbol.java:839) at org.armedbear.lisp.compiler_pass2_596.execute(compiler-pass2.lisp:8737) at org.armedbear.lisp.compiler_pass2_582.execute(compiler-pass2.lisp:8692) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Java$23.execute(Java.java:1007) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.compiler_pass2_578.execute(compiler-pass2.lisp:8692) at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:101) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.compiler_pass2_595.execute(compiler-pass2.lisp:8737) at org.armedbear.lisp.Symbol.execute(Symbol.java:810) at org.armedbear.lisp.compiler_pass2_601.execute(compiler-pass2.lisp:8754) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Java$23.execute(Java.java:1007) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.compiler_pass2_597.execute(compiler-pass2.lisp:8754) at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:112) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.compiler_pass2_602.execute(compiler-pass2.lisp:8825) at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:112) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:501) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:489) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:449) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.Closure.execute(Closure.java:421) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Java$
transforming ((lambda (g172 &rest g173) (invoke-restargs replaceAll lambdas::g172 #:temp13766 nil)) ((lambda (g174 &rest g175) (invoke-restargs matcher lambdas::g174 #:temp13767 t)) (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.))) value) $1) into (let* ((g172 ((lambda (g174 &rest g175) (invoke-restargs matcher lambdas::g174 #:temp13767 t)) (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.))) value)) (temp15717 (list $1)) (g173 temp15717)) (declare (ignorable)) (invoke-restargs replaceAll lambdas::g172 #:temp13766 nil))
transforming ((lambda (g174 &rest g175) (invoke-restargs matcher lambdas::g174 #:temp13767 t)) (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.))) value) into (let* ((g174 (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.)))) (temp15718 (list value)) (g175 temp15718)) (declare (ignorable)) (invoke-restargs matcher lambdas::g174 #:temp13767 t))
transforming ((lambda (g172 &rest g173) (invoke-restargs replaceAll lambdas::g172 #:temp13766 nil)) ((lambda (g174 &rest g175) (invoke-restargs matcher lambdas::g174 #:temp13767 t)) (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.))) value) $1) into (let* ((g172 ((lambda (g174 &rest g175) (invoke-restargs matcher lambdas::g174 #:temp13767 t)) (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.))) value)) (temp15725 (list $1)) (g173 temp15725)) (declare (ignorable)) (invoke-restargs replaceAll lambdas::g172 #:temp13766 nil))
transforming ((lambda (g174 &rest g175) (invoke-restargs matcher lambdas::g174 #:temp13767 t)) (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.))) value) into (let* ((g174 (load-time-value ((lambda (g176 &rest g177) (invoke-restargs compile g176 g177 t)) 'java.util.regex.pattern \(.)))) (temp15726 (list value)) (g175 temp15726)) (declare (ignorable)) (invoke-restargs matcher lambdas::g174 #:temp13767 t))
STYLE-WARNING: The variable LINE is defined but never used. STYLE-WARNING: The variable LAMBDAS::G172 is defined but never used. STYLE-WARNING: The variable LAMBDAS::G173 is defined but never used. STYLE-WARNING: The variable LAMBDAS::G174 is defined but never used. STYLE-WARNING: The variable LAMBDAS::G175 is defined but never used.
23.execute(Java.java:1007) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:494) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:449) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:449) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.Closure.execute(Closure.java:646) at org.armedbear.lisp.LispThread.execute(LispThread.java:711) at org.armedbear.lisp.Lisp.funcall(Lisp.java:183) at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2829) at org.armedbear.lisp.Symbol.execute(Symbol.java:886) at org.armedbear.lisp.LispThread.execute(LispThread.java:711) at org.armedbear.lisp.swank_backend_45.execute(swank-backend.lisp:402) at org.armedbear.lisp.Symbol.execute(Symbol.java:886) at org.armedbear.lisp.LispThread.execute(LispThread.java:711) at org.armedbear.lisp.swank_541.execute(swank.lisp:2691) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.swank_529.execute(swank.lisp:2639) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.swank_524.execute(swank.lisp:2619) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.swank_528.execute(swank.lisp:2639) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Java$23.execute(Java.java:1007) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.swank_526.execute(swank.lisp:2639) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.swank_540.execute(swank.lisp:2691) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Primitives$pf_funcall.execute(Primitives.java:2673) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:494) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.Closure.bindParametersAndExecute(Closure.java:446) at org.armedbear.lisp.Closure.execute(Closure.java:479) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.Lisp.funcall(Lisp.java:163) at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2811) at org.armedbear.lisp.Symbol.execute(Symbol.java:798) at org.armedbear.lisp.LispThread.execute(LispThread.java:596) at org.armedbear.lisp.swank_backend_41.execute(swank-backend.lisp:382) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.swank_370.execute(swank.lisp:1774) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.swank_539.execute(swank.lisp:2691) at org.armedbear.lisp.LispThread.execute(LispThread.java:632) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:522) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Primitives$pf__eval.execute(Primitives.java:328) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:494) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3720) at org.armedbear.lisp.Lisp.eval(Lisp.java:449) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.Closure.bindParametersAndExecute(Closure.java:446) at org.armedbear.lisp.Closure.execute(Closure.java:479) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.swank_400.execute(swank.lisp:1979) at org.armedbear.lisp.LispThread.execute(LispThread.java:596) at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2784) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.swank_248.execute(swank.lisp:1023) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Primitives$pf_funcall.execute(Primitives.java:2673) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:494) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:449) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.Closure.bindParametersAndExecute(Closure.java:446) at org.armedbear.lisp.Closure.execute(Closure.java:493) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.Lisp.funcall(Lisp.java:165) at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2829) at org.armedbear.lisp.Primitive.execute(Primitive.java:143) at org.armedbear.lisp.Symbol.execute(Symbol.java:810) at org.armedbear.lisp.LispThread.execute(LispThread.java:614) at org.armedbear.lisp.swank_backend_74.execute(swank-backend.lisp:663) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.swank_148.execute(swank.lisp:423) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.swank_1.execute(swank.lisp:174) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.swank_147.execute(swank.lisp:423) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Java$23.execute(Java.java:1007) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.swank_145.execute(swank.lisp:423) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Java$23.execute(Java.java:1007) at org.armedbear.lisp.Symbol.execute(Symbol.java:775) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.swank_143.execute(swank.lisp:423) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.swank_247.execute(swank.lisp:1023) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.swank_1.execute(swank.lisp:174) at org.armedbear.lisp.Symbol.execute(Symbol.java:786) at org.armedbear.lisp.LispThread.execute(LispThread.java:579) at org.armedbear.lisp.swank_246.execute(swank.lisp:1023) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Primitives$pf_funcall.execute(Primitives.java:2673) at org.armedbear.lisp.LispThread.execute(LispThread.java:562) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:494) at org.armedbear.lisp.Lisp.eval(Lisp.java:459) at org.armedbear.lisp.Lisp.progn(Lisp.java:628) at org.armedbear.lisp.Closure.execute(Closure.java:421) at org.armedbear.lisp.LispThread.execute(LispThread.java:546) at org.armedbear.lisp.Lisp.funcall(Lisp.java:161) at org.armedbear.lisp.LispThread$2.run(LispThread.java:88) at java.lang.Thread.run(Thread.java:637)
; Compilation unit finished ; Caught 5 WARNING conditions ; Caught 5 STYLE-WARNING conditions
; No value CL-USER>
I got rid of the lambdas::gnnn symbols, because using them as in the code you posted gives unbound variables errors. Since the symbol names are the same between a variable declaration in the lambda list and its use, I guess those are intended to be the same symbol even if for mysterious reasons they get printed differently (maybe your print-object method has something to do with it - I didn't quite get it).
The structure the compiler generates for a variable is a big hairball. Printing it without that method caused my lisp to stack overflow :) So I reached in and grabbed the variable. But I realized that in one case the printing included packages and in another didn't hence the mismatch. One thing that looked wierd was the beginning:
transforming ((lambda (g172 &rest g173) (invoke-restargs replaceAll lambdas::g172 #:temp13766 nil))
That #:temp13766 should be g173. But perhaps I'm seeing some compiler thing that I don't understand.
You need to run bin/abcl, rather than cd bin; ./abcl.
-Alan
On Thu, Feb 18, 2010 at 3:10 AM, Alan Ruttenberg alanruttenberg@gmail.com wrote:
You need to run bin/abcl, rather than cd bin; ./abcl.
I'd suggest commenting out (asdf::oos 'asdf::load-op 'patches :verbose *load-verbose*) in scripts/system-registry.lisp
If I do that (commenting out), I get an error:
Debugger invoked on condition of type ERROR: Cannot find Java class com.hp.hpl.jena.ontology.impl.OntModelImpl
leaving it as it is, and fixing a couple of minor errors (I must have checked out a slightly broken revision), it compiles and loads fine. I just did
bin/abcl
and then
(load "start")
is there some other step to trigger the bug?
Alessio
is there some other step to trigger the bug?
I've packaged up a reduced system. http://ashby.csail.mit.edu/abcl-obo.tgz
Unpack, cd into the unpack directory, and execute bin/abcl Once loaded:
(setq obo (make-instance 'obo :path "~/Desktop/abcl-obo/unit.obo")) ;; adjust to where you unpacked it
#<OBO {E71A6D}>
CL-USER(8): (read-obo obo)
Debugger invoked on condition of type JAVA-EXCEPTION: Java exception 'SchemeException: ERROR: NO INSTANCE METHOD OF TYPE
(.matcher org.armedbear.lisp.Cons ...)'. Restarts: 0: TOP-LEVEL Return to top level.
If you evaluate the read-obo function and try again it will succeed, demonstrating that the compiled version doesn't work as compared to the evaluated version.
Similarly if you disable the inline lambda expansion and recompile it will run without error.
-Alan
On 2/19/10 2:06 AM, Alan Ruttenberg wrote:
is there some other step to trigger the bug?
I've managed to reproduce the bug using the lsw tree but with by own version of ABCL from SVN which makes tinkering a little easier
Steps to reproduce
1) Checkout [lsw][1] as ~/work/lsw
[1]: http://mumble.net:8080/svn/lsw/trunk
2) Build ABCL under ~/work/abcl with the following property set in build.properties
additional.jars=../lsw/lib/jscheme.jar:../lsw/lib/bsh-2.0b4.jar
3) Setup ASDF via ~/.abclrc
(require 'asdf) (pushnew '(merge-pathnames "work/lsw" (user-homedir-pathname)) asdf:*central-registry*)
4) Symbolically link in the necessary ASDF depdenencies
cmd$ cd ~/work/lsw cmd$ ln -s jss/jss.asd cmd$ ln -s util/util.asd cmd$ ln -s xmls-1.2/xmls.asd cmd$ ln -s ext-asdf/cl-xptest-1.2.3/xptest.asd
4) Start abcl, use ASDF to load the necessary systems:
CL-USER> (asdf:operate 'asdf:load-op :jss) ... CL-USER> (asdf:operate 'asdf:load-op :util)
You need a copy of an "obo" (I took it from Alan's tarball), then following Alan's instructions
CL-USER> (setf obo (make-instance 'obo :path "/path/to/the/obo")) CL-USER> (read-obo obo)
And there's the bug.
On 2/19/10 4:18 PM, Mark Evenson wrote: […]
- Setup ASDF via ~/.abclrc
(require 'asdf) (pushnew '(merge-pathnames "work/lsw" (user-homedir-pathname)) asdf:*central-registry*)
[…]
You will need a trailing slash here --> "work/lsw/".
Thanks to dmiles…
On 2/19/10 4:18 PM, Mark Evenson wrote: […]
Symbolically link in the necessary ASDF depdenencies
cmd$ cd ~/work/lsw cmd$ ln -s jss/jss.asd cmd$ ln -s util/util.asd cmd$ ln -s xmls-1.2/xmls.asd cmd$ ln -s ext-asdf/cl-xptest-1.2.3/xptest.asd
And Douglas reports problems with relative symlinks under Linux (which is worrying), but as a work-around, create absolute symlinks via the following incantation: cmd$ ln -s $PWD/jss/jss.asd …
armedbear-devel@common-lisp.net