From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Andreas Rottmann Newsgroups: gmane.lisp.guile.devel Subject: Fixing `flush-output-port` for R6RS transcoded ports Date: Sun, 16 Feb 2020 20:07:55 +0100 Message-ID: <87eeuus644.fsf@londo.h.r0tty.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="60314"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) To: guile-devel@gnu.org Cancel-Lock: sha1:0ZT4g09bgAik7YcFl/wdS1O+Fo4= Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Sun Feb 16 20:15:19 2020 Return-path: Envelope-to: guile-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1j3PNu-000Fb5-Oh for guile-devel@m.gmane-mx.org; Sun, 16 Feb 2020 20:15:18 +0100 Original-Received: from localhost ([::1]:35408 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j3PNt-0003HV-Rd for guile-devel@m.gmane-mx.org; Sun, 16 Feb 2020 14:15:17 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59962) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j3PNh-0003HH-Un for guile-devel@gnu.org; Sun, 16 Feb 2020 14:15:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j3PNg-0003cs-Uf for guile-devel@gnu.org; Sun, 16 Feb 2020 14:15:05 -0500 Original-Received: from ciao.gmane.io ([159.69.161.202]:41868) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1j3PNg-0003b0-OY for guile-devel@gnu.org; Sun, 16 Feb 2020 14:15:04 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1j3PNe-000FHR-M6 for guile-devel@gnu.org; Sun, 16 Feb 2020 20:15:02 +0100 X-Injected-Via-Gmane: http://gmane.org/ X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 159.69.161.202 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.io gmane.lisp.guile.devel:20417 Archived-At: 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