SRFI-metadata-syncing SRFI? noosphere@xxxxxx (08 Nov 2020 21:50 UTC)
Re: SRFI-metadata-syncing SRFI? Vladimir Nikishkin (09 Nov 2020 02:12 UTC)
Re: SRFI-metadata-syncing SRFI? Lassi Kortela (09 Nov 2020 09:41 UTC)
Re: SRFI-metadata-syncing SRFI? noosphere@xxxxxx (09 Nov 2020 16:15 UTC)
Re: SRFI-metadata-syncing SRFI? Lassi Kortela (09 Nov 2020 16:36 UTC)
Re: SRFI-metadata-syncing SRFI? Lulu (09 Nov 2020 19:42 UTC)
Re: SRFI-metadata-syncing SRFI? noosphere@xxxxxx (09 Nov 2020 20:35 UTC)
Re: SRFI-metadata-syncing SRFI? Lassi Kortela (09 Nov 2020 20:57 UTC)
Re: SRFI-metadata-syncing SRFI? Lassi Kortela (09 Nov 2020 21:05 UTC)
Re: SRFI-metadata-syncing SRFI? noosphere@xxxxxx (09 Nov 2020 23:41 UTC)
Re: SRFI-metadata-syncing SRFI? Lassi Kortela (10 Nov 2020 07:53 UTC)
Re: SRFI-metadata-syncing SRFI? noosphere@xxxxxx (09 Nov 2020 23:45 UTC)
Re: SRFI-metadata-syncing SRFI? noosphere@xxxxxx (09 Nov 2020 20:50 UTC)
Re: SRFI-metadata-syncing SRFI? Lassi Kortela (09 Nov 2020 21:12 UTC)
The funnel pattern Lassi Kortela (09 Nov 2020 21:30 UTC)

Re: SRFI-metadata-syncing SRFI? Lassi Kortela 09 Nov 2020 09:41 UTC

Hello Sergey,

Thank you for your work on the Chicken SRFIs and for proposing metadata
standardization!

I agree that it is a good idea. We discussed it last year or early this
year on one of the SRFI or Scheme topics mailing lists but didn't
implement anything concrete.

Every current Scheme implementation is maintained in a git repo. Hence
the most natural way to implement your suggestion would be to put a
metadata file in each repo under a standard filename. Since source
releases (.tar.gz) are made from the repos, the metadata file would
automatically ship as part of each source release too. This would let us
easily find out the SRFI set for each release of each implementation.

Much of the table we've gathered with Erkin is already auto-generated by
scrapers that download a tar archive of the Scheme implementation's
source code and grep for things in it. We currently have a tailor-made
scraper for each implementation separately; they are in the "listings"
directory of the srfi-metadata repo [1]. Following your suggestion we
could eventually have one scraper that works for all implementations. A
big simplification, as you say. Since Scheme is based on S-expressions,
it would be most natural if the metadata file were an S-expression file.

One complication remains: Many implementations support extra SRFIs via
third-party packages in addition to the built-in SRFIs. Chicken is an
extreme example of this approach: almost all SRFIs are eggs. This
problem would be most naturally solved by having a similar standard
format for package metadata. This problem is also tractable. For
example, the current Chicken egg and Snow-Fort.org metadata files look
vaguely similar already. With the flexibility of S-expressions and
`cond-expand`, I'm confident we could specify a standard package
metadata format that works for everyone. If this were coupled with a
standard package index format, an automated scraper could parse an
implementation's package index and look for all packages that implement
SRFIs.

By adding the SRFI lists from the implementation metadata and the
package metadata, a fully automated scraper could build a complete table.

Would you (and others) be interested in collaborating on such a SRFI? If
so, I have another related idea related to library lookup that I'd like
to try and merge with it :)

[1]
https://github.com/schemedoc/srfi-metadata/tree/9ff8091a35c058ee531e989fae48db191014fcd6/listings