GNU bug report logs - #38236
R7RS reader does not support datum labels

Previous Next

Package: guile;

Reported by: Andy Wingo <wingo <at> pobox.com>

Date: Sat, 16 Nov 2019 20:50:02 UTC

Severity: normal

To reply to this bug, email your comments to 38236 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guile <at> gnu.org:
bug#38236; Package guile. (Sat, 16 Nov 2019 20:50:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Andy Wingo <wingo <at> pobox.com>:
New bug report received and forwarded. Copy sent to bug-guile <at> gnu.org. (Sat, 16 Nov 2019 20:50:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> pobox.com>
To: bug-guile <at> gnu.org
Subject: R7RS reader does not support datum labels
Date: Sat, 16 Nov 2019 21:49:27 +0100
R7RS defines a lexical feature called "datum labels"; see section 2.4 in
the report.  An example would be:

   #0=(a b c . #0#)

Guile's reader doesn't support this feature and it's not clear if we
should, in general.  Note, datum literals appear to be incompatible with
array literals.  But we could of course use the R7RS layer as a place to
experiment with a `read' implemented in Scheme.




Information forwarded to bug-guile <at> gnu.org:
bug#38236; Package guile. (Sat, 16 Nov 2019 22:42:01 GMT) Full text and rfc822 format available.

Message #8 received at 38236 <at> debbugs.gnu.org (full text, mbox):

From: John Cowan <cowan <at> ccil.org>
To: Andy Wingo <wingo <at> pobox.com>
Cc: 38236 <at> debbugs.gnu.org
Subject: Re: bug#38236: R7RS reader does not support datum labels
Date: Sat, 16 Nov 2019 17:41:18 -0500
[Message part 1 (text/plain, inline)]
I don't see where the incompatibility comes in, although more lookahead
would be required.  Per the Guile documentation, neither #n# nor #n= (where
n is a sequence of digits) is a valid array tag.

On Sat, Nov 16, 2019 at 3:50 PM Andy Wingo <wingo <at> pobox.com> wrote:

> R7RS defines a lexical feature called "datum labels"; see section 2.4 in
> the report.  An example would be:
>
>    #0=(a b c . #0#)
>
> Guile's reader doesn't support this feature and it's not clear if we
> should, in general.  Note, datum literals appear to be incompatible with
> array literals.  But we could of course use the R7RS layer as a place to
> experiment with a `read' implemented in Scheme.
>
>
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-guile <at> gnu.org:
bug#38236; Package guile. (Mon, 18 Nov 2019 15:12:01 GMT) Full text and rfc822 format available.

Message #11 received at 38236 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Andy Wingo <wingo <at> pobox.com>
Cc: 38236 <at> debbugs.gnu.org
Subject: Re: bug#38236: R7RS reader does not support datum labels
Date: Mon, 18 Nov 2019 10:10:30 -0500
Hi Andy,

Andy Wingo <wingo <at> pobox.com> writes:

> R7RS defines a lexical feature called "datum labels"; see section 2.4 in
> the report.  An example would be:
>
>    #0=(a b c . #0#)
>
> Guile's reader doesn't support this feature and it's not clear if we
> should, in general.

FYI, I already implemented R7RS datum labels on the 'r7rs-wip' branch
(not to be confused with your new 'wip-r7rs' branch):

  https://git.savannah.gnu.org/cgit/guile.git/commit/?h=r7rs-wip&id=92408ac20e921583b8e4ee26463dc5805ef01153

It depends on the preceding commit on the same branch:

  https://git.savannah.gnu.org/cgit/guile.git/commit/?h=r7rs-wip&id=f687871eceb94bded109569880e696d8862d84fd

There was also a later commit on that branch that enabled compilation of
cyclic literals, but it's no longer applicable to the 'master' branch.

> Note, datum literals appear to be incompatible with array literals.

Can you elaborate on why you believe they're incompatible?  I haven't
looked closely in a while, but I didn't see any incompatibility when I
implemented this before.  Datum labels have '#' or '=' after the
numeral, and I'm not aware of any Guile array syntax that does.

I'm also a bit puzzled why you're apparently planning to rewrite
everything I already did on the 'r7rs-wip' branch.  The main issue on
that branch is that the implementation of *writing* cyclic data turned
out to be a mess, but it could be removed or replaced without affecting
much else.

       Mark




Information forwarded to bug-guile <at> gnu.org:
bug#38236; Package guile. (Mon, 18 Nov 2019 18:37:01 GMT) Full text and rfc822 format available.

Message #14 received at 38236 <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> pobox.com>
To: Mark H Weaver <mhw <at> netris.org>
Cc: 38236 <at> debbugs.gnu.org
Subject: Re: bug#38236: R7RS reader does not support datum labels
Date: Mon, 18 Nov 2019 19:35:56 +0100
Hey!

On Mon 18 Nov 2019 16:10, Mark H Weaver <mhw <at> netris.org> writes:

> Andy Wingo <wingo <at> pobox.com> writes:
>
>> R7RS defines a lexical feature called "datum labels"; see section 2.4 in
>> the report.  An example would be:
>>
>>    #0=(a b c . #0#)
>>
>> Guile's reader doesn't support this feature and it's not clear if we
>> should, in general.
>
> FYI, I already implemented R7RS datum labels on the 'r7rs-wip' branch
> (not to be confused with your new 'wip-r7rs' branch):
>
>   https://git.savannah.gnu.org/cgit/guile.git/commit/?h=r7rs-wip&id=92408ac20e921583b8e4ee26463dc5805ef01153
>
> It depends on the preceding commit on the same branch:
>
>   https://git.savannah.gnu.org/cgit/guile.git/commit/?h=r7rs-wip&id=f687871eceb94bded109569880e696d8862d84fd
>
> There was also a later commit on that branch that enabled compilation of
> cyclic literals, but it's no longer applicable to the 'master' branch.

Neat!  I had entirely forgotten about this branch.

>> Note, datum literals appear to be incompatible with array literals.
>
> Can you elaborate on why you believe they're incompatible?  I haven't
> looked closely in a while, but I didn't see any incompatibility when I
> implemented this before.  Datum labels have '#' or '=' after the
> numeral, and I'm not aware of any Guile array syntax that does.

I was wrong.  Thanks for the correction!

> I'm also a bit puzzled why you're apparently planning to rewrite
> everything I already did on the 'r7rs-wip' branch.  The main issue on
> that branch is that the implementation of *writing* cyclic data turned
> out to be a mess, but it could be removed or replaced without affecting
> much else.

I had totally forgotten about it.  I am surprised no one on #guile
brought it up either when I was discussing this work!

As you can see, the the writing implementation currently uses srfi-38.

For what it's worth, I do not have future plans to work on R7RS -- I
just wanted --r7rs so that I could have an easy way to benchmark against
other Scheme systems.  A strange reason, admittedly!

Andy




Information forwarded to bug-guile <at> gnu.org:
bug#38236; Package guile. (Mon, 18 Nov 2019 20:58:02 GMT) Full text and rfc822 format available.

Message #17 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Arne Babenhauserheide <arne_bab <at> web.de>
To: bug-guile <at> gnu.org
Cc: Mark H Weaver <mhw <at> netris.org>, 38236 <at> debbugs.gnu.org
Subject: Re: bug#38236: R7RS reader does not support datum labels
Date: Mon, 18 Nov 2019 21:57:00 +0100
[Message part 1 (text/plain, inline)]
Andy Wingo <wingo <at> pobox.com> writes:
>> I'm also a bit puzzled why you're apparently planning to rewrite
>> everything I already did on the 'r7rs-wip' branch.  The main issue on
>> that branch is that the implementation of *writing* cyclic data turned
>> out to be a mess, but it could be removed or replaced without affecting
>> much else.
>
> I had totally forgotten about it.  I am surprised no one on #guile
> brought it up either when I was discussing this work!

I assumed that you built upon the r7rs-wip branch, but did not check
that assumption.

Best wishes,
Arne
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guile <at> gnu.org:
bug#38236; Package guile. (Mon, 18 Nov 2019 20:58:02 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 161 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.