diff --git a/module/system/repl/repl.scm b/module/system/repl/repl.scm index e8ff4da19..e5ed11a15 100644 --- a/module/system/repl/repl.scm +++ b/module/system/repl/repl.scm @@ -61,9 +61,9 @@ ((quit . _) (apply throw args)) ((vm-error ,fun ,msg ,args) - (display "VM error: ") - (apply format #t msg args) (vm-backtrace (the-vm)) + (display "\nVM error: \n") + (apply format #t msg args) (newline)) ((,key ,subr ,msg ,args . ,rest) (vm-backtrace (the-vm)) diff --git a/module/system/vm/frame.scm b/module/system/vm/frame.scm index 3c45e8961..9d448f063 100644 --- a/module/system/vm/frame.scm +++ b/module/system/vm/frame.scm @@ -73,7 +73,7 @@ (define (frame-line-number frame) (let ((addr (frame-address frame))) - (cond ((assv-ref (program-sources (frame-program frame)) addr) + (cond ((assv addr (program-sources (frame-program frame))) => source:line) (else (format #f "@~a" addr))))) @@ -85,7 +85,7 @@ "current input")))) (define (print-frame frame) - (format #t "~4@a: ~a ~a\n" (frame-line-number frame) (frame-number frame) + (format #t "~4@a: ~a ~a\n" (frame-line-number frame) (frame-number frame) (frame-call-representation frame))) @@ -112,7 +112,7 @@ (format #t "VM backtrace:\n") (fold (lambda (frame file) (let ((new-file (frame-file frame file))) - (if (not (eqv? new-file file)) + (if (not (equal? new-file file)) (format #t "In ~a:\n" new-file)) (print-frame frame) new-file))