[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Fixing `flush-output-port` for R6RS transcoded ports,
Andreas Rottmann <=