From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Newsgroups: gmane.lisp.guile.bugs Subject: bug#18520: string ports should not have an encoding Date: Tue, 23 Sep 2014 21:33:29 +0200 Message-ID: <8761gew2ra.fsf@gnu.org> References: <87iokgmttc.fsf@fencepost.gnu.org> <87mw9rq20u.fsf@gnu.org> <87sijjlqx0.fsf@fencepost.gnu.org> <87sijjmvlr.fsf@gnu.org> <87bnq7lgg9.fsf@fencepost.gnu.org> <87d2anl79a.fsf@gnu.org> <87tx3zjod1.fsf@fencepost.gnu.org> <87egv2pwv5.fsf@gnu.org> <87lhpak8ye.fsf@fencepost.gnu.org> <87bnq6oelf.fsf@gnu.org> <87h9zyk0wo.fsf@fencepost.gnu.org> <87tx3yjzzw.fsf@gnu.org> <87d2amjxq9.fsf@fencepost.gnu.org> <87tx3yfhrb.fsf@gnu.org> <871tr2joiu.fsf@fencepost.gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1411500872 14501 80.91.229.3 (23 Sep 2014 19:34:32 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 23 Sep 2014 19:34:32 +0000 (UTC) Cc: 18520@debbugs.gnu.org To: David Kastrup Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Tue Sep 23 21:34:25 2014 Return-path: Envelope-to: guile-bugs@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 1XWVqw-00009x-VM for guile-bugs@m.gmane.org; Tue, 23 Sep 2014 21:34:23 +0200 Original-Received: from localhost ([::1]:55625 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XWVqw-0002ZG-Gf for guile-bugs@m.gmane.org; Tue, 23 Sep 2014 15:34:22 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38222) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XWVqo-0002UF-2a for bug-guile@gnu.org; Tue, 23 Sep 2014 15:34:19 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XWVqi-0004bf-6k for bug-guile@gnu.org; Tue, 23 Sep 2014 15:34:14 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:58698) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XWVqi-0004aC-12 for bug-guile@gnu.org; Tue, 23 Sep 2014 15:34:08 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1XWVqc-00073j-Cg for bug-guile@gnu.org; Tue, 23 Sep 2014 15:34:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Tue, 23 Sep 2014 19:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18520 X-GNU-PR-Package: guile X-GNU-PR-Keywords: Original-Received: via spool by 18520-submit@debbugs.gnu.org id=B18520.141150081227081 (code B ref 18520); Tue, 23 Sep 2014 19:34:02 +0000 Original-Received: (at 18520) by debbugs.gnu.org; 23 Sep 2014 19:33:32 +0000 Original-Received: from localhost ([127.0.0.1]:50262 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XWVq8-00072j-70 for submit@debbugs.gnu.org; Tue, 23 Sep 2014 15:33:32 -0400 Original-Received: from hera.aquilenet.fr ([141.255.128.1]:57205) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XWVq5-00072V-JO for 18520@debbugs.gnu.org; Tue, 23 Sep 2014 15:33:30 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 2917C3B1A; Tue, 23 Sep 2014 21:33:28 +0200 (CEST) Original-Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gy2PjRV5ifTA; Tue, 23 Sep 2014 21:33:28 +0200 (CEST) Original-Received: from pluto (reverse-83.fdn.fr [80.67.176.83]) by hera.aquilenet.fr (Postfix) with ESMTPSA id B0BA73B05; Tue, 23 Sep 2014 21:33:27 +0200 (CEST) X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 2 =?UTF-8?Q?Vend=C3=A9miaire?= an 223 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu In-Reply-To: <871tr2joiu.fsf@fencepost.gnu.org> (David Kastrup's message of "Tue, 23 Sep 2014 18:21:45 +0200") User-Agent: Gnus/5.130011 (Ma Gnus v0.11) Emacs/24.3 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.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-bounces+guile-bugs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.bugs:7586 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable David Kastrup skribis: > I stated quite definitely that I am perfectly capable of dealing with > the mess GUILE made of string ports. Good to know, this was not my understanding until now. The intent of the change in 2.2 is to hide the very fact that string ports =E2=80=9Chave an encoding.=E2=80=9D So from that viewpoint, that bug= is closed. If the bug is about =E2=80=98ftell=E2=80=99, that=E2=80=99s a different sto= ry. I would tend to suggest that =E2=80=98ftell=E2=80=99 and =E2=80=98seek=E2=80=99 for string = ports operate on an abstract notion of position within the string port data. This is in fact the path that the R6RS takes: For a binary port, the port-position procedure returns the index of the position at which the next byte would be read from or written to the port as an exact non-negative integer object. For a textual port, port-position returns a value of some implementation-dependent type representing the port's position; this value may be useful only as the pos argument to set-port-position!, if the latter is supported on the port (see below). Thus, I would suggest a clarification along these lines: --=-=-= Content-Type: text/x-patch Content-Disposition: inline diff --git a/doc/ref/api-io.texi b/doc/ref/api-io.texi index 02d92a2..8331378 100644 --- a/doc/ref/api-io.texi +++ b/doc/ref/api-io.texi @@ -443,8 +443,12 @@ open. @deffn {Scheme Procedure} seek fd_port offset whence @deffnx {C Function} scm_seek (fd_port, offset, whence) Sets the current position of @var{fd_port} to the integer -@var{offset}, which is interpreted according to the value of -@var{whence}. +@var{offset}. For a file port, @var{offset} is expressed +as a number of bytes; for other types of ports, such as string +ports, @var{offset} is an abstract representation of the +position within the port's data, not necessarily expressed +as a number of bytes. @var{offset} is interpreted according to +the value of @var{whence}. One of the following variables should be supplied for @var{whence}: @@ -460,7 +464,7 @@ Seek from the end of the file. If @var{fd_port} is a file descriptor, the underlying system call is @code{lseek}. @var{port} may be a string port. -The value returned is the new position in the file. This means +The value returned is the new position in @var{fd_port}. This means that the current position of a port can be obtained using: @lisp (seek port 0 SEEK_CUR) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Thoughts? Thanks, Ludo=E2=80=99. --=-=-=--