guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Fixing `flush-output-port` for R6RS transcoded ports


From: Andreas Rottmann
Subject: Fixing `flush-output-port` for R6RS transcoded ports
Date: Sun, 16 Feb 2020 20:07:55 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hi!

As I reported in #39610 [0], `flush-output-port`, aka `force-output` is
no longer working for R6RS transcoded ports. It was still working in
Guile 2.0; the regression was introduced in Guile 2.2, via commit
"8399e7af5 ("Generic port facility provides buffering uniformly").

I'd be interested in fixing this, but I'm unclear how to tackle it. From
a glance at the current code, it seems to me that there is no mechanism
in place that can be used to achieve that, as the `flush` method for
port types is no more, and I see no way to pass the `flush` operation on
transcoded port to the port it is wrapping. My gut approach would be to
re-introduce the `flush` operation, but I'm not sure that would be
sensible and/or fit into the re-architected ports.

If someone, perhaps @wingo (being the author of the re-factoring), could
sketch an implementation strategy (or just affirm that re-introducing
`flush` is sensible), I would be grateful, and would be one step further
in resurrecting my R6RS Scheme code after almost a decade of abandon.

[0] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=39610

Kind Regards, Rotty




reply via email to

[Prev in Thread] Current Thread [Next in Thread]