[armedbear-devel] Stack overflow when compiler macro with fallback is triggered
James M. Lawrence
llmjjmll at gmail.com
Sun Jun 3 20:19:49 UTC 2012
(eval-when (:compile-toplevel :load-toplevel :execute)
(defun foo () 99)
(define-compiler-macro foo ()
`(locally (declare (notinline foo))
(foo))))
(defun call-foo ()
(foo))
Of course, the use case is a compiler macro that says, "OK, let's
optimize! ... Never mind, I don't want to optimize that."
Armed Bear Common Lisp 1.0.1-svn-13750-13751
Java 1.7.0_04 Oracle Corporation
[...]
; (DEFUN FOO ...)
; (DEFINE-COMPILER-MACRO FOO ...)
; (DEFUN CALL-FOO ...)
java.lang.StackOverflowError
at org.armedbear.lisp.StructureObject$pf_make_structure.execute(StructureObject.java:671)
at org.armedbear.lisp.Symbol.execute(Symbol.java:865)
at org.armedbear.lisp.LispThread.execute(LispThread.java:760)
at org.armedbear.lisp.jvm_714.execute(jvm.lisp:567)
at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:92)
at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
at org.armedbear.lisp.LispThread.execute(LispThread.java:633)
at org.armedbear.lisp.jvm_746.execute(jvm.lisp:572)
at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
at org.armedbear.lisp.LispThread.execute(LispThread.java:633)
at org.armedbear.lisp.compiler_pass1_26.execute(compiler-pass1.lisp:487)
at org.armedbear.lisp.Symbol.execute(Symbol.java:785)
at org.armedbear.lisp.LispThread.execute(LispThread.java:649)
at org.armedbear.lisp.compiler_pass1_61.execute(compiler-pass1.lisp:1204)
at org.armedbear.lisp.LispThread.execute(LispThread.java:649)
at org.armedbear.lisp.compiler_pass1_61.execute(compiler-pass1.lisp:1204)
at org.armedbear.lisp.Symbol.execute(Symbol.java:785)
at org.armedbear.lisp.compiler_pass1_20.execute(compiler-pass1.lisp:383)
at org.armedbear.lisp.Symbol.execute(Symbol.java:785)
at org.armedbear.lisp.LispThread.execute(LispThread.java:649)
at org.armedbear.lisp.compiler_pass1_26.execute(compiler-pass1.lisp:487)
at org.armedbear.lisp.Symbol.execute(Symbol.java:785)
at org.armedbear.lisp.LispThread.execute(LispThread.java:649)
at org.armedbear.lisp.compiler_pass1_61.execute(compiler-pass1.lisp:1204)
at org.armedbear.lisp.LispThread.execute(LispThread.java:649)
at org.armedbear.lisp.compiler_pass1_61.execute(compiler-pass1.lisp:1204)
at org.armedbear.lisp.Symbol.execute(Symbol.java:785)
at org.armedbear.lisp.compiler_pass1_20.execute(compiler-pass1.lisp:383)
at org.armedbear.lisp.Symbol.execute(Symbol.java:785)
at org.armedbear.lisp.LispThread.execute(LispThread.java:649)
at org.armedbear.lisp.compiler_pass1_26.execute(compiler-pass1.lisp:487)
[...]
More information about the armedbear-devel
mailing list