Icemelter

Icemelter automates steps in debugging rustc internal compiler errors (ICEs).

Features

*It really works: Icemelter reduced a ~250 line file to just 4 lines in #107454.

More features are planned.

Usage

Icemelter works on standalone Rust files. If your file is named ice.rs, use it like so:

sh icemelter ice.rs

By default, the result is stored to melted.rs. A few helpful flags:

Here's an example that uses a different compiler and adds a flag:

sh icemelter ice.rs -- rustc +nightly --crate-type=lib

For more options, see --help.

Installation

From a release

Statically-linked Linux binaries are available on the releases page.

From crates.io

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:

sh cargo install icemelter

This will install binaries in ~/.cargo/bin by default.

Build

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:

sh git clone https://github.com/langston-barrett/icemelter cd icemelter

Finally, build everything:

sh cargo build --release

You can find binaries in target/release. Run tests with cargo test.

How it works

Icemelter's minimization capabilities are built on treereduce-rust.