6 个版本
0.3.2 | 2023年7月17日 |
---|---|
0.3.1 | 2023年4月1日 |
0.3.0 | 2023年3月18日 |
0.2.0 | 2023年3月17日 |
0.1.0 | 2023年3月17日 |
734 在 开发工具 中排名
每月下载 25 次
27KB
621 代码行
冰融器
冰融器自动化调试 rustc 内部编译器错误(ICE)的步骤。
功能
- 自动最小化导致 ICE 的文件(MCVEs)
- 运行 cargo-bisect-rustc
- 如果这样做能保持 ICE,则
rustfmt
MCVEs - 生成可粘贴的 Markdown 报告
- 可选地从 Github 下载 MCVEs
*这确实有效:冰融器将约 250 行的文件缩减到只有 4 行,在 #107454 中。
更多功能正在 计划中。
使用方法
冰融器适用于独立的 Rust 文件。如果你的文件名为 ice.rs
,则可以这样使用
icemelter ice.rs
默认情况下,结果存储到 melted.rs
。一些有用的标志
--output
:更改输出文件的存储位置--bisect
:使用 cargo-bisect-rustc 分割回归--markdown
:输出可粘贴的报告
以下是一个使用不同编译器和添加标志的示例
icemelter ice.rs -- rustc +nightly --crate-type=lib
有关更多信息,请参阅 --help
。
安装
从版本中
静态链接的 Linux 二进制文件可在 版本页面 上找到。
从 crates.io
您可以从 crates.io 构建已发布的版本。您需要 Rust 编译器和 Cargo 构建工具。 rustup 使获取这些工具变得非常简单。然后运行
cargo install icemelter
这将在默认情况下将二进制文件安装到 ~/.cargo/bin
。
构建
要从源代码构建,您需要Rust编译器和Cargo构建工具。rustup可以让您轻松地获得这些工具。然后,获取源代码
git clone https://github.com/langston-barrett/icemelter
cd icemelter
最后,构建所有内容
cargo build --release
您可以在target/release
中找到二进制文件。使用cargo test
运行测试。
工作原理
Icemelter的优化能力基于treereduce-rust
。
依赖项
~14–31MB
~548K SLoC