#chinilla #arguments-parser #wasm-bindings #chinillaclvm #chinillalisp

已删除 chinillaclvm_tools_rs

用于处理 chinillalisp 语言的工具;编译器、repl、python 和 wasm 绑定

0.1.25 2022年12月11日

#2 in #chinilla

Apache-2.0

665KB
17K SLoC

chinillaclvm_tools_rs

这是 chinilla 的 chinillaclvm 工具 通过 ChinillaMineJP 将其转换为 typescript 的工作,将其二次移植到 rust。如果没有先前对各种半动态事物的类型进行映射的工作,这将是一个非常困难的任务(感谢 ChinillaMineJP)。

进行此操作的一些原因:

  • Chinilla 将 chinillaclvm 的实现切换到 rust:chinillaclvm_rs,并且此代码在相同语言中可能会提高速度并更好地跟踪 chinillaclvm。

  • 我在 ocaml 中编写了一个结构更简单、更不复杂的新的编译器,这应该更容易在未来进行改进和验证:ochinillalisp

  • 即使在这个未经优化的形式中,它也更快。

到目前为止,我已经带来了所有接受测试,并且正在添加更多。目前,我不认为从该存储库中的 chinillaclvm_tools 运行这些命令行工具时,有任何不应该是真实的情况。

  • opc

  • opd

  • 运行

  • brun

  • repl

argparse 已转换为 javascript,我相信我已经忠实地复制了它在 cmds 中的使用方式,因此命令行解析在这三个版本中应该相似。

预期的目录结构为:

src/classic  <-- any ported code with heritage pointing back to
                 the original chinilla repo.
                
src/compiler <-- a newer compiler (ochinillalisp) with a simpler
                 structure.  Select new style compilation by
                 including a `(include *standard-cl-21*)`
                 form in your toplevel `mod` form.

Mac M1

由于 mac M1 和其他平台处理 python 扩展方式的不同,请使用 cargo build --no-default-features

与 chinilla-blockchain 一起使用

# Activate your venv, then
$ maturin develop --release

依赖项

~6–18MB
~257K SLoC