[armedbear-devel] compiler problem?

Alan Ruttenberg alanruttenberg at gmail.com
Wed Feb 10 03:49:43 UTC 2010


So I'm getting intermittent compiler errors, which reduce to this case.

Unfortunately just putting these forms in a file and executing or
compiling them doesn't trigger the bug - so I don't have a repeatable
case for you yet.

Here's minimal code required to trigger it, assuming jss is loaded. I
haven't seen this in the past, fwiw, and I've been using this code for
a long time.

This has been present in the last couple of trunk builds.

(defun regex-replace-all (regex string replacement)
  (#"replaceAll" string regex replacement))

(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)))

(defun foo (value) (regex-replace-all "\\s*" value ""))

(compile 'foo)

After the compile I get java backtrace in the repl, and the following
after "&&&" in the slime debugger.

java.lang.VerifyError: (class:
abcl_0f7a315e_ee1b_47ea_a29c_3f6403dd238b, method: execute signature:
(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:2357)
	at java.lang.Class.getConstructor0(Class.java:2671)
	at java.lang.Class.newInstance0(Class.java:321)
	at java.lang.Class.newInstance(Class.java:303)
	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_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:101)
	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.Primitives$16.execute(Primitives.java:307)
	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$141.execute(Primitives.java:3579)
	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_412.execute(swank.lisp:2030)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
	at org.armedbear.lisp.swank_429.execute(swank.lisp:2107)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
	at org.armedbear.lisp.swank_430.execute(swank.lisp:2120)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
	at org.armedbear.lisp.swank_428.execute(swank.lisp:2107)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
	at org.armedbear.lisp.swank_149.execute(swank.lisp:433)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:786)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:579)
	at org.armedbear.lisp.swank_427.execute(swank.lisp:2107)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
	at org.armedbear.lisp.Primitives$112.execute(Primitives.java:2539)
	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.armedbe; Caught STYLE-WARNING:
;   The variable LAMBDAS::G13 is defined but never used.

; Caught STYLE-WARNING:
;   The variable LAMBDAS::G14 is defined but never used.

; Caught STYLE-WARNING:
;   The variable LAMBDAS::G15 is defined but never used.

; Caught STYLE-WARNING:
;   The variable LAMBDAS::G16 is defined but never used.

ar.lisp.Lisp.funcall(Lisp.java:163)
	at org.armedbear.lisp.Primitives$113.execute(Primitives.java:2686)
	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_426.execute(swank.lisp:2107)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
	at org.armedbear.lisp.swank_425.execute(swank.lisp:2102)
	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.Primitives$16.execute(Primitives.java:307)
	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$141.execute(Primitives.java:3579)
	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$113.execute(Primitives.java:2655)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:786)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:579)
	at org.armedbear.lisp.swank_222.execute(swank.lisp:905)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
	at org.armedbear.lisp.swank_218.execute(swank.lisp:892)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
	at org.armedbear.lisp.Primitives$112.execute(Primitives.java:2539)
	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:167)
	at org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40)
	at org.armedbear.lisp.SpecialOperators$3.execute(SpecialOperators.java:96)
	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$113.execute(Primitives.java:2707)
	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_217.execute(swank.lisp:892)
	at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:101)
	at org.armedbear.lisp.AutoloadedFunctionProxy.execute(AutoloadedFunctionProxy.java:145)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
	at org.armedbear.lisp.swank_272.execute(swank.lisp:1173)
	at org.armedbear.lisp.AutoloadedFunctionProxy.execute(AutoloadedFunctionProxy.java:145)
	at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
	at org.armedbear.lisp.swank_254.execute(swank.lisp:1031)
	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_253.execute(swank.lisp:1031)
	at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
	at org.armedbear.lisp.Primitives$112.execute(Primitives.java:2539)
	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:613)

; Compilation unit finished
;   Caught 4 STYLE-WARNING conditions

; Evaluation aborted.
CL-USER>

&&&

Unable to load #<jarray [B at 7811a1 {CD8218}>
   [Condition of type ERROR]

Restarts:
 0: [RETRY] Retry SLIME REPL evaluation request.
 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_596.execute(compiler-pass2.lisp:8737)
  3: org.armedbear.lisp.compiler_pass2_582.execute(compiler-pass2.lisp:8692)
  4: org.armedbear.lisp.Java$23.execute(Java.java:1007)
  5: org.armedbear.lisp.Symbol.execute(Symbol.java:775)
  6: org.armedbear.lisp.compiler_pass2_578.execute(compiler-pass2.lisp:8692)
  7: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:101)
  8: org.armedbear.lisp.Symbol.execute(Symbol.java:775)
  9: org.armedbear.lisp.compiler_pass2_595.execute(compiler-pass2.lisp:8737)
 10: org.armedbear.lisp.Symbol.execute(Symbol.java:810)
 11: org.armedbear.lisp.compiler_pass2_601.execute(compiler-pass2.lisp:8754)
 12: org.armedbear.lisp.Java$23.execute(Java.java:1007)
 13: org.armedbear.lisp.Symbol.execute(Symbol.java:775)
 14: org.armedbear.lisp.compiler_pass2_597.execute(compiler-pass2.lisp:8754)
 15: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:112)
 16: org.armedbear.lisp.Symbol.execute(Symbol.java:786)
 17: org.armedbear.lisp.compiler_pass2_602.execute(compiler-pass2.lisp:8825)
 18: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:101)
 19: (#<FUNCTION {50EF1A}>)
 20: (#<FUNCTION {81CF9E}>)
 21: (#<FUNCTION {65C63C}> FOO)
 22: (SYSTEM::%EVAL (COMPILE 'FOO))
 23: (EVAL (COMPILE 'FOO))
 24: (SWANK::EVAL-REGION "(compile 'foo)
     ")
 25: (#<FUNCTION {B9C125}>)
 26: (SWANK::TRACK-PACKAGE #<FUNCTION {B9C125}>)
 27: (#<FUNCTION {37A41C}>)
 28: (SWANK::CALL-WITH-RETRY-RESTART "Retry SLIME REPL evaluation
request." #<FUNCTION {37A41C}>)
 29: (#<FUNCTION {F72DF7}>)
 30: (FUNCALL #<FUNCTION {F72DF7}>)
 31: (#<FUNCTION (LAMBDA (SWANK-BACKEND::FN)) {EADF38}> #<FUNCTION {F72DF7}>)
 32: (APPLY #<FUNCTION (LAMBDA (SWANK-BACKEND::FN)) {EADF38}>
#<FUNCTION {F72DF7}> NIL)
 33: (SWANK-BACKEND:CALL-WITH-SYNTAX-HOOKS #<FUNCTION {F72DF7}>)
 34: (SWANK::CALL-WITH-BUFFER-SYNTAX NIL #<FUNCTION {F72DF7}>)
 35: (SWANK::REPL-EVAL "(compile 'foo)
     ")
 36: (SWANK:LISTENER-EVAL "(compile 'foo)
     ")
 37: (SYSTEM::%EVAL (SWANK:LISTENER-EVAL "(compile 'foo)
     "))
 38: (EVAL (SWANK:LISTENER-EVAL "(compile 'foo)
     "))
 39: (SWANK::EVAL-FOR-EMACS (SWANK:LISTENER-EVAL "(compile 'foo)
     ") "COMMON-LISP-USER" 42)
 40: (APPLY #<FUNCTION SWANK::EVAL-FOR-EMACS {E5021C}>
((SWANK:LISTENER-EVAL "(compile 'foo)
     ") "COMMON-LISP-USER" 42))
 41: (SWANK::PROCESS-REQUESTS NIL)
 42: (#<FUNCTION {EDA852}>)
 43: (FUNCALL #<FUNCTION {EDA852}>)
 44: (#<FUNCTION (LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN))
{C5B70C}> #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK {749CB7}> #<FUNCTION
{EDA852}>)
 45: (APPLY #<FUNCTION (LAMBDA (SWANK-BACKEND::HOOK
SWANK-BACKEND::FUN)) {C5B70C}> #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK
{749CB7}> #<FUNCTION {EDA852}> NIL)
 46: (SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK #<FUNCTION
SWANK:SWANK-DEBUGGER-HOOK {749CB7}> #<FUNCTION {EDA852}>)
 47: (#<FUNCTION {DCEB8B}>)
 48: (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..
 49: (#<FUNCTION {230AB0}>)
 50: (JRUN-EXCEPTION-PROTECTED #<FUNCTION {230AB0}>)
 51: (#<FUNCTION {92B531}>)
 52: (JRUN-EXCEPTION-PROTECTED #<FUNCTION {92B531}>)
 53: (SWANK::CALL-WITH-CONNECTION #S(SWANK::CONNECTION :SOCKET-IO
#<TWO-WAY-STREAM {B5B6B9}> :DEDICATED-OUTPUT NIL :USER-INPUT
#S(SLIME-INPUT-STREAM) :USER-OUTPUT #S(SLIME-OUTPUT-STREAM) :USER-IO
#<TWO-WAY..
 54: (SWANK::CALL-WITH-RETRY-RESTART "Retry SLIME REPL evaluation
request." #<FUNCTION {EF39E5}>)
 55: (#<FUNCTION {C20590}>)
 56: (FUNCALL #<FUNCTION {C20590}>)
 57: (#<FUNCTION (LAMBDA (SWANK-BACKEND::FN)) {EADF38}> #<FUNCTION {C20590}>)
 58: (APPLY #<FUNCTION (LAMBDA (SWANK-BACKEND::FN)) {EADF38}>
#<FUNCTION {C20590}> NIL)
 59: (SWANK-BACKEND:CALL-WITH-SYNTAX-HOOKS #<FUNCTION {C20590}>)
 --more--




More information about the armedbear-devel mailing list