From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.bugs Subject: bug#30066: 'get-bytevector-some' returns only 1 byte from unbuffered ports Date: Fri, 12 Jan 2018 11:33:32 +0100 Message-ID: <87mv1jnz7n.fsf@igalia.com> References: <87zi5lrc3x.fsf@gnu.org> <87tvvtr9ge.fsf@gnu.org> <87fu7dptdn.fsf@igalia.com> <87o9m08nx2.fsf@gnu.org> <87fu7cf9wk.fsf@netris.org> <87po6gnm6y.fsf@gnu.org> <87a7xkxdph.fsf@netris.org> <87373bpi20.fsf@igalia.com> <87o9lzs7rn.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1515753137 26733 195.159.176.226 (12 Jan 2018 10:32:17 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 12 Jan 2018 10:32:17 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) Cc: 30066@debbugs.gnu.org To: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Fri Jan 12 11:32:13 2018 Return-path: Envelope-to: guile-bugs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eZwd6-0006K5-R0 for guile-bugs@m.gmane.org; Fri, 12 Jan 2018 11:32:09 +0100 Original-Received: from localhost ([::1]:60233 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eZwf6-0003Xt-1B for guile-bugs@m.gmane.org; Fri, 12 Jan 2018 05:34:12 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:50495) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eZwf0-0003XS-6B for bug-guile@gnu.org; Fri, 12 Jan 2018 05:34:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eZwew-0004Ti-7l for bug-guile@gnu.org; Fri, 12 Jan 2018 05:34:06 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:45013) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eZwew-0004TY-46 for bug-guile@gnu.org; Fri, 12 Jan 2018 05:34:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eZwev-0007ef-Ph for bug-guile@gnu.org; Fri, 12 Jan 2018 05:34:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Andy Wingo Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Fri, 12 Jan 2018 10:34:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 30066 X-GNU-PR-Package: guile X-GNU-PR-Keywords: Original-Received: via spool by 30066-submit@debbugs.gnu.org id=B30066.151575322329399 (code B ref 30066); Fri, 12 Jan 2018 10:34:01 +0000 Original-Received: (at 30066) by debbugs.gnu.org; 12 Jan 2018 10:33:43 +0000 Original-Received: from localhost ([127.0.0.1]:52910 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eZwed-0007e7-56 for submit@debbugs.gnu.org; Fri, 12 Jan 2018 05:33:43 -0500 Original-Received: from pb-sasl2.pobox.com ([64.147.108.67]:58861 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eZwea-0007dx-Mf for 30066@debbugs.gnu.org; Fri, 12 Jan 2018 05:33:41 -0500 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-sasl2.pobox.com (Postfix) with ESMTP id 2C42FA6CC2; Fri, 12 Jan 2018 05:33:40 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; s=sasl; bh=c1OzBnN1HF+g CrWIIAvALFWJNAc=; b=Sx/R9ppn3d0siOi7vU/fDB6GxJvzZWsP2OkPJD2vQwYQ hygcSI0VBritAPjDM1xI/7b1fKgXzmeGZ8IJadPBRKVP5LkYxtKLrv7SaNnxOn9y v+qOxRYQoMUNNIpMSjJvOIum40HsN4dgWE6KlsjkGq90h8aHQ8W5LG/N1S//E/o= Original-Received: from pb-sasl2.nyi.icgroup.com (unknown [127.0.0.1]) by pb-sasl2.pobox.com (Postfix) with ESMTP id 2502EA6CC1; Fri, 12 Jan 2018 05:33:40 -0500 (EST) Original-Received: from rusty (unknown [88.160.190.192]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by pb-sasl2.pobox.com (Postfix) with ESMTPSA id 6A9B3A6CC0; Fri, 12 Jan 2018 05:33:39 -0500 (EST) In-Reply-To: <87o9lzs7rn.fsf@gnu.org> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'s message of "Fri, 12 Jan 2018 11:15:08 +0100") X-Pobox-Relay-ID: 0DB33CA2-F784-11E7-9571-EA54894C8D7C-02397024!pb-sasl2.pobox.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Original-Sender: "bug-guile" Xref: news.gmane.org gmane.lisp.guile.bugs:8964 Archived-At: On Fri 12 Jan 2018 11:15, ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Andy Wingo skribis: > >> On Thu 11 Jan 2018 22:55, Mark H Weaver writes: > > [...] > >>>>> Out of curiosity, is there a reason why you're using an unbuffered po= rt >>>>> in your use case? >>>> >>>> It=E2=80=99s to implement redirect =C3=A0 la socat: >>>> >>>> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=3D17af5d51de7c= 40756a4a39d336f81681de2ba447 >>> >>> Why is an unbuffered port being used here? Can we change it to a >>> buffered port? >> >> This was also a question I had! If you make it a buffered port at 4096 >> bytes (for example), then get-bytevector-some works exactly like you >> want it to, no? > > It might work, but that=E2=80=99s more by chance no? No, it is reliable. get-bytevector-some on a buffered port must either return all the buffered bytes or perform exactly one read (up to the buffer size) and either return those bytes or EOF. As far as I understand, that is exactly what you want. Using buffered ports has two additional advantages: you get to specify the read size, and returned bytevectors can be allocated to precisely the right size (no need to overallocate then truncate). Andy