<div dir="ltr"><div>I'm getting backtraces that are noisy and therefore impede comprehension.</div><div><br></div><div>For example, in the following stack trace, frames 68-4 seem to recapitulate, for the most part, the java stack corresponding to frames 87-69</div><div><br></div><div>Thanks,</div><div>Alan</div><div><br></div><div><br></div><div>The value CL-UTILS::FORMS is not of type LIST.</div><div>   [Condition of type TYPE-ERROR]</div><div><br></div><div>Restarts:</div><div> 0: [RETRY] Retry compiling #<ASDF/LISP-ACTION:CL-SOURCE-FILE "jnil" "cl-utils">.</div><div> 1: [ACCEPT] Continue, treating compiling #<ASDF/LISP-ACTION:CL-SOURCE-FILE "jnil" "cl-utils"> as having been successful.</div><div> 2: [RETRY] Retry ASDF operation.</div><div> 3: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the configuration.</div><div> 4: [ABORT] Abort compilation.</div><div> 5: [*ABORT] Return to SLIME's top level.</div><div> --more--</div><div><br></div><div>Backtrace:</div><div>  0: (#<LOCAL-FUNCTION IN MAKE-INVOKE-DEBUGGER-HOOK {5108C7A9}> #<TYPE-ERROR {D3CDE50}> #<LOCAL-FUNCTION IN MAKE-INVOKE-DEBUGGER-HOOK {5108C7A9}>)</div><div>  1: (APPLY #<LOCAL-FUNCTION IN MAKE-INVOKE-DEBUGGER-HOOK {5108C7A9}> (#<TYPE-ERROR {D3CDE50}> #<LOCAL-FUNCTION IN MAKE-INVOKE-DEBUGGER-HOOK {5108C7A9}>))</div><div>  2: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<TYPE-ERROR {D3CDE50}> #<LOCAL-FUNCTION IN MAKE-INVOKE-DEBUGGER-HOOK {5108C7A9}>)</div><div>  3: (INVOKE-DEBUGGER #<TYPE-ERROR {D3CDE50}>)</div><div>  4: org.armedbear.lisp.Lisp.error(Lisp.java:382)</div><div>  5: org.armedbear.lisp.Lisp.type_error(Lisp.java:435)</div><div>  6: org.armedbear.lisp.LispObject.car(LispObject.java:165)</div><div>  7: org.armedbear.lisp.precompiler_51.execute(precompiler.lisp:381)</div><div>  8: org.armedbear.lisp.Symbol.execute(Symbol.java:803)</div><div>  9: org.armedbear.lisp.LispThread.execute(LispThread.java:814)</div><div> 10: org.armedbear.lisp.precompiler_48.execute(precompiler.lisp:350)</div><div> 11: org.armedbear.lisp.Symbol.execute(Symbol.java:803)</div><div> 12: org.armedbear.lisp.LispThread.execute(LispThread.java:814)</div><div> 13: org.armedbear.lisp.precompiler_51.execute(precompiler.lisp:381)</div><div> 14: org.armedbear.lisp.Symbol.execute(Symbol.java:803)</div><div> 15: org.armedbear.lisp.LispThread.execute(LispThread.java:814)</div><div> 16: org.armedbear.lisp.precompiler_48.execute(precompiler.lisp:350)</div><div> 17: org.armedbear.lisp.Symbol.execute(Symbol.java:803)</div><div> 18: org.armedbear.lisp.LispThread.execute(LispThread.java:814)</div><div> 19: org.armedbear.lisp.precompiler_51.execute(precompiler.lisp:381)</div><div> 20: org.armedbear.lisp.Symbol.execute(Symbol.java:803)</div><div> 21: org.armedbear.lisp.LispThread.execute(LispThread.java:814)</div><div> 22: org.armedbear.lisp.precompiler_48.execute(precompiler.lisp:350)</div><div> 23: org.armedbear.lisp.Symbol.execute(Symbol.java:803)</div><div> 24: org.armedbear.lisp.LispThread.execute(LispThread.java:814)</div><div> 25: org.armedbear.lisp.precompiler_51.execute(precompiler.lisp:381)</div><div> 26: org.armedbear.lisp.Symbol.execute(Symbol.java:803)</div><div> 27: org.armedbear.lisp.LispThread.execute(LispThread.java:814)</div><div> 28: org.armedbear.lisp.precompiler_48.execute(precompiler.lisp:350)</div><div> 29: org.armedbear.lisp.Symbol.execute(Symbol.java:803)</div><div> 30: org.armedbear.lisp.LispThread.execute(LispThread.java:814)</div><div> 31: org.armedbear.lisp.precompiler_51.execute(precompiler.lisp:381)</div><div> 32: org.armedbear.lisp.Symbol.execute(Symbol.java:803)</div><div> 33: org.armedbear.lisp.LispThread.execute(LispThread.java:814)</div><div> 34: org.armedbear.lisp.precompiler_48.execute(precompiler.lisp:350)</div><div> 35: org.armedbear.lisp.Symbol.execute(Symbol.java:803)</div><div> 36: org.armedbear.lisp.LispThread.execute(LispThread.java:814)</div><div> 37: org.armedbear.lisp.precompiler_73.execute(precompiler.lisp:643)</div><div> 38: org.armedbear.lisp.Symbol.execute(Symbol.java:803)</div><div> 39: org.armedbear.lisp.LispThread.execute(LispThread.java:814)</div><div> 40: org.armedbear.lisp.precompiler_48.execute(precompiler.lisp:350)</div><div> 41: org.armedbear.lisp.Symbol.execute(Symbol.java:803)</div><div> 42: org.armedbear.lisp.LispThread.execute(LispThread.java:814)</div><div> 43: org.armedbear.lisp.precompiler_105.execute(precompiler.lisp:988)</div><div> 44: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:121)</div><div> 45: org.armedbear.lisp.Symbol.execute(Symbol.java:826)</div><div> 46: org.armedbear.lisp.compiler_pass2_362.execute(compiler-pass2.lisp:7380)</div><div> 47: org.armedbear.lisp.Symbol.execute(Symbol.java:867)</div><div> 48: org.armedbear.lisp.LispThread.execute(LispThread.java:918)</div><div> 49: org.armedbear.lisp.compile_file_19.execute(compile-file.lisp:175)</div><div> 50: org.armedbear.lisp.Symbol.execute(Symbol.java:814)</div><div> 51: org.armedbear.lisp.LispThread.execute(LispThread.java:832)</div><div> 52: org.armedbear.lisp.compile_file_51.execute(compile-file.lisp:655)</div><div> 53: org.armedbear.lisp.Symbol.execute(Symbol.java:826)</div><div> 54: org.armedbear.lisp.LispThread.execute(LispThread.java:851)</div><div> 55: org.armedbear.lisp.compile_file_59.execute(compile-file.lisp:780)</div><div> 56: org.armedbear.lisp.compiler_pass2_370.execute(compiler-pass2.lisp:7450)</div><div> 57: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:98)</div><div> 58: org.armedbear.lisp.Symbol.execute(Symbol.java:803)</div><div> 59: org.armedbear.lisp.LispThread.execute(LispThread.java:814)</div><div> 60: org.armedbear.lisp.compile_file_57.execute(compile-file.lisp:780)</div><div> 61: org.armedbear.lisp.Symbol.execute(Symbol.java:914)</div><div> 62: org.armedbear.lisp.LispThread.execute(LispThread.java:986)</div><div> 63: org.armedbear.lisp.compile_file_68.execute(compile-file.lisp:962)</div><div> 64: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:150)</div><div> 65: org.armedbear.lisp.Symbol.execute(Symbol.java:852)</div><div> 66: org.armedbear.lisp.LispThread.execute(LispThread.java:894)</div><div> 67: org.armedbear.lisp.Lisp.funcall(Lisp.java:180)</div><div> 68: org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2845)</div><div> 69: (PRECOMPILER::PRECOMPILE-FUNCTION-CALL (CL-UTILS::KEY . CL-UTILS::FORMS))</div><div> 70: (PRECOMPILER::PRECOMPILE1 (CL-UTILS::KEY . CL-UTILS::FORMS))</div><div> 71: (PRECOMPILER::PRECOMPILE-FUNCTION-CALL (CL-UTILS::LOOP CL-UTILS::FOR (CL-UTILS::KEY . CL-UTILS::FORMS) CL-UTILS::IN CL-UTILS::CLAUSES CL-UTILS::DO ...))</div><div> 72: (PRECOMPILER::PRECOMPILE1 (CL-UTILS::LOOP CL-UTILS::FOR (CL-UTILS::KEY . CL-UTILS::FORMS) CL-UTILS::IN CL-UTILS::CLAUSES CL-UTILS::DO ...))</div><div> 73: (PRECOMPILER::PRECOMPILE-FUNCTION-CALL (CL-UTILS::LET ((CL-UTILS::CLAUSE-COLLECTION (CL-UTILS::LIST))) ..))</div><div> 74: (PRECOMPILER::PRECOMPILE1 (CL-UTILS::LET ((CL-UTILS::CLAUSE-COLLECTION (CL-UTILS::LIST))) ..))</div><div> 75: (PRECOMPILER::PRECOMPILE-FUNCTION-CALL (CL-UTILS::WITH-GENSYMS (CL-UTILS::TEST) ..))</div><div> 76: (PRECOMPILER::PRECOMPILE1 (CL-UTILS::WITH-GENSYMS (CL-UTILS::TEST) ..))</div><div> 77: (PRECOMPILER::PRECOMPILE-FUNCTION-CALL (CL-UTILS::DEFMACRO CL-UTILS::CASE* (CL-UTILS::KEYFORM CL-UTILS::&REST CL-UTILS::CLAUSES) ..))</div><div> 78: (PRECOMPILER::PRECOMPILE1 (CL-UTILS::DEFMACRO CL-UTILS::CASE* (CL-UTILS::KEYFORM CL-UTILS::&REST CL-UTILS::CLAUSES) ..))</div><div> 79: (PRECOMPILER::PRECOMPILE-LAMBDA (LAMBDA NIL ..))</div><div> 80: (PRECOMPILER::PRECOMPILE1 (LAMBDA NIL (CL-UTILS::DEFMACRO CL-UTILS::CASE* (CL-UTILS::KEYFORM CL-UTILS::&REST CL-UTILS::CLAUSES) (CL-UTILS::WITH-GENSYMS (CL-UTILS::TEST) (CL-UTILS::LET # # #)))))</div><div> 81: (JVM:COMPILE-DEFUN NIL (LAMBDA NIL (CL-UTILS::DEFMACRO CL-UTILS::CASE* (CL-UTILS::KEYFORM CL-UTILS::&REST CL-UTILS::CLAUSES) (CL-UTILS::WITH-GENSYMS (CL-UTILS::TEST) (CL-UTILS::LET # # #)))) NIL #P"/U..</div><div> 82: (SYSTEM::CONVERT-TOPLEVEL-FORM (CL-UTILS::DEFMACRO CL-UTILS::CASE* (CL-UTILS::KEYFORM CL-UTILS::&REST CL-UTILS::CLAUSES) ..) NIL)</div><div> 83: (SYSTEM::PROCESS-TOPLEVEL-FORM (CL-UTILS::DEFMACRO CL-UTILS::CASE* (CL-UTILS::KEYFORM CL-UTILS::&REST CL-UTILS::CLAUSES) ..) #<FILE-STREAM {1773B7E}> NIL)</div><div> 84: (JVM::%WITH-COMPILATION-UNIT #<LOCAL-FUNCTION IN COMPILE-FROM-STREAM {1FEBE62E}>)</div><div> 85: (SYSTEM::COMPILE-FROM-STREAM #<FILE-STREAM {744E75DD}> #P"/Users/lori/.cache/common-lisp/abcl-1.5.0-dev-fasl43-macosx-x64/Volumes/upstairs/repos/jnil/lisp/jnil/cl-utils-tmpUYPFRO0B.abcl" #P"/Users/lor..</div><div> 86: (COMPILE-FILE #P"/Volumes/upstairs/repos/jnil/lisp/jnil/cl-utils.lisp" :OUTPUT-FILE #P"/Users/lori/.cache/common-lisp/abcl-1.5.0-dev-fasl43-macosx-x64/Volumes/upstairs/repos/jnil/lisp/jnil/cl-utils-tm..</div><div> 87: (APPLY COMPILE-FILE #P"/Volumes/upstairs/repos/jnil/lisp/jnil/cl-utils.lisp" :OUTPUT-FILE #P"/Users/lori/.cache/common-lisp/abcl-1.5.0-dev-fasl43-macosx-x64/Volumes/upstairs/repos/jnil/lisp/jnil/cl-ut..</div><div> </div><div>   </div><div><br></div><div><br></div><div><br></div><div>  private static final void pushJavaStackFrames()</div><div>  {</div><div>      final LispThread thread = LispThread.currentThread();</div><div>      final StackTraceElement[] frames = thread.getJavaStackTrace();</div><div><br></div><div>      // frames[0] java.lang.Thread.getStackTrace</div><div>      // frames[1] org.armedbear.lisp.LispThread.getJavaStackTrace</div><div>      // frames[2] org.armedbear.lisp.Lisp.pushJavaStackFrames</div><div><br></div><div>      if (frames.length > 5</div><div>        && frames[3].getClassName().equals("org.armedbear.lisp.Lisp")</div><div>        && frames[3].getMethodName().equals("error")</div><div>        && frames[4].getClassName().startsWith("org.armedbear.lisp.Lisp")</div><div>        && frames[4].getMethodName().equals("eval")) {</div><div>          // Error condition arising from within Lisp.eval(), so no</div><div>          // Java stack frames should be visible to the consumer of the stack abstraction</div><div>          return;</div><div>      }</div><div>      // Search for last Primitive in the StackTrace; that was the</div><div>      // last entry point from Lisp.</div><div>      int last = frames.length - 1;</div><div>      for (int i = 0; i<= last; i++) {</div><div>          if (frames[i].getClassName().startsWith("org.armedbear.lisp.Primitive"))</div><div>            last = i;</div><div>      }</div><div>      // Do not include the first three frames which, as noted above, constitute</div><div>      // the invocation of this method.</div><div>      while (last > 2) {</div><div>        thread.pushStackFrame(new JavaStackFrame(frames[last]));</div><div>        last--;</div><div>      }</div><div>  }</div></div>