-
Notifications
You must be signed in to change notification settings - Fork 13.8k
Closed
Labels
A-incr-compArea: Incremental compilationArea: Incremental compilationT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Description
NB: Part of the roadmap issue on incremental compilation.
The current scheme of task isolation allows leaks anywhere (e.g., DepGraph::with_task
and friends). We should move to a scheme where the context is a closure that uses an autotrait to forbid shared, mutable state (basically, forbid UnsafeCell
) unless that state is "tracked" -- meaning that its reads and writes are accounted for in the dependency graph. The metadata code uses a scheme vaguely like this.
This will probably be a transition process, starting with an initial PR to construct the "opt-in" mechanism and then replacing existing uses in a series of smaller PRs.
Metadata
Metadata
Assignees
Labels
A-incr-compArea: Incremental compilationArea: Incremental compilationT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.