Glacier
A big ‘ol pile of ICE.
This repository is used to test internal compiler errors (also known as ICEs) in Rust. An ICE means that something went wrong, something unexpected. As such, sometimes, ICEs get randomly fixed. A compiler refactoring will remove the odd code path, even if the point of the change wasn’t to fix the bug.
As such, this repository is a collection of these bugs, and it runs on Rust nightly, once a day, through GitHub Actions. If any of the ICEs stop happening, the build will fail, and we can close the associated bug.
Helping out
Contributing to Glacier is fairly easy:
- Check out this list of bugs on the Rust issue tracker.
- Pick one.
- Create a file in
ices/
with the same digit as the bug. - Copy the code that causes the ICE into your new file.
- (optional) Verify it works by running
rustup update nightly
, thencargo run
to run the tests. - Send a pull request!
Note: Running this on Windows may give false positives and report some ICEs as fixed, use either WSL or Linux for better accuracy.
License
MIT/Apache2, just like Rust.