| Crates.io | icemelter |
| lib.rs | icemelter |
| version | 0.3.2 |
| created_at | 2023-03-17 02:17:42.579774+00 |
| updated_at | 2023-07-17 17:48:30.61266+00 |
| description | Tool to minimize files that trigger internal compiler errors (ICEs) |
| homepage | https://github.com/langston-barrett/icemelter |
| repository | https://github.com/langston-barrett/icemelter |
| max_upload_size | |
| id | 812255 |
| size | 73,801 |
Icemelter automates steps in debugging rustc internal compiler errors (ICEs).
rustfmts MCVEs if doing so keeps the ICE*It really works: Icemelter reduced a ~250 line file to just 4 lines in #107454.
More features are planned.
Icemelter works on standalone Rust files. If your file is named ice.rs, use
it like so:
icemelter ice.rs
By default, the result is stored to melted.rs. A few helpful flags:
--output: Change where the output file is written--bisect: Bisect the regression with cargo-bisect-rustc--markdown: Output a copy-pasteable reportHere's an example that uses a different compiler and adds a flag:
icemelter ice.rs -- rustc +nightly --crate-type=lib
For more options, see --help.
Statically-linked Linux binaries are available on the releases page.
You can build a released version from crates.io. You'll need the Rust compiler and the Cargo build tool. rustup makes it very easy to obtain these. Then run:
cargo install icemelter
This will install binaries in ~/.cargo/bin by default.
To build from source, you'll need the Rust compiler and the Cargo build tool. rustup makes it very easy to obtain these. Then, get the source:
git clone https://github.com/langston-barrett/icemelter
cd icemelter
Finally, build everything:
cargo build --release
You can find binaries in target/release. Run tests with cargo test.
Icemelter's minimization capabilities are built on
treereduce-rust.