#scheme #ffi #scheme-interpreter #chez

sys chez-sys

Rust对Chez Scheme的原始绑定

1 个不稳定版本

0.1.0 2022年1月31日

#30 in #scheme-interpreter

Apache-2.0

15KB
208

chez-sys

目前仅支持64位Linux,禁用了curses和x11。

注意:所有头文件函数都已实现(一些功能性的 #define 缺失)。

引导文件

为目标操作系统构建的引导文件被移动到Cargo的 OUT_DIR。也会设置特定文件的环顾变量。

  • petite.boot 可以通过 PETITE_BOOT_PATH 访问。
  • scheme.boot 可以通过 SCHEME_BOOT_PATH 访问。

这些引导文件是启动Scheme解释器(这反过来又需要与任何交互)所必需的。这不是 chez-sys 将要解决的问题。

下载仓库而不是作为供应商

不幸的是,ChezScheme仓库包括其仓库中每个支持目标的引导文件。这完全合理,因为它们对于引导过程是必需的,但这使得cargo包的大小超过10MB。如果你只使用 一个 引导文件,则包的大小约为7MB。

然而,创建不同的 chez-arch-sys 仓包也感觉非常荒谬,这会导致将约70MB上传到 crates.io,而不是约30MB用于打包一切的仓包。因此,与其去骚扰那些令人惊叹的Rust人们,不如咬紧牙关去下载。

有两个潜在的解决方案

  1. 一些仓包被允许有特殊的权限,超过10MB,但尚不清楚 chez-sys 仓包是否符合这些要求。应该花一些时间看看这个仓包获得多少牵引力和使用率,然后再要求特殊的权限。

  2. 理论上可以通过编译到WASM来构建通用的引导文件。然后可以使用 WASM解释器 来引导过程。上游将添加这个引导文件到所有其他文件的列表中,而 chez-sys 将排除除引导文件之外的所有内容进行打包。这还有其他好处,如允许在网络上运行Chez Scheme REPL,因此可能在这里有一些牵引力。

依赖