s-clerc / slyblime

Interactive Lisp IDE with REPL, Inspector, Debugger and more for Sublime Text 4.
Other
44 stars 4 forks source link

Poor error messages in debugger #6

Closed Ashe closed 3 years ago

Ashe commented 3 years ago

Hey there, big fan of this amazing plugin.

I just wanted to ask about something fairly basic - when I hit an error, the debugger popups up and takes over my sublime text, but doesn't actually tell me what the issue is. Here's what copy all supplies (and is what's on the screen)

COMPILE-FILE-ERROR while
compiling #<CL-SOURCE-FILE "tides" "tides">
   [Condition of type UIOP/LISP-BUILD:COMPILE-FILE-ERROR] in thread 6
Restarts:
    【0】RETRY: Retry compiling #<CL-SOURCE-FILE "tides" "tides">.
    【1】ACCEPT: Continue, treating compiling #<CL-SOURCE-FILE "tides" "tides"> as having been successful.
    【2】RETRY: Retry ASDF operation.
    【3】CLEAR-CONFIGURATION-AND-RETRY: Retry ASDF operation after resetting the configuration.
    【4】RETRY: Retry ASDF operation.
    【5】CLEAR-CONFIGURATION-AND-RETRY: Retry ASDF operation after resetting the configuration.
    【6】ABORT: Give up on "tides"
    【7】RETRY: Retry SLY mREPL evaluation request.
    【8】*ABORT: Return to SLY's top level.
    【9】ABORT: abort thread (#<THREAD "sly-channel-1-mrepl-remote-1" RUNNING {1001E904D3}>)
Backtrace
:   【0】(UIOP/LISP-BUILD:CHECK-LISP-COMPILE-RESULTS NIL T T "~/asdf-action::format-action/" ((#<ASDF/LISP-ACTION:COMPILE-OP > . #<ASDF/LISP-ACTION:CL-SOURCE-FILE "tides" "tides">)))
    【1】((SB-PCL::EMF ASDF/ACTION:PERFORM) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "tides" "tides">)
    【2】((LAMBDA NIL :IN ASDF/ACTION:CALL-WHILE-VISITING-ACTION))
    【3】((:METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "tides" "tides">) [fast-method]
    【4】((:METHOD ASDF/PLAN:PERFORM-PLAN (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {1003735153}>) [fast-method]
    【5】((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
    【6】((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {1003735153}>) [fast-method]
    【7】((:METHOD ASDF/OPERATE:OPERATE (ASDF/OPERATION:OPERATION ASDF/COMPONENT:COMPONENT)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "tides"> :PLAN-CLASS NIL :PLAN-OPTIONS NIL) [fast-method]
    【8】((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "tides"> :VERBOSE NIL)
    【9】((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
    【10】((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "tides"> :VERBOSE NIL) [fast-method]
    【11】((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> ASDF/LISP-ACTION:LOAD-OP "tides" :VERBOSE NIL)
    【12】((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
    【13】((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP "tides" :VERBOSE NIL) [fast-method]
    【14】(ASDF/SESSION:CALL-WITH-ASDF-SESSION #<CLOSURE (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {10037330DB}> :OVERRIDE T :KEY NIL :OVERRIDE-CACHE T :OVERRIDE-FORCING NIL)
    【15】((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
    【16】(ASDF/SESSION:CALL-WITH-ASDF-SESSION #<CLOSURE (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {100372D05B}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL)
    【17】((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP "tides" :VERBOSE NIL) [fast-method]
    【18】(ASDF/OPERATE:LOAD-SYSTEM "tides" :VERBOSE NIL)
    【19】(QUICKLISP-CLIENT::CALL-WITH-MACROEXPAND-PROGRESS #<CLOSURE (LAMBDA NIL :IN QUICKLISP-CLIENT::APPLY-LOAD-STRATEGY) {100372CE5B}>)

But... here's the actual error (which is in the REPL, which I have to switch to):

 caught ERROR:
;   READ error during COMPILE-FILE:
;   
;     Symbol "MAKE-GPU-ARRAY" not found in the VARI package.
;   
;       Line: 50, Column: 36, File-Position: 917
;   
;       Stream: #<SB-INT:FORM-TRACKING-STREAM for "file /home/ashe/Documents/tides/src/tides.lisp" {1004A1BFF3}>

I understand that the debugger has a slightly different purpose, however, it is frustrating that I have to switch to the REPL, read the error, then go back to the debugger to respond to it. It's just not very user friendly as the error messages supplied can be a little scary!

Big fan of the plugin though! :)

s-clerc commented 3 years ago

The thing is, my plugin works as a frontend for Slynk from the Sly project, so the error you're seeing is from the server and I can't change what it produces.

However, for this type of error what I recommend is performing restart 【1】ACCEPT: Continue, treating compiling #<CL-SOURCE-FILE "tides" "tides"> as having been successful. which will continue compiling the file and then the error should be sent to Slyblime as an annotation:

image

Big fan of the plugin though! :)

Good to hear! Keep the feedback coming!

Ashe commented 3 years ago

Thanks for the reply, and I understand your position! I was just wondering if there was absolutely any way this could be captured since it appears in the Sly REPL anyway :) I'll close the issue since there's nothing more but this is great so far :)