-
Notifications
You must be signed in to change notification settings - Fork 73
Description
Proposal
This proposal seeks to promote riscv64a23-unknown-linux-gnu
from Tier 3 to Tier 2 with host tools, enabling the use of the Rust compiler and tools natively on RVA23 hosts.
Since RVA23 hardware is not yet available, some teams in my company develop RVA23-targeted apps using virtual machines.
Tier 2 with host tools will allow these developers to use native builds of the Rust compiler and tools.
Requirements for Tier 2 with Host Tools
Depending on the target, its capabilities, its performance, and the likelihood of use for any given tool, the host tools provided for a tier 2 target may include only rustc and cargo, or may include additional tools such as clippy and rustfmt.
rustc
, cargo
, clippy
and rustfmt
are required.
Approval of host tools will take into account the additional time required to build the host tools, and the substantial additional storage required for the host tools.
Ack.
The host tools must have direct value to people other than the target's maintainers. (It may still be a niche target, but the host tools must not be exclusively useful for an inherently closed group.) This requirement will be evaluated independently from the corresponding tier 2 requirement.
There must be a reasonable expectation that the host tools will be used, for purposes other than to prove that they can be used.
This target and host tools are intended for use by developers working on RISC-V software ecosystem.
The host tools must build and run reliably in CI (for all components that Rust's CI considers mandatory), though they may or may not pass tests.
Ack.
Building host tools for the target must not take substantially longer than building host tools for other targets, and should not substantially raise the maintenance burden of the CI infrastructure.
Ack.
The host tools must provide a substantively similar experience as on other targets, subject to reasonable target limitations.
Ack.
If the host tools for the platform would normally be expected to be signed or equivalent (e.g. if running unsigned binaries or similar involves a "developer mode" or an additional prompt), it must be possible for the Rust project's automated builds to apply the appropriate signature process, without any manual intervention by either Rust developers, target maintainers, or a third party. This process must meet the approval of the infrastructure team.
Works without a signature.
Providing host tools does not exempt a target from requirements to support cross-compilation if at all possible.
Some crates may need update. Working in progress.
All requirements for tier 2 apply.
Ack.
Mentors or Reviewers
If you have a reviewer or mentor in mind for this work, mention them here. You can put your own name here if you are planning to mentor the work.
Process
The main points of the Major Change Process are as follows:
- File an issue describing the proposal.
- A compiler team member who is knowledgeable in the area can second by writing
@rustbot second
or kickoff a team FCP with@rfcbot fcp $RESOLUTION
.- Refer to Proposals, Approvals and Stabilization docs for when a second is sufficient, or when a full team FCP is required.
- Once an MCP is seconded, the Final Comment Period begins.
- Final Comment Period lasts for 10 days after all outstanding concerns are solved.
- Outstanding concerns will block the Final Comment Period from finishing. Once all concerns are resolved, the 10 day countdown is restarted.
- If no concerns are raised after 10 days since the resolution of the last outstanding concern, the MCP is considered approved.
You can read more about Major Change Proposals on forge.