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 18:46:34 -0500 Message-ID: <87fsnpbcbp.fsf@laura> References: <3f938fe1-9af4-9076-8d50-d1f7b2ddda36@posteo.de> <87ilslc0gn.fsf@laura> 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="40349"; 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 Fri Mar 11 00:47:01 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 1nSSUn-000AIB-4v for guile-user@m.gmane-mx.org; Fri, 11 Mar 2022 00:47:01 +0100 Original-Received: from localhost ([::1]:33854 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nSSUl-0004rD-Q7 for guile-user@m.gmane-mx.org; Thu, 10 Mar 2022 18:46:59 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:40118) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSSUW-0004qp-HD for guile-user@gnu.org; Thu, 10 Mar 2022 18:46:44 -0500 Original-Received: from smtp.polymtl.ca ([132.207.4.11]:54542) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nSSUT-00006N-QF for guile-user@gnu.org; Thu, 10 Mar 2022 18:46:43 -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 22ANkY7w027371 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Mar 2022 18:46:39 -0500 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp.polymtl.ca 22ANkY7w027371 In-Reply-To: X-Poly-FromMTA: (modemcable094.169-200-24.mc.videotron.ca [24.200.169.94]) at Thu, 10 Mar 2022 23:46:34 +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:18181 Archived-At: On Thu, 10 Mar 2022, Zelphir Kaltstahl wrote: > Just one question: Why is get-bytevector-some better than > get-bytevector-n and specifying a number of bytes? I haven't check the implementation details, but I think it's just a question of buffering. `get-bytevector-n` will block just like `get-bytevector-some` when the port is empty. The former will return up to N bytes and the latter might return more than N bytes. The former probably also lead to less memory allocation since N is known in advanced, a singled allocation can be made, while the latter might do multiple allocations. This can be useful depending on your usage of the port. For example, you could make a web server that only accepts HTTP body up to 4096 bytes (1 system page). This is what some web server does I think. There's also `get-bytevector-all`, but this would lead to more memory usage and multiple allocations. Again, it depends on the usage. Regards, old -- Olivier Dion Polymtl