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@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--