From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Olivier Dion via General Guile related discussions Newsgroups: gmane.lisp.guile.user Subject: Re: Question about an error with ports Date: Thu, 10 Mar 2022 10:05:12 -0500 Message-ID: <87ilslc0gn.fsf@laura> References: <3f938fe1-9af4-9076-8d50-d1f7b2ddda36@posteo.de> Reply-To: Olivier Dion Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19573"; mail-complaints-to="usenet@ciao.gmane.io" To: Zelphir Kaltstahl , guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Thu Mar 10 16:05:57 2022 Return-path: Envelope-to: guile-user@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 1nSKMX-0004mZ-Pl for guile-user@m.gmane-mx.org; Thu, 10 Mar 2022 16:05:57 +0100 Original-Received: from localhost ([::1]:54414 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nSKMW-0006g4-9E for guile-user@m.gmane-mx.org; Thu, 10 Mar 2022 10:05:56 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:49660) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSKM3-0006fu-S5 for guile-user@gnu.org; Thu, 10 Mar 2022 10:05:28 -0500 Original-Received: from smtp.polymtl.ca ([132.207.4.11]:47912) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSKM1-0006Tp-4j for guile-user@gnu.org; Thu, 10 Mar 2022 10:05:26 -0500 Original-Received: from localhost (modemcable094.169-200-24.mc.videotron.ca [24.200.169.94]) by smtp.polymtl.ca (8.14.7/8.14.7) with ESMTP id 22AF5Cds005175 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 10:05:16 -0500 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp.polymtl.ca 22AF5Cds005175 In-Reply-To: <3f938fe1-9af4-9076-8d50-d1f7b2ddda36@posteo.de> X-Poly-FromMTA: (modemcable094.169-200-24.mc.videotron.ca [24.200.169.94]) at Thu, 10 Mar 2022 15:05:12 +0000 Received-SPF: pass client-ip=132.207.4.11; envelope-from=olivier.dion@polymtl.ca; helo=smtp.polymtl.ca X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:18179 Archived-At: On Thu, 10 Mar 2022, Zelphir Kaltstahl wrote: > I have the following questions: > > (1) Is the read-from-write-to procedure useful at all, or is there a better way > to get all stuff from an input port and output it to an output port, avoiding > possibly large string values? On Linux, there's slice(2) for pipes that does exactly that. Otherwise, I think this version is a better fit (define splice (lambda (in-port out-port) "Read from an IN-PORT and write to OUT-PORT" (let loop ([bv (get-bytevector-some in-port)]) (unless (eof-object? bv) (put-bytevector out-port bv) (loop (get-bytevector-some in-port)))))) you should not close OUT-PORT. This break the REPL in my case if using the `current-output-port`. -- Olivier Dion Polymtl