[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-racket 05ff74e 025/191: Racket: better stack traces
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/geiser-racket 05ff74e 025/191: Racket: better stack traces using errortrace |
Date: |
Sun, 1 Aug 2021 18:31:53 -0400 (EDT) |
branch: elpa/geiser-racket
commit 05ff74ef86a8731912a2677b55fb86b7496d810e
Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
Commit: Jose Antonio Ortega Ruiz <jao@gnu.org>
Racket: better stack traces using errortrace
---
geiser.rkt | 2 ++
geiser/eval.rkt | 26 +++++---------------------
2 files changed, 7 insertions(+), 21 deletions(-)
diff --git a/geiser.rkt b/geiser.rkt
index 45d1289..1ab7983 100644
--- a/geiser.rkt
+++ b/geiser.rkt
@@ -17,6 +17,8 @@
"Racket version 5.0 or better required (found ~a)"
(version)))
+(require errortrace)
+
(require geiser/user)
;;; geiser.rkt ends here
diff --git a/geiser/eval.rkt b/geiser/eval.rkt
index de53728..f2cf39f 100644
--- a/geiser/eval.rkt
+++ b/geiser/eval.rkt
@@ -19,6 +19,7 @@
make-repl-reader)
(require geiser/enter geiser/modules geiser/autodoc)
+(require errortrace/errortrace-lib)
(define last-result (void))
@@ -30,28 +31,12 @@
(define (exn-key e)
(vector-ref (struct->vector e) 0))
-(define current-marks (make-parameter (current-continuation-marks)))
-
-(define (get-real-context e)
- (let ([ec (continuation-mark-set->context (exn-continuation-marks e))]
- [cc (continuation-mark-set->context (current-marks))])
- (filter-not (lambda (c) (member c cc)) ec)))
-
-(define (display-exn-context c)
- (define (maybe-display p x) (when x (display p) (display x)) x)
- (when (and (pair? c) (cdr c))
- (let ([sloc (cdr c)])
- (and (maybe-display "" (srcloc-source sloc))
- (maybe-display ":" (srcloc-line sloc))
- (maybe-display ":" (srcloc-column sloc)))
- (maybe-display ": " (car c))
- (newline))))
-
(define (set-last-error e)
(set! last-result `((error (key . ,(exn-key e)))))
(display (exn-message e))
(newline) (newline)
- (for-each display-exn-context (get-real-context e)))
+ (parameterize ([error-context-display-depth 10])
+ (print-error-trace (current-output-port) e)))
(define (write-value v)
(with-output-to-string
@@ -65,9 +50,8 @@
(let ([output
(with-output-to-string
(lambda ()
- (parameterize ([current-marks (current-continuation-marks)])
- (with-handlers ([exn? set-last-error])
- (call-with-values thunk set-last-result)))))])
+ (with-handlers ([exn? set-last-error])
+ (call-with-values thunk set-last-result))))])
(append last-result `((output . ,output)))))
(define (eval-in form spec lang)
- [nongnu] elpa/geiser-racket 7de178d 162/191: Racket: show images with print, write and display, (continued)
- [nongnu] elpa/geiser-racket 7de178d 162/191: Racket: show images with print, write and display, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 1facdcd 171/191: racket: indentation for 'shared', Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket c7d936f 174/191: Mark the beginning of code part of elisp libraries with Code: heading, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 8dbb75c 180/191: rkt files to src dir, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 7a62da17 181/191: Import elisp/geiser-racket.el from original repo, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 58e64cb 186/191: A fancier readme title, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 0426f54 188/191: Typo, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 42376b7 189/191: unused variables, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket c8dedf3 004/191: Racket: better autodoc for syntax forms, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 74d80a1 016/191: Racket: following error links in separate window., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 05ff74e 025/191: Racket: better stack traces using errortrace,
Philip Kaludercic <=
- [nongnu] elpa/geiser-racket 637c944 022/191: Displaying variable values in autodoc., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 2f2fbdd 044/191: Racket: use EOT token for internal communications, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket dd9afbe 048/191: Racket: remote REPLs, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 8160d23 050/191: Partial work (connections working), Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket f83efd0 061/191: Support for implementation-specific font lock keywords, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 2130465 065/191: Racket: showing submodules in module help, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 19e0bd6 094/191: Racket: reading into elisp-land the cache dir as needed, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 4ad7d89 082/191: Racket: eval geiser-eval's apply arguments properly, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 1964a0d 096/191: racket: reading into elisp-land the cache dir as needed, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket dd2bbc3 090/191: Racket: fix for module compilation for recent rackets, Philip Kaludercic, 2021/08/01