[slime-devel] Error handling missed in favor of next swank request

Samium Gromoff _deepfire at feelingofgreen.ru
Tue Mar 20 12:19:52 UTC 2007


What i see here looks like a swank request which results in a lisp error
signalled, does not cause entrance into the debugger in the context of that
request, but rather causes a next request to be served, for some obscure
reason.

the .emacs snippet i invoke looks like that:

(defun foo ()
  (interactive)
  (slime-start :program "sbcl" :init-function (lambda ()
						(cd "/some/where/")
						(slime-load-file "package.lisp")
						(slime-repl-set-package ":lispdb"))))

I.e, we're talking about two swank requests here -- load-file, and then, once
that completes, repl-set-package.

when i run it, the following might or might not happen, due to circumstances
i still did not have figured out:

(note that the error appearing in frame 11 is expected -- it is not that error
which is the problem -- the problem is that swank silently skips processing
that request, and goes on with the next one (which causes another error))

The assertion (PACKAGEP SWANK::P) failed.
   [Condition of type SIMPLE-ERROR]

Restarts:
 0: [CONTINUE] Retry assertion.
 1: [ABORT] Return to sldb level 1.
 2: [ABORT] Return to SLIME's top level.
 3: [ABORT] Exit debugger, returning to top level.

Backtrace:
  0: (SB-KERNEL:ASSERT-ERROR (PACKAGEP SWANK::P) NIL NIL)
  1: (SWANK:SET-PACKAGE ":lispdb")
  2: (SB-INT:SIMPLE-EVAL-IN-LEXENV
      (SWANK:SET-PACKAGE ":lispdb")
      #<NULL-LEXENV>)
  3: ((LAMBDA ()))
  4: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN))
      #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK>
      #<CLOSURE (LAMBDA #) {A6AD52D}>)
  5: (SWANK::SLDB-LOOP 1)
  6: (SWANK::CALL-WITH-BINDINGS
      ((*PRINT-PRETTY* . T) (*PRINT-LEVEL* . 4) (*PRINT-LENGTH* . 10)
       (*PRINT-CIRCLE* . T) (*PRINT-READABLY*)
       (*PRINT-PPRINT-DISPATCH*
        . #<SB-PRETTY:PPRINT-DISPATCH-TABLE {A7B9999}>)
       (*PRINT-GENSYM* . T) (*PRINT-BASE* . 10) (*PRINT-RADIX*)
       (*PRINT-ARRAY* . T) ...)
      #<FUNCTION (LAMBDA #) {ADFC5A5}>)
  7: ((LAMBDA (SWANK-BACKEND::DEBUGGER-LOOP-FN))
      #<FUNCTION (LAMBDA #) {ADFC555}>)
  8: (SWANK::DEBUG-IN-EMACS #<SIMPLE-ERROR {B2EBAC9}>)
  9: (INVOKE-DEBUGGER #<SIMPLE-ERROR {B2EBAC9}>)
 10: (INVOKE-DEBUGGER #<SIMPLE-ERROR {B2EBAC9}>)
 11: (ERROR
      "ASDF_ROOT is not set: where are the ASDF modules to be found?")
 12: (SB-INT:SIMPLE-EVAL-IN-LEXENV
      (ERROR
       "ASDF_ROOT is not set: where are the ASDF modules to be found?")
      #<NULL-LEXENV>)
 13: (SB-INT:SIMPLE-EVAL-IN-LEXENV
      (PROGN
       NIL
       (ERROR
        "ASDF_ROOT is not set: where are the ASDF modules to be found?"))
      #<NULL-LEXENV>)
 14: (SB-INT:SIMPLE-EVAL-IN-LEXENV
      (UNLESS *ASDFROOT*
        (ERROR
         "ASDF_ROOT is not set: where are the ASDF modules to be found?"))
      #<NULL-LEXENV>)
 15: (SB-FASL::LOAD-AS-SOURCE
      #<SB-SYS:FD-STREAM for "file /home/deepfire/source/lispdb/package.lisp" {B2E98A1}>
      NIL
      NIL)
 16: (SB-FASL::INTERNAL-LOAD
      #P"/home/deepfire/source/lispdb/package.lisp"
      #P"/home/deepfire/source/lispdb/package.lisp"
      :ERROR
      NIL
      NIL
      :SOURCE
      :DEFAULT)
 17: (SB-FASL::INTERNAL-LOAD
      #P"/home/deepfire/source/lispdb/package.lisp"
      #P"/home/deepfire/source/lispdb/package.lisp"
      :ERROR
      NIL
      NIL
      NIL
      :DEFAULT)
 18: (LOAD "/home/deepfire/source/lispdb/package.lisp")
 19: (SWANK:LOAD-FILE "/home/deepfire/source/lispdb/package.lisp")

SLIME is about two weeks old, or so.

regards, Samium Gromoff



More information about the slime-devel mailing list