С 2016 года существует ли реализация схемы, которая поддерживает 100% R7RS (малая) без отклонений?

Я готов изучить Схему. Я хочу придерживаться R7RS, так как это последний стандарт. Однако, похоже, что существует много фрагментации в текущих реализациях Схемы, и большинство из них остаются в R5RS или частично R6RS.

Единственный, который я нашел, поддерживает часть R7RS - это Kawa, но, поскольку он работает на JVM, он не поддерживает оптимизацию хвостовых вызовов, и это является сильной стороной для этой реализации.

Действительно ли мир Scheme настолько фрагментирован, что еще нет полной реализации R7RS? Я спрашиваю, потому что, если нет, как только я догоню, я планирую построить его; но, если таковой существует, было бы лучше не изобретать колесо и не вносить вклад в эту определенную реализацию.

Пожалуйста, если у вас есть информация, я был бы признателен не только ответить на имена, но и получить дополнительную информацию (официальный сайт реализации или даже выписка из группы рассылки будет полезной в качестве ссылки).

И, кстати, я не рассматриваю Racket, так как это еще не схема.

Ответ 1

Председатель комитета малых языков R7RS (" Рабочая группа 1 ") Алекс Шинн создал схему Chibi по мере развития стандарта. Я считаю, что это полностью соответствует. Это компилятор байт-кода.

Larceny имеет в основном (полностью?) Совместимый режим R7RS и компилируется в машинный код.

Я играл с Picrin, который нацелен на соответствие R7RS, и очень очень близок. Это компилятор байт-кода.

Список реализаций, нацеленных на соответствие R7RS в вики комитета, включает:

  • Chibi
  • Цыпленок (частичный)
  • разжигать
  • неловкий
  • Хитрость (частичная)
  • шелуха
  • Кава
  • воровство
  • Мош (частично)
  • Picrin
  • Стрелец

Ответ 2

Хотя вопрос явно исключает Racket из рассмотрения как не являющуюся Схемой, я укажу на пакет Racket "R7RS", который реализует небольшие R7R.

На странице проекта задокументированы некоторые небольшие несовместимости.