[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
0001-Use-a-different-SRFI-64-implementation.patch
Description: Text document
0002-Augment-SRFI-64-test-suite.patch
Description: Text document
- [PATCHES] Use a better SRFI-64 implementation.,
Taylan Kammer <=