diff --git a/collects/setup/parallel-build.rkt b/collects/setup/parallel-build.rkt index 8a75b19acc..6b5c6fe394 100644 --- a/collects/setup/parallel-build.rkt +++ b/collects/setup/parallel-build.rkt @@ -263,7 +263,10 @@ [x (send/error (format "DIDNT MATCH C ~v\n" x))] [else (send/error (format "DIDNT MATCH C\n"))])) (with-handlers ([exn:fail? (lambda (x) - (send/resp (list 'ERROR (exn-message x))))]) + (define sp (open-output-string)) + (parameterize ([current-error-port sp]) + ((error-display-handler) (exn-message x) x)) + (send/resp (list 'ERROR (get-output-string sp))))]) (parameterize ([parallel-lock-client lock-client] [compile-context-preservation-enabled (member 'disable-inlining options )] [manager-trace-handler diff --git a/collects/setup/parallel-do.rkt b/collects/setup/parallel-do.rkt index 7fbaf89d2f..6d639ea6fd 100644 --- a/collects/setup/parallel-do.rkt +++ b/collects/setup/parallel-do.rkt @@ -210,7 +210,10 @@ (define log-exn (lambda (exn [msg #f]) (log-error (let ([s (if (exn? exn) - (exn-message exn) + (let ([p (open-output-string)]) + (parameterize ([current-error-port p]) + ((error-display-handler) (exn-message exn) exn)) + (get-output-string p)) (format "exception: ~v" exn))]) (if msg (format "~a; ~a" msg s) @@ -426,7 +429,10 @@ (define (send/reportp message) (send/resp (list 'REPORT message))) ((with-handlers* ([exn:fail? (lambda (x) - (send/errorp (exn-message x)) + (define sp (open-output-string)) + (parameterize ([current-error-port sp]) + ((error-display-handler) (exn-message x) x)) + (send/errorp (get-output-string sp)) (lambda () (loop (add1 i))))]) (parameterize ([current-output-port out-str-port] [current-error-port err-str-port]) diff --git a/collects/setup/scribble.rkt b/collects/setup/scribble.rkt index 7e472218af..f11ede3321 100644 --- a/collects/setup/scribble.rkt +++ b/collects/setup/scribble.rkt @@ -170,7 +170,7 @@ (define (with-record-error cc go fail-k) (with-handlers ([exn:fail? (lambda (exn) - (eprintf "~a\n" (exn-message exn)) + ((error-display-handler) (exn-message exn) exn) (raise exn))]) (go))) (s-exp->fasl (serialize @@ -360,7 +360,7 @@ (define (with-record-error cc go fail-k) (with-handlers ([exn:fail? (lambda (x) - (eprintf "~a\n" (exn-message x)) + ((error-display-handler) (exn-message x) x) (raise x))]) (go))) (verbose verbosev)