截至2016年,是否有一个方案实施支持100%的R7RS(小)没有偏差?

add*_*ell 22 lisp scheme implementation r6rs r7rs

我愿意学习Scheme.我想坚持使用R7RS,因为它是最后一个标准.然而,似乎在Scheme当前实现上存在很多碎片,并且大多数碎片停留在R5RS或R6RS的一部分.

我发现的唯一一个支持R7RS的部分是Kawa,但由于它在JVM上运行,它不支持尾调用优化,这是针对该实现的一个强点.

Scheme计划世界是否真的那么支离破碎,甚至还没有R7RS完全实现呢?我问,因为如果没有,我一赶上,我就打算建一个; 但是,如果存在,最好不要重新发明轮子并为某种实施做出贡献.

如果您有信息,请不仅要回答姓名,还要提供适当的进一步信息(实施的官方网站,甚至邮件组的摘录都可以作为参考).

顺便说一句,我不是在考虑Racket,因为它不再是Scheme了.

Dou*_*rie 21

R7RS小语言(" 第1工作组 ")委员会主席Alex Shinn创建了Chibi Scheme作为标准的演变.我相信它完全符合要求.它是一个字节码编译器.

Larceny有一个大多数(完全?)兼容的R7RS模式,并编译为机器代码.

我一直在玩Picrin,其目标是符合R7RS,并且非常接近.它是一个字节码编译器.

一个实现的列表是瞄准了在委员会的维基R7RS遵守包括:

  • 赤壁
  • 鸡(部分)
  • 左岸
  • Guile(部分)
  • 盗窃罪
  • 莫什(部分)
  • Picrin
  • 射手座

  • Gauche正在积极开发并且已经符合R7RS标准,除了一些小案例.只是作者(我)懒得发布. (2认同)
  • 确实,盗窃罪声称支持R7RS。但是有两个警告:它目前仅支持32位编程(它在64位操作系统和体系结构上运行,但以32位模式运行),并且它是JIT而不是AOT编译器。(当前,唯一生成(优秀)可执行文件的Scheme编译器是Chez,不幸的是,它仍然停留在R6RS上。如果它移至R7RS,则可能与所有其他实现都不相关。) (2认同)

bos*_*kom 7

虽然这个问题明确地将Racket排除在考虑因为不是方案之外,但我会指出实施R7R的Racket软件包"R7RS".

项目页面上记录了一些小的不兼容性.