3

我是 Chez 的新手,考虑到现有的各种维护和未维护的存储库,我只是想弄清楚一些。

是否有一个常用的首选源代码库来获取 R6RS SRFI 库(专门用于 Chez Scheme)?

我知道https://srfi.schemers.org/非常适合搜索单个 SRFI 文档,并且有所有文档和一些方案代码的 tgz,但是 tgz 上没有版本或发布信息(尽管时间戳建议它是最新的https://srfi.schemers.org/srfi.tgz)。

对于 R6RS,我可以在以下 repo 下 找到大多数 SRFI 作为单独的 repos,这对于获取所有代码并不是很实用: 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 也取得了类似的成功。

我完全不知道我使用哪个存储库,只要它易于使用并积极保持最新状态。是否有一个明确的首选选择,或者是基于个人意见的更美观的选择(在这种情况下,我会形成自己的,而不是在这里问它!)。

4

1 回答 1

1

诚实的答案可能是“不”——社区不喜欢单一版本的 srfi。

但是(有点)回答我自己的问题,虽然我还不能说它是事实上的标准,但Akku是一个包管理器和 Scheme 的虚拟环境管理系统,它领先于任何替代方案,并且正在积极开发。它不是 srfi 的单独实现,而是一种通过单个接口安装需要使用的各种 Scheme 包的方法。

https://akkuscm.org/

它不完全是 venv 和 pip - 但它已经到了那里。我很惊讶这没有被更多地谈论,我只是在我最初搜索这样的工具后偶然发现了它。

您将获得一个接口来拉取 R6RS 和 R7RS 的包,以及一系列 Scheme 实现。

还有Snow,目前只支持R7RS: http ://snow-fort.org/

但由于 Akku 镜像 Snow 以及提供 R6RS 支持,它更加全面。

回答原始示例的细节 - Akku 在创建新项目时默认安装 chez-srfi(至少在 Chez Scheme 系统上),但也提供 Thunderchez 作为包。这是否表明 Akku 开发人员的偏好,我将留给读者来决定。

最初的问题是关于 Chez 的一个事实上的 srfi 实现,而不是一个更通用的包管理器。事后看来,这有点忽略了这一点,仅仅是因为我不认为单个包管理器(除了 srfi)是一个遥远的可能性。

所以至少对我来说——Akku,不仅提供了 srfi 的各种实现,还提供了许多其他的包,并且在很大程度上回答了我的问题。

于 2020-05-16T16:43:28.423 回答