From 216d297912cd3cfc67e84c926ccb38d7e9cc7f0f Mon Sep 17 00:00:00 2001 From: Greg Hendershott Date: Tue, 14 Nov 2023 10:48:31 -0500 Subject: [PATCH] Don't relay write-special for stdout/stderr; fixes #677 Although we handle write-special in a temporary values port in print.rkt, for convertible image values, we don't need to generally for current-output-port or current-error-port. We were already ignoring non-image special values in the Emacs front end. So handling write-special in the general ports in the back end only means we might try, unnecessarily, to elisp-write some arbitrary Racket value, and sometimes fail. (Whatever the student langs and DrRacket are doing in this regard with write-special, beyond images, we can ignore for now, and maybe forever.) --- racket/repl-output.rkt | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/racket/repl-output.rkt b/racket/repl-output.rkt index a55e6a01..c7857cf2 100644 --- a/racket/repl-output.rkt +++ b/racket/repl-output.rkt @@ -94,13 +94,8 @@ (async-channel-put repl-output-channel (repl-output kind (subbytes bstr start end))) (- end start)) - (define (write-out-special v _non-block? _breakable?) - (async-channel-put repl-output-channel - (repl-output special-kind v)) - #t) (define close void) (make-output-port name repl-output-channel write-out - close - write-out-special)) + close))