Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stricter task isolation for incremental compilation tasks #40304

Closed
nikomatsakis opened this issue Mar 6, 2017 · 1 comment
Closed

stricter task isolation for incremental compilation tasks #40304

nikomatsakis opened this issue Mar 6, 2017 · 1 comment
Assignees
Labels
A-incr-comp Area: Incremental compilation T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@nikomatsakis
Copy link
Contributor

nikomatsakis commented Mar 6, 2017

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.

@nikomatsakis nikomatsakis added A-incr-comp Area: Incremental compilation T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 6, 2017
@nikomatsakis nikomatsakis self-assigned this Mar 6, 2017
@nikomatsakis
Copy link
Contributor Author

I've decided it would be better to remove tasks, as described in #40746

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-incr-comp Area: Incremental compilation T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

1 participant