-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
Tracking issue for stabilizing "pipelined compilation" #60988
Copy link
Copy link
Closed
Labels
B-unstableBlocker: Implemented in the nightly compiler and unstable.Blocker: Implemented in the nightly compiler and unstable.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCI-compiletimeIssue: Problems and improvements with respect to compile times.Issue: Problems and improvements with respect to compile times.T-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.
Metadata
Metadata
Assignees
Labels
B-unstableBlocker: Implemented in the nightly compiler and unstable.Blocker: Implemented in the nightly compiler and unstable.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCI-compiletimeIssue: Problems and improvements with respect to compile times.Issue: Problems and improvements with respect to compile times.T-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.
Type
Fields
Give feedbackNo fields configured for issues without a type.
This issue is intended to be an overall tracking issue for stabilizing the recently implemented feature of "pipelined compilation". This tracking issue spans both Cargo and rustc, as support currently lives in both. It also builds on top of a number of other tracking issues, since they're unstable features used to implement pipelined compilation!
For a bit of background, pipelined compilation has an initial set of notes about its implementation and initially had these tracking issues:
Currently today everything is implemented and available in nightly rustc. There is a thread on internals which is tasked with gaining user experience about pipelining and see the performance impact. A collation of these measurements is quite promising and I feel personally is convincing enough to push on stabilizing all the sub-features!
Known blockers for stabilization:
-Z emit-artifact-notifications- this is how Cargo learns the moment metadata is ready.--json-rendered- this is how Cargo continues to provide pretty error messages.--message-format=shortin Cargo with pipelining. The compiler currently has--error-format=json|short|human, but for this feature in Cargo we'll need something like--error-format=short-jsonor something like that. Basically some way to request that therenderedfield in the JSON diagnostic is a "short message", not the long one.sccache, this should be investigated and fixed one way or another. (fixed in Cache rmeta files whenever metadata is present in emit. mozilla/sccache#441)--error-formatflags (fixed in Update RLS #62176)Possible future work: