2 个不稳定版本

新版本 0.2.0 2024 年 8 月 21 日
0.0.1 2024 年 7 月 9 日

3魔法豆

Download history 99/week @ 2024-07-03 31/week @ 2024-07-10

85 个月下载量
2 个crate中使用(通过 pint-abi-gen

Apache-2.0

16KB
250

Pint 编程语言

build

Pint 是一种 声明式 的基于约束的领域特定语言 (DSL),用于意图表达。有关 Pint 语言的介绍可以在 Pint 书籍 中找到。

依赖项

Rust

Pint 是用 Rust 构建的。要开始,请按照 https://www.rust-lang.net.cn/tools/install 上的说明安装 Rust 工具链。然后配置您的 Rust 工具链以使用 Rust stable

rustup default stable

如果尚未完成,请通过将以下行添加到 ~/.profile 并重新启动 shell 会话,将 Cargo 二进制目录添加到您的 PATH

export PATH="${HOME}/.cargo/bin:${PATH}"

构建

克隆仓库并构建 Pint 编译器和工具

git clone [email protected]:essential-contributions/pint.git
cd pint
cargo build

确认 pint 构建成功

cargo run --bin pint -- --help

测试

运行单元测试

可以使用 cargo testpint 目录下运行单元测试。然而,建议使用 cargo-nextest 包来运行测试。要安装 cargo-nextest

cargo install cargo-nextest

使用 cargo-nextest 运行所有单元测试

cargo nextest run

更新单元测试

大多数单元测试都是使用 expect_test 包辅助编写的。以下命令可以自动更新所有使用 expect_test::expect! 宏的单元测试,使它们全部通过。

env UPDATE_EXPECT=1 cargo nextest run

对于影响许多单元测试的编译器更改,上述命令可以一次性更新所有受影响的测试。该命令也有助于编写新的测试:只需通过将空字符串参数传递给 expect! 宏(即 expect![""])来编写测试,然后运行上述命令。


lib.rs:

辅助遍历 Pint ABI 键值变量的项。

这有助于遍历 Pint ABI 的 storagepub_vars 部分。

依赖项

~2.2–3MB
~52K SLoC