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
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
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.