-
Notifications
You must be signed in to change notification settings - Fork 74
Destabilise target-spec-json #944
Copy link
Copy link
Closed
Labels
T-compilerAdd this label so rfcbot knows to poll the compiler teamAdd this label so rfcbot knows to poll the compiler teamdisposition-mergeThe FCP starter wants to merge thisThe FCP starter wants to merge thisfinished-final-comment-periodThe FCP has finished, action upon the disposition label needs to be takenThe FCP has finished, action upon the disposition label needs to be takenmajor-changeA proposal to make a major change to rustcA proposal to make a major change to rustcmajor-change-acceptedA major change proposal that was acceptedA major change proposal that was accepted
Metadata
Metadata
Assignees
Labels
T-compilerAdd this label so rfcbot knows to poll the compiler teamAdd this label so rfcbot knows to poll the compiler teamdisposition-mergeThe FCP starter wants to merge thisThe FCP starter wants to merge thisfinished-final-comment-periodThe FCP has finished, action upon the disposition label needs to be takenThe FCP has finished, action upon the disposition label needs to be takenmajor-changeA proposal to make a major change to rustcA proposal to make a major change to rustcmajor-change-acceptedA major change proposal that was acceptedA major change proposal that was accepted
Type
Fields
Give feedbackNo fields configured for issues without a type.
Proposal
Per rust-lang/rust#71009, the ability to load target spec JSONs was stabilised accidentally. Within the team, we've always considered the format to be unstable and have changed it freely. This has been feasible as custom targets can only be used with
core, like any other target, and so custom targets de-facto require nightly to be used (i.e. to buildcoremanually or use Cargo's-Zbuild-std).Current build-std RFCs (rust-lang/rfcs#3873, rust-lang/rfcs#3874) propose a mechanism for building
coreon stable (at the request of Rust for Linux), which combined with a stable target-spec-json format, permit the current format to be used much more widely on stable toolchains. This would prevent us from improving the format - making it less tied to LLVM, switching to TOML, enabling keys in the spec to be stabilised individually, etc.De-stabilising the format gives us the opportunity to improve the format before it is too challenging to do so. Internal company toolchains and projects like Rust for Linux already use target-spec-json, but must use nightly at some point while doing so, so while it could be inconvenient for those users to destabilise this, it is hoped that an minimal alternative that we could choose to stabilise can be proposed relatively quickly.
See also rust-lang/wg-cargo-std-aware#6 and
A-target-specsissues.Mentors or Reviewers
@wesleywiser
Process
The main points of the Major Change Process are as follows:
@rustbot secondor kickoff a team FCP with@rfcbot fcp $RESOLUTION.You can read more about Major Change Proposals on forge.