Re: SRFI sample implementation repository layout
Marc Nieper-Wißkirchen 24 Oct 2022 20:24 UTC
Am Mo., 24. Okt. 2022 um 21:00 Uhr schrieb John Cowan <xxxxxx@ccil.org>:
>
>
>
> On Sun, Oct 16, 2022 at 3:11 AM Daphne Preston-Kendal <xxxxxx@nonceword.org> wrote:
>
>>
>> 1. SRFI should not become a dumping ground of (effectively) documentation for random libraries that end up with only one implementation each, but a repository of improvements to the core Scheme language.
>
>
> I believe this is much too absolute and in fact a "no true Scotsman" fallacy. SRFI 1, for example, is not an improvement to the core Scheme language. In fact, other than the R6RS prototype SRFIs I think there are very few SRFIs that meet that criterion if interpreted strictly. The vast majority of SRFIs have more or less portable implementations and therefore do not , though I don't have a count of them (perhaps Arthur does); I know that only a handful have no implementations at all.
I think there is no mathematically precise measure of whether a
particular proposal should be better packaged as a SRFI or as a
portable library instead. I don't think that whether a portable
implementation exists is not a good measure.
Of course, for something like SRFI 93 (syntax-case) this is pretty
clear that it only works as a SRFI. But I also think that something
like SRFI 158 (generators) makes sense as a SRFI because it is meant
to provide a fundamental structure that is meant to be used by many
other SRFIs, other libraries, and idiomatic code. A case for SRFI 1
because it introduces idiomatic procedures like "fold". Even the core
language includes things (like "unless") that could have well been
outsourced to a portable library.
On the other hand, there are SRFIs like SRFI 161 or SRFI 233 where it
becomes clear to me what Daphne means.
In any case, a sister structure would make sense because it could also
work as an incubator for later SRFIs, which hopefully helps to improve
the quality of proposals further.
>
> [MN-W:]
>
>> > SRFIs should ship with Scheme
>> > implementations and the sample implementation should not be copied
>> > verbatim but adapted for the maximal functionality or efficiency on a
>> > particular implementation.
>
>
> It seems clear that implementers are unwilling to do this. It happens in Chicken because the load of moving SRFIs to the Chicken package manager tends to be small (partly because I historically have used Chicken for development) and because it is distributed over many Chickeneers. This isn't happening for most Schemes AFAIK.
For this, it would help if the number of SRFIs were reduced by moving
those where the portable implementation is not meant to be touched to
a library repository.