Re: First post and overview for supported SRFIs per (some) Scheme implementations
Peter Bex 12 Apr 2019 14:13 UTC
On Fri, Apr 12, 2019 at 04:58:28PM +0300, Lassi Kortela wrote:
> > For CHICKEN, we already have an s-expression based list of eggs, it's
> > what our own infrastructure uses:
> > http://bugs.call-cc.org/browser/project/release/4/egg-locations and
> > http://bugs.call-cc.org/browser/project/release/5/egg-locations
>
> OK, I didn't know that either. Seems you also have files like this:
> <https://bitbucket.org/DerGuteMoritz/zmq/raw/master/zmq.meta> to get the
> description (synopsis) for each package.
Correct. For CHICKEN 5, this is kept in the .egg file rather than
the .meta file.
> I believe a single package _index_ containing everything would be a boon to
> the growth and vitality of the community. (It would especially help smaller
> implementations and lesser known/abandoned packages to be discovered more
> often. It could also help with duplication of effort - I have a couple of
> times missed some existing packages that could have been used as-is, or be
> used as a basis for new development instead of starting from scratch.)
Yeah, for discoverability it could be useful.
> But the package index would definitely be the nicer to use the more
> information it can include. Common Lisp now has <http://quickdocs.org/> to
> go with their Quicklisp package manager. That site offers an awesome
> interface for people to discover packages and even browse their
> documentation.
That's pretty neat indeed!
> It's even nicer than the sites for more popular languages
> like CPAN and Clojure. Something like that for Scheme would be great and I
> think we should aim for that level of usability (in 5-10 years young
> programmers are probably going to expect that level of usability). It may
> take a few years to reach that goal but there are always little things we
> can do here and there to help us along towards that goal :)
In CHICKEN, we have Chickadee which can search the exports from
all egg documentation: https://api.call-cc.org/5/doc/
It even has autocomplete. Try searching for "call-with-input" and
you'll get the R5RS standard procedure call-with-input-file,
the POSIX procedure from CHICKEN core call-with-input-pipe,
the string port operator in CHICKEN core call-with-input-string
(which r7rs also has I believe) and the http-client egg's
call-with-input-request[*].
This is all coming from the wiki, which uses special markup like
<procedure>(call-with-input-pipe cmdline proc #!optional mode)</procedure>
to indicate that call-with-input-pipe is a procedure with this signature.
It should be possible to add different backends to Chickadee for parsing
other kinds of documentation sources.
Documentation and links to the sources for Chickadee are available here:
https://wiki.call-cc.org/eggref/5/chickadee
Cheers,
Peter