guile-devel
[Top][All Lists]
Advanced

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

[PATCHES] Use a better SRFI-64 implementation.


From: Taylan Kammer
Subject: [PATCHES] Use a better SRFI-64 implementation.
Date: Mon, 10 May 2021 20:25:49 +0200
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1

Hi Guile devs,

I've noticed there have been a couple bug reports about SRFI-64
recently.  Guile uses the reference implementation of SRFI-64 which has
really terrible readability, doesn't conform to its own standard, and
was revealed to have a number of bugs over the years.

I've attached two patches, the first of which replaces the SRFI-64
implementation shipped with Guile to the one I wrote as part of the R7RS
Scheme SRFIs project,[0] and the second patch adds a few tests to the
SRFI-64 meta test suite.

This implementation of SRFI-64 offers the following improvements:

- Much better readability through a modular design, modernized Scheme
code, better identifier names, and otherwise prettified code

- Output about executed tests in a format familiar to GNU users

- Improved expand-time performance for large test suites

- Fully conforms to the SRFI-64 specification

- Offers a small number of extensions

See the notes about SRFI-64 in the README of the Scheme SRFIs project[0]
for the most important differences from the reference implementation,
like the way it conforms to the spec where the reference implementation
doesn't, and the extensions mentioned above.


I had already proposed such a patch a number of years ago, but it was
rejected on the grounds that the upstream implementation is probably
better tested.  I think the fact that there have been grave bugs in the
implementation that remained uncovered in ~15 years evidences that this
is not a valid reason.  I believe that the over-complicated way the code
is written masks bugs and discourages people from improving the code.


What do you think?  IMO this would be a clear improvement.


[0] https://github.com/TaylanUB/scheme-srfis

Attachment: 0001-Use-a-different-SRFI-64-implementation.patch
Description: Text document

Attachment: 0002-Augment-SRFI-64-test-suite.patch
Description: Text document


reply via email to

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