On Sun, Feb 23, 2020 at 4:15 AM Taylan Kammer <xxxxxx@gmail.com> wrote:

My implementation also reports line numbers. I don't think there's a difference there.

As advantages for my implementation I'd list:

- Based on R7RS: dropping support for non-R7RS environments simplifies the code, since workarounds like using a vector for a mock record type, or using cond-expand to support implementation-specific exception handling mechanisms, can be removed.

- Modular design: the source is split into four components: Execution (forms to actually execute tests), test-runner (the data type), test-runner-simple (the "simple" test runner defined by the standard), and source-info (shims to support source info gathering). Note that these aren't actually exposed as sub-libraries, since that might encourage writing code that only works with this implementation; the separation is only for ease of understanding and navigation of the code.

- Improved code clarity: using shims to hide implementation-specific code for source info gathering further eliminates the use of cond-expand in the main body of the code, improving readability.

Hmm.  I'm beginning to think that I should point people to this discussion rather than trying to summarize the pros and cons of the two implementations in the "README" file.  I want to encourage people to contribute alternative, compatible implementations, but I don't want to create ill will by officially sanctioning any value judgments between implementations.

Thank you to both of you for all your hard work making this popular and important SRFI top notch.