unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
From: Taylan Kammer <taylan.kammer@gmail.com>
To: 71300@debbugs.gnu.org
Subject: bug#71300: [PATCH v4] doc: Document SRFI 64.
Date: Thu, 26 Sep 2024 21:15:06 +0200	[thread overview]
Message-ID: <84f71af5-41eb-44b0-86b1-a73be14f6543@gmail.com> (raw)
In-Reply-To: <87r096edvz.fsf@gmail.com>

On 26.09.2024 15:35, Maxim Cournoyer wrote:
> Hi Tomas,
>
> Tomas Volf <~@wolfsden.cz> writes:
>
>> Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:
>>
>>> This is an import of the 'Abstract', 'Rationale', and 'Specification'
>>> sections from the upstream specification text, with some manual
>>> adjustment.
>>>
>>> * doc/ref/srfi-modules.texi (SRFI 64): New subsection.
>> I think important question to ask here is whether this manual section
>> documents SRFI-64 or what Guile ships as SRFI-64.  Current
>> implementation shipped by Guile has many quirks that do not conform to
>> the specification.
>>
>>> +@c This SRFI 64 documentation was "snarfed" from upstream specification
>>> +@c HTML document using the 'snarfi' script.
>> 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 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.
>
>> described by the manual does not match the implementation shipped).
> I'd consider different behavior in the implementation compared to the
> specification bugs.
>

Let me once again advertise my implementation of SRFI 64, found here:

    https://codeberg.org/taylan/scheme-srfis/

The code is more readable and better structured, has fewer bugs (obeys the specification), and adds a small number of useful extensions, as explained here:

    https://codeberg.org/taylan/scheme-srfis/#srfi-64

The output of the default test runner is also a lot more informative, and handles nested test groups. (Prints the entire "path" hierarchy of the current test.) It's also more verbose though, which may be a matter of taste: It prints something for every test executed, whereas the reference implementation (the one used by Guile) only prints something for failed tests.

Sadly, the patch I previously sent to Guile for switching to this implementation was ignored, and Guile's R7RS support is still insufficient to use the R7RS SRFI libraries "out of the box."

However, for the convenience of Guile users, the latest commit contains the directory "guile-srfi-64" in the repo's root, which contains a copy of the implementation with file naming and module boilerplate that should work with all recent Guile versions. So, you can use it by adding the following to your GUILE_LOAD_PATH:

    $scheme_srfis_repo_root/guile-srfi-64

E.g. I can start guile like this, to use it in lieu of the implementation that ships with Guile:

    GUILE_LOAD_PATH=/home/taylan/src/scheme-srfis/guile-srfi-64 guile


Maybe someone will want to try it out, and push for its inclusion in Guile if they agree that it's a superior implementation.


All the best,

Taylan






  reply	other threads:[~2024-09-26 19:15 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 [this message]
2024-09-29 19:43       ` Maxime Devos via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2024-09-30 11:39         ` Taylan Kammer

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=84f71af5-41eb-44b0-86b1-a73be14f6543@gmail.com \
    --to=taylan.kammer@gmail.com \
    --cc=71300@debbugs.gnu.org \
    /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).