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

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

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

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

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

И, кстати, я не рассматриваю Racket, поскольку это больше не Scheme.

2 ответа

Решение

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

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

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

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

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

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

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

Другие вопросы по тегам