Project RP004: Support 64-bit RISC-V Linux port of Rust to Tier-1
Bidding Starts: Friday, December 8, 2023
Bidding Ends: Friday, January 26, 2024
Contract start date:
Summary:
Proposal:
- The Rust language community has a Target Tier Policy that outlines expectations from Rust language ports to different platforms.
- A Tier-1 target gets the highest quality assurance scrutiny. Achieving Tier-1 target status makes the Rust port maximally hygienic for use in miscellaneous product ecosystems.
- At present, the 64-bit RISC-V Linux port of Rust (represented by the riscv64gc-unknown-linux-gnu Rust target triplet) is deemed a Tier-2 target.
- The proposal is to take it to Tier-1 (“Guaranteed to work”) status on Linux, just like the 64 bit x86_64 (x86-64-unknown-linux-gnu) and 64-bit Arm (aarch64-unknown-linux-gnu) target triples.
- The proposal covers both the cross-compilation as well as hosted-compilation target options.
Milestones to Deliver:
- Milestone 1: CI Integration and Gap-Analysis
- The Rust-lang test suite and associated github runners must be extended to work with the following platform targets:
- The qemu simulator’s qemu-system-riscv64 target running on an x86_64 or AArch64 Linux host
- The Hifive silicon platform
- On the basis of complete Rust lang test suite runs, a report outlining failing tests, failure analysis, gap analysis (eg, missing compiler features etc) must be provided.
- The report and the ensuing discussions will help shape the next milestone. At this stage, any serious blockers that hinder subsequent milestones must be clearly identified.
- Milestone 2: 100% pass rate for the Rust language test suite
- All tests in the test suite should pass. This will involve verification of passing test functionality, fixing of failing tests where possible and provision of suitable justification when not.
- Milestone 3: Promotion of the riscv64gc-unknown-linux-gnu target triple to Tier-1 status
- All the documented expectations from a Tier-1 target must be met
- All relevant interactions with the open Rust lang community representatives must be done
- Basically, the ideal outcome of this milestone should be an announcement by the Rust lang project about this triple having achieved Tier-1 as a part of a release, or a robust understanding of what needs to be done to get there
The system SW engineer must follow through on the outlined Tier-1 requirements. This must involve raising an RFC and getting it reviewed with the Rust lang community to ensure that all relevant stakeholders sign-off on the requirements in a transparent manner. Use the successful AArch64 Linux RFC as a guideline.