I've been using Slime for a couple of days now, and it seems really spiffy and snappy. Things generally just are much faster and easier than in ILISP, which I used before.
The backtrace doesn't feel quite right, though:
Backtrace: 0: SWANK::DEBUG-IN-EMACS (#<DIVISION-BY-ZERO 506820FC>) 1: SWANK:SWANK-DEBUGGER-HOOK (#<DIVISION-BY-ZERO 506820FC> :DONT-KNOW) 2: DBG::DEBUG1 (NIL #<DIVISION-BY-ZERO 506820FC> NIL NIL) 3: INVOKE-DEBUGGER (NIL (#<DIVISION-BY-ZERO 506820FC>)) 4: CONDITIONS::CONDITIONS-ERROR (:INVISIBLEP T DIVISION-BY-ZERO (:OPERATION / :OPERANDS (1 0))) 5: SYSTEM::DIVISION-BY-ZERO-ERROR (/ 1 0) 6: / (NIL NIL NIL) 7: SPECIAL::%EVAL-NOHOOK ((/ 1 0)) 8: IV:PROCESS-TOP-LEVEL (DSPEC:*CURRENT-FORM* #S(LEXICAL::ENVIRONMENT LEXICAL::VARIABLES NIL LEXICAL::FUNCTIONS NIL LEXICAL::REMOTE-ENVIRONMENT NIL) #<function LEXICAL:EVAL-WITH-ENV 502BFB7A> NIL :EXECUTE) 9: SWANK::EVAL-REGION ("(/ 1 0) " NIL T) 10: SWANK::REPL-EVAL ("(/ 1 0) ") 11: SWANK:LISTENER-EVAL ("(/ 1 0) ")
(This is from evaluating (/ 1 0).)
Point is placed on frame zero, which means that the real error is five lines below, and I find it annoying that I have to search visually down to it to get to it. So I'd either suggest that frames 0-4 are hidden by default, or that (at least) the point is placed on line 5.
Lars Magne Ingebrigtsen larsi@gnus.org writes:
Point is placed on frame zero, which means that the real error is five lines below, and I find it annoying that I have to search visually down to it to get to it. So I'd either suggest that frames 0-4 are hidden by default, or that (at least) the point is placed on line 5.
I added a find-top-frame function which skips all frames down to the frame for invoke-debugger. This is frame 4 in your example. It is a bit difficult to find the actual error frame, because we can be called by an error like division-by-zero, by BREAK, or by INVOKE-DEBUGGER. Feel free to invent a better heuristic.
Helmut.
Helmut Eller e9626484@stud3.tuwien.ac.at writes:
I added a find-top-frame function which skips all frames down to the frame for invoke-debugger. This is frame 4 in your example.
Great! Makes it much easier to see what the problem is...