---
# System prepended metadata

title: Robust incremental compilation

---

# Robust incremental compilation

Incremental compilation is, and likely will be for the foreseeable future, be an amazing and frustrating source of ICEs.

This makes for a bad user experience and can cause frantic work right before releases.

This document brainstorms various mitigation strategies, that should allow us to keep developing incremental as fast as we can while not making ICEs break the world.

## Strategies

### Disable incremental on ICE

The lowest hanging fruit is to create a marker file in the incremental directory from within the ICE handler. if that file exists when incremental is started up, do one of the following:

* disable incremental
* `rm -rf *` inside the incremental dir, also removing the marker file and thus starting out clean 
    * possibly keep marker file, but increment a counter inside and disable incremental if the counter goes above 5 (or whatever other number)
* recompute everything, but compare against the cache to find the corruption 