Начиная с 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.
На странице проекта задокументированы некоторые небольшие несовместимости.