From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Marko Rauhamaa Newsgroups: gmane.lisp.guile.user Subject: Re: Nonblocking get-bytevector-n bug? Date: Mon, 07 Dec 2015 14:52:22 +0200 Message-ID: <87y4d6a0ah.fsf@elektro.pacujo.net> References: <87h9jvuxb3.fsf@elektro.pacujo.net> <525ed16422523b5719d516a9560e3c35@hypermove.net> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1449492773 16673 80.91.229.3 (7 Dec 2015 12:52:53 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 7 Dec 2015 12:52:53 +0000 (UTC) Cc: guile-user@gnu.org, guile-user-bounces+amirouche=hypermove.net@gnu.org To: Amirouche Boubekki Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Mon Dec 07 13:52:38 2015 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1a5vHQ-0001gj-Id for guile-user@m.gmane.org; Mon, 07 Dec 2015 13:52:36 +0100 Original-Received: from localhost ([::1]:54273 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a5vHP-0004Wp-ND for guile-user@m.gmane.org; Mon, 07 Dec 2015 07:52:35 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59265) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a5vHG-0004WZ-Op for guile-user@gnu.org; Mon, 07 Dec 2015 07:52:27 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a5vHF-0001X1-UF for guile-user@gnu.org; Mon, 07 Dec 2015 07:52:26 -0500 Original-Received: from [2001:1bc8:1a0:5384:7a2b:cbff:fe9f:e508] (port=57642 helo=pacujo.net) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a5vHF-0001Vz-Mp for guile-user@gnu.org; Mon, 07 Dec 2015 07:52:25 -0500 Original-Received: from elektro.pacujo.net (192.168.1.200) by elektro.pacujo.net; Mon, 7 Dec 2015 14:52:22 +0200 Original-Received: by elektro.pacujo.net (sSMTP sendmail emulation); Mon, 07 Dec 2015 14:52:22 +0200 In-Reply-To: <525ed16422523b5719d516a9560e3c35@hypermove.net> (Amirouche Boubekki's message of "Mon, 07 Dec 2015 13:44:11 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:1bc8:1a0:5384:7a2b:cbff:fe9f:e508 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.14 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.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:12223 Archived-At: Amirouche Boubekki : > I can't make work `get-bytevector-some` with my code. It only returns > a single cell bv. Run my test code as follows: cat | guile test.scm That way, you get the natural pipe semantics for stdin. > Instead I use `char-ready?`. Here is the definition of `recv-some`: > > ``` > (define (recv-some port) > (let next ((out '())) > (if (char-ready? port) > (let ((byte (get-u8 port))) > (if (eof-object? byte) > (u8-list->bytevector (reverse out)) > (next (cons byte out)))) > (u8-list->bytevector (reverse out))))) > ``` Your code is ok but very micromanagerial. I really would like the bytevector variants to do I/O in bulk. Marko