bug-guile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#71300: [PATCH v4] doc: Document SRFI 64.


From: Taylan Kammer
Subject: bug#71300: [PATCH v4] doc: Document SRFI 64.
Date: Thu, 26 Sep 2024 21:15:06 +0200
User-agent: Mozilla Thunderbird

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 via email to

[Prev in Thread] Current Thread [Next in Thread]