unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
From: Taylan Kammer <taylan.kammer@gmail.com>
To: Maxime Devos <maximedevos@telenet.be>,
	Maxim Cournoyer <maxim.cournoyer@gmail.com>,
	Tomas Volf <~@wolfsden.cz>
Cc: "71300@debbugs.gnu.org" <71300@debbugs.gnu.org>,
	"Filip Łajszczak" <filip@lajszczak.dev>
Subject: bug#71300: [PATCH v4] doc: Document SRFI 64.
Date: Mon, 30 Sep 2024 13:39:59 +0200	[thread overview]
Message-ID: <45010bfa-8ef4-4046-9dde-540d534a1611@gmail.com> (raw)
In-Reply-To: <20240929214340.JKjf2D00f5Amo2z01KjgPd@andre.telenet-ops.be>

[-- Attachment #1: Type: text/plain, Size: 3877 bytes --]

On 29.09.2024 21:43, Maxime Devos via Bug reports for GUILE, GNU's Ubiquitous Extension Language wrote:
>
>  
>
> >> Based on this I believe it describes the specification.
>
> > 
>
> >That's correct. It's been slightly modified in places where it said
>
> >things like "left to the implementation" and I was able to verify what
>
> >the current implementation in Guix does.
>
>  
>
> I assume Guix->Guile.
>
>  
>
> This modification of “left to the implementation” -> “what Guile does” is problematic, since it misleads readers into thinking this is the standard behaviour (it is after all named SRFI 64, not GRFI 64).
>
>  
>
> “What Guile does” is also important information to have.
>
>  
>
> To avoid this problem, when it documents a choice made by Guile, it should indicate in some way that this is Guile behaviour.
>
> (E.g.: “It is left to the implementation what happens when A. Guile chooses to B.”, or “It is left to the implementation what happens when A. Guile currently chooses to B, but may choose differently in future versions.”)
>
>  
>
To be fair to Guile, this is a problem caused by the reference implementation coming directly from SRFI 64. It doesn't properly follow its own specification.

I believe most Scheme implementations that support SRFI-64 just use the reference implementation, just like Guile does, so one could even say: There's the "on paper" standard of SRFI 64 (the spec), and then there's the de facto standard of SRFI 64 that basically all implementations use (the reference implementation provided by the SRFI 64 author), and Guile uses the latter like every other Scheme implementation.

I think the spec as written is more useful though, so I've made my implementation actually conform to it. Mainly, there's one significant difference: The test runner returned by `test-runner-simple` shouldn't use its `aux` field (and the spec explicitly claims that it doesn't), so users can use the simple test runner as a basis to extend upon, using the `aux` field to store any state that their custom extension to the runner may need to store. The `test-runner-simple` returned by the reference implementation actually *does* use the `aux` field for something internal already (name of a log file), in direct contradiction to what the spec states.

> >> I think either of those is fine (albeit describing the Guile's flavor
>
> >> would be preferred), but is should be stated (that the behavior
>
> >There's not really a Guile flavor; it's more like the reference
>
> implementation flavor ;-).  The one in Guile is pretty stock.
>
>  
>
> Then Guile flavour is stock flavour, and stock flavour isn’t specification vanilla. From what I’ve heard, it’s not just sprinkles added to vanilla, it also has bugs (not the crunchy food kind).
>
One or two bugs in the upstream reference implementation were actually fixed after I had pointed them out. From a quick glance, it doesn't seem Guile ever bothered to update, though, so I guess Guile still has them.

Further, on July 30, Tomas Volf sent a large number of SRFI-64 bug reports to the bug-guile mailing list. I didn't have time then, but will be responding to them now... I can see at least one clear bug he seems to have found, which my implementation doesn't seem to suffer from (simply thanks to clean coding practices). Maybe I'll find a couple more to fix, because my implementation was originally derived from the reference implementation so may still be sharing bugs with it. Some of them seem like issues with the spec instead... Anyway, I'll respond to them one by one.


Thanks for raising these issues,

Taylan


P.S.: I've been sending HTML email using Thunderbird lately. If it messes up the formatting too much, please do complain. Some of my contacts use HTML, and I haven't yet found a way to switch back and forth quickly in Thunderbird.

[-- Attachment #2: Type: text/html, Size: 6223 bytes --]

      reply	other threads:[~2024-09-30 11:39 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-01  2:17 bug#71300: [PATCH v3] doc: Document SRFI 64 Maxim Cournoyer
2024-09-15  4:25 ` bug#71300: [PATCH v4] " Maxim Cournoyer
2024-09-22 10:14   ` bug#71300: [PATCH v3] " Dr. Arne Babenhauserheide via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2024-09-22 12:30   ` bug#71300: [PATCH v4] " Tomas Volf
2024-09-26 13:35     ` Maxim Cournoyer
2024-09-26 19:15       ` Taylan Kammer
2024-09-29 19:43       ` Maxime Devos via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2024-09-30 11:39         ` Taylan Kammer [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=45010bfa-8ef4-4046-9dde-540d534a1611@gmail.com \
    --to=taylan.kammer@gmail.com \
    --cc=71300@debbugs.gnu.org \
    --cc=filip@lajszczak.dev \
    --cc=maxim.cournoyer@gmail.com \
    --cc=maximedevos@telenet.be \
    --cc=~@wolfsden.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).