Реализации SRFI для Chez Scheme
Я новичок в Chez и просто ищу некоторую ясность, учитывая различные существующие и не поддерживаемые репозитории.
Есть ли единый обычно предпочтительный исходный репозиторий для получения библиотек R6RS SRFI (специально для Chez Scheme)?
Я знаю о https://srfi.schemers.org/, который хорош для поиска отдельной документации SRFI и имеет tgz всей документации и некоторый код схемы, но на tgz нет информации о версии или выпуске (хотя метки времени предполагаю, что это достаточно актуально ( https://srfi.schemers.org/srfi.tgz).
Для R6RS я могу найти большинство SRFI в виде отдельных репозиториев в следующем репо, что не очень удобно для получения всего кода:https://github.com/scheme-requests-for-implementation
А затем множество других репозиториев, например:
https://github.com/arcfide/chez-srfi
https://github.com/ovenpasta/thunderchez
https://github.com/dharmatech/surfage
https://bazaar.launchpad.net/~scheme-libraries-team/scheme-libraries/srfi/files
Единственные, кто проявляет активность в последнее время и, к счастью, также, кажется, ориентирован на Chez, это chez-srfi и thunderchez.
chez-srfi кажется самым последним активным, и как только я разработал требование для запуска link-dirs.chezscheme.sps
а затем софтлинк chez-srfi
каталог в srfi
похоже, он работает с использованием стандартных ссылок на импорт - (import (srfi :N lib))
.
Тем не менее, у меня был аналогичный успех, используя (import (srfi sN lib))
используя Thunderchez.
Я совершенно не знаю, какое репо я использую, поскольку он прост в использовании и постоянно обновляется. Есть ли четкий предпочтительный выбор, обеспечивающий это, или это выбор, основанный более косметически на личном мнении (в этом случае я сформирую свое собственное, а спрошу здесь!)
1 ответ
Честный ответ, вероятно, "нет" - нет ни одной версии srfi, предпочитаемой сообществом.
Но чтобы (как бы) ответить на мой собственный вопрос, хотя я еще не могу сказать, что это стандарт де-факто, Akku - это менеджер пакетов и система управления виртуальной средой Scheme, которая намного опережает любую из альтернатив и активно развивается. Это не отдельная реализация srfi, а способ установки различных пакетов Scheme, которые вам нужно использовать, через единый интерфейс.
Это не совсем venv и pip - но это уже скоро. Я удивлен, что об этом больше не говорят, я наткнулся на это только через некоторое время после первоначальных поисков такого инструмента.
Вы получаете единый интерфейс для извлечения пакетов как для R6RS, так и для R7RS, а также ряд реализаций Scheme.
Также есть Snow, который в настоящее время поддерживает только R7RS:http://snow-fort.org/
Но поскольку Akku отражает Snow, а также предоставляет поддержку R6RS, он более всеобъемлющий.
Чтобы ответить на специфику исходного примера - Akku устанавливает chez-srfi по умолчанию (по крайней мере, в системе Chez Scheme) при создании нового проекта, но также предлагает thunderchez в виде пакета. Указывает ли это на предпочтение разработчика Akku, я оставлю решение на усмотрение читателя.
Первоначальный вопрос касался единственной реализации defacto srfi для Chez, а не более общего менеджера пакетов. Оглядываясь назад, я немного упускаю из виду главное просто потому, что я не думал, что единственный менеджер пакетов (помимо srfi) был удаленной возможностью.
Так что, по крайней мере, для моего использования - Akku не только предоставляет различные реализации srfi, но также предлагает множество других пакетов и в основном отвечает на мой вопрос.