lisp – What is the recommended R7RS standard Scheme processing system?

Question: Question:

It has been several years since the specifications of R7RS, which is the latest specification of Scheme, have been decided. What is the currently recommended R7RS processing system?
Of that processing system

  1. R7RS specification compliance
  2. Features

It will be helpful if you can tell me.

Answer: Answer:

At this point, I am aware of the following five that fully meet the R7RS specifications.

  • Gauche
  • Sagittarius
  • Foment
  • Chibi
  • Picrin

I would like to share my thoughts on each.

Gauche

It's a popular implementation, and I'm grateful for the Japanese documentation. It also has many extensions that are useful for scripting language use. Since the author himself uses it for his work, I think it is a practical processing system that is well-balanced so that it does not get dirty while considering that it can be used for practical purposes that are muddy.

Forcibly, there are known bugs in macros (syntax-rules) from the beginning, but it seems that there are plans to radically rewrite macro expanders in the next or even next release, and in many cases it's easy. It will not be a problem because it can be detoured to.

Also, since it was originally a processing system that added its own extension to his R5RS, I get the impression that the part as his R7RS and the part of his own extension that he supported later are not fully integrated. I think it will be gradually revised while looking at the actual usability.

Sagittarius

Originally an R6RS implementation, he later began to support R7RS as well. The unique feature is that you can use the R6RS library from the R7RS program and vice versa. It has many convenient libraries that you can use on a daily basis, and it seems that the cryptographic relations tend to be enriched because the author himself needs it for work.

We have a regular monthly release system, so you can rest assured that the fix will be reflected quickly in the next release unless it's fundamentally difficult to find a bug once in a while.

Foment

The feel I've used is that he's particularly R7RS compliant, but his SRFI support is small and there are few proprietary extensions. It may be unsatisfactory when trying to put it to practical use.

Chibi

I think that R7RS compliance is high because it is the de facto reference implementation. It also supports SRFI widely and is a solid implementation.

It can be a bit annoying that you need Cygwin to run on Windows.

Picrin

It is supposed to be used by embedding it in an application, and it has the feature that the part used by embedding it is separated as a separate project as a library Benz.

As the Scheme processing system is relatively new, I get the impression that the development status is lively.

Scroll to Top