Skip to content
  • mevenson@1c010e3e-69d0-11dd-93a8-456734b0d56f's avatar
    Split StackFrame abstraction into Java and Lisp stack frames. · a506fb35
    From the original patch/idea from Tobias Rittweiler this introduces
    more information of primary interest to ABCL implemnters such as when
    a form like (make-thread #'(lambda ())) is evaluated
    
    All users of EXT:BACKTRACE-AS-LIST should now use SYS:BACKTRACE, the
    results of which is a list of the new builtin classes JAVA_STACK_FRAME
    or LISP_STACK_FRAME.  The methods SYS:FRAME-TO-STRING and
    SYS:FRAME-TO-LIST are defined to break these new objects into
    inspectable parts.  As a convenience, there is a SYS:BACKTRACE-AS-LIST
    which calls SYS:FRAME-TO-LIST to each element of the computed
    backtrace.
    
    Refactorings have occurred on the Java side: the misnamed
    LispThread.backtrace() is now LispThread.printBacktrace().
    LispThread.backtraceAsList() is now LispThread.backtrace() as it is
    a shorter name, and more to the point.
    
    Java stack frames only appear after a call through Lisp.error(), which
    has only the top level as a restart as an option.
    a506fb35