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#11198: problems reading data with a "read-hash-extend" registered reader Date: Sun, 22 Apr 2012 20:01:37 +0200 Message-ID: <87mx63prwe.fsf@gnu.org> References: <87zkaka9xl.fsf@gnu.org> <87d37e83n7.fsf@netris.org> <87hawb3ms1.fsf@netris.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1335117754 16847 80.91.229.3 (22 Apr 2012 18:02:34 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 22 Apr 2012 18:02:34 +0000 (UTC) Cc: 11198@debbugs.gnu.org, Klaus Stehle To: Mark H Weaver Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Sun Apr 22 20:02:33 2012 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 1SM17G-0004NH-Lr for guile-bugs@m.gmane.org; Sun, 22 Apr 2012 20:02:30 +0200 Original-Received: from localhost ([::1]:52437 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SM17G-0007Jo-4M for guile-bugs@m.gmane.org; Sun, 22 Apr 2012 14:02:30 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:39501) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SM17D-0007Ji-Ex for bug-guile@gnu.org; Sun, 22 Apr 2012 14:02:28 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SM17B-0005ZG-RM for bug-guile@gnu.org; Sun, 22 Apr 2012 14:02:27 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:46104) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SM17B-0005ZB-Nk for bug-guile@gnu.org; Sun, 22 Apr 2012 14:02:25 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1SM17m-0006qX-82 for bug-guile@gnu.org; Sun, 22 Apr 2012 14:03:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-guile@gnu.org Resent-Date: Sun, 22 Apr 2012 18:03:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 11198 X-GNU-PR-Package: guile X-GNU-PR-Keywords: Original-Received: via spool by 11198-submit@debbugs.gnu.org id=B11198.133511774126266 (code B ref 11198); Sun, 22 Apr 2012 18:03:02 +0000 Original-Received: (at 11198) by debbugs.gnu.org; 22 Apr 2012 18:02:21 +0000 Original-Received: from localhost ([127.0.0.1]:47138 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SM176-0006pZ-Vd for submit@debbugs.gnu.org; Sun, 22 Apr 2012 14:02:21 -0400 Original-Received: from xanadu.aquilenet.fr ([88.191.123.111]:53760) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SM174-0006pQ-8F for 11198@debbugs.gnu.org; Sun, 22 Apr 2012 14:02:19 -0400 Original-Received: from localhost (xanadu.aquilenet.fr [127.0.0.1]) by xanadu.aquilenet.fr (Postfix) with ESMTP id 8BB4B12976; Sun, 22 Apr 2012 20:01:38 +0200 (CEST) Original-Received: from xanadu.aquilenet.fr ([127.0.0.1]) by localhost (xanadu.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wC2dfPDA0CPe; Sun, 22 Apr 2012 20:01:38 +0200 (CEST) Original-Received: from pluto (reverse-83.fdn.fr [80.67.176.83]) by xanadu.aquilenet.fr (Postfix) with ESMTPSA id AE91287C7; Sun, 22 Apr 2012 20:01:37 +0200 (CEST) In-Reply-To: <87hawb3ms1.fsf@netris.org> (Mark H. Weaver's message of "Sun, 22 Apr 2012 09:43:10 -0400") User-Agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.93 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) 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:6322 Archived-At: Hello! I think the reader should only return valid Scheme objects that have a read syntax (info "(r5rs) Lexical Structure"), and records are not among them. So a short-term solution would be to change =E2=80=98read-R=E2=80=99 to ret= urn the expressions that builds the record, instead of the record itself=E2=80=93ju= st like macros return syntax objects, not arbitrary Scheme objects. (define (read-R chr port) (let ((rlst (read port))) (if (not (pair? rlst)) #f (let* ((name (car rlst)) (lst (cdr rlst)) (rtd (primitive-eval name)) (fields (record-type-fields rtd))) `(apply (record-constructor name) ,@(map (lambda (f) ...) fields)))))) We could imagine changing the compiler to be able to serialize records in the future, but I think that=E2=80=99s a longer-term approach, and not directly relevant to this report. WDYT? Ludo=E2=80=99.