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