rust-lang / rust-lang/rust

[Tracking] Incremental Systems Rethought

Open
#160,799 0 comments 1 reaction 1 assignee View on GitHub

@blyxyas is already working on this.

Since Aug 9, 2026.

A-incr-comp C-tracking-issue
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

This issue lists all current list points in order to complete the Incremental Systems Rethought project goal. These should be done in order-of-appearance, and they should be self-contained enough that anyone can pick them up.

If you pick one of these up, please ping me in the resulting PR or contact me through Zulip.

Reading materials

Progress

  • Merge RFC.
  • Build-over-check
    • We should be able to run cargo check && cargo build, and have cargo build be able to re-use cached information by cargo check.
    • Being that cargo check monomorphizes, I'm tracking monomorphization information and use it in cargo build.
    • Other approach: Track name resolution, with very primitive type information (limits us in many aspects, but lower memory fingeprrint).
  • Per-owner querying.
    • We currently have a lot of queries that work on the whole crate (e.g. codegen_crate, collect_and_partition_mono_items), we should fragment these, trying to keep overhead as low as possible.
  • Cargo: Go top-down instead of bottom-up.
    • Currently we completely codegen the lowest dependencies in a crate tree. We should start by doing nameres in the root, and then compiling the dependency judging by that name resolution information (So, don't take into account unused items)

Experiments

Workflows

I (@blyxyas) am currently the only person actively working on this. I've received a couple of offers for help, so it might evolve into a working group or other kind of organized effort.

I'm holding bi-weekly meetings with Jack Huey @jackh726, discussing the design.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.