Re: Categorizing and describing implementations Jakub T. Jankiewicz 14 May 2024 13:53 UTC


On Tue, 14 May 2024 14:48:35 +0200
Marc Feeley <xxxxxx@iro.umontreal.ca> wrote:

> I’m somewhat of a hardliner on the subject of what is required for a system
> to qualify as a “Scheme”, which for me means an implementation of the
> Scheme language.
>
> A “Scheme” should be defined as an implementation that conforms to one of
> the RnRS reports. Others should qualify as “Scheme subset”, or “Scheme
> like” implementations. I think we all agree that small deviations from an
> RnRS report are OK. But some features are essential, such as lexical
> scoping, proper tail-calls, and continuations. Just having parentheses and
> being simple does not qualify as “Scheme”.
>
> By the way, Ribbit would qualify as a Scheme since it fully conforms to
> R4RS.
>

I have more lax definition of Scheme. If some lisp looks like Scheme, have
lexical closure, function as first class objects, closures and a decent
amount of procedures from any RnRS I would consider it Scheme. Event if it
doesn't have all required features like continuations, TCO, or macros.

I would use term, production ready implementation or more mature, for Scheme
that are well known like Gambit, Kawa, or Guile. But I would not exclude
those small implementations.

I was just checking dependants of my library jQuery Terminal on GitHub about
this this:

https://github.com/trb-a/cumalis-lisp

It says Lisp in the name but also implement a lot of features of Scheme, and
in summary it says:

Cumalis Lisp is a stack-based implementation of R7RS Scheme Language in
Typescript.

And there are probably hundreds of implementations out there. Since Lisp and
Scheme are the easiest programming language to implement (at least on basic
level).

On GitHub you can find 46 repositories with topic r7rs:

https://github.com/topics/r7rs

We can link to that from the website and encourage developers to include
specific tags on GitHub. Most developers probably don't use topics for their
implementations (like Gamibt).

R5RS topic:

https://github.com/topics/r5rs

has only 22 repositories.

I can search for implementations on GitHub and suggest to add topic so we
will have more implementations. I've just created an issue for Gambit.

--
Jakub T. Jankiewicz, Senior Front-End Developer
https://jcubic.pl/me
https://lips.js.org
https://koduj.org