RFC 2959: Promote aarch64-unknown-linux-gnu to tier 1

compiler (infra | target | release)

Summary

Promote the Arm aarch64-unknown-linux-gnu Rust target to Tier-1.

The next section provides a justification for the promotion.

Please note that the following are required next steps that should ideally emerge from ensuing discussions:

Motivation

The Arm aarch64-unknown-linux-gnu target is currently a Tier-2 Rust target, in accordance with the target tier policy articulated here.

In the last 2 quarters, very good progress has been made in understanding and filling the gaps that remain in the path to attaining Tier-1 status for this target.

As a direct result, those gaps have either already been filled or are very close to being filled.

As such, this RFC aims to:

Please note that the narrative here doesn't always match the RFC template so some liberties may have been taken in the expression.

Please also note, by way of wilful disclosure, that this RFC's author is an employee of Arm.

Guide-level explanation

  1. In essence, the target tier policy for a Tier-1 target aims to obtain the following technical and tangible assurances:

    a. The Rust compiler and compiler tests must all build and pass reliably for the target in question.

    b. All necessary supporting infrastructure, including dedicated hardware, to build and run the Rust compiler and compiler tests reliably must be available openly.

    c. There must exist a robust and convenient CI integration for the target in question.

  2. In addition, the target tier policy for a Tier-1 target aims to obtain the following strategic assurances:

    a. The long term viability of the existence of a target specific ecosystem should be clear.

    b. The long term viability of supporting the target should be clear.

    c. The target must have substantial and widespread interest within the Rust developer community.

    d. The target must serve the interests of multiple production users of Rust across multiple organizations or projects.

  3. Finally, the target tier policy for a Tier-1 target aims to obtain the following approvals:

    a. An approval from the Compiler Team that Tier-1 target requirements have been met.

    b. An approval from the Infrastructure Team that the target in question may be integrated into CI.

    c. An approval from the Release Team that supporting the target in question is viable in the long term.

The following section details how points 1 and 2 of the above assurances have either already been met or are close to being met.

As mentioned in the summary, items in 3 above are required next steps.

Reference-level explanation

1.a. The Rust compiler and compiler tests must all build and pass reliably for the target in question.

1.b. All necessary supporting infrastructure, including dedicated hardware, to build and run the Rust compiler and compiler tests reliably must be available openly.

1.c. There must exist a robust and convenient CI integration for the target in question.

2.a. The long term viability of the existence of a target specific ecosystem should be clear.

2.b. The long term viability of supporting the target should be clear.

2.c. The target must have substantial and widespread interest within the Rust developer community.

2.d. The target must serve the interests of multiple production users of Rust across multiple organizations or projects.

Points 3.a through 3.c from the Guide-level explanation section above are addressed in the Unresolved questions section below.

Drawbacks

There is no drawback envisioned in promoting the Rust aarch64-unknown-linux-gnu to Tier-1.

Rationale and alternatives

Given the narrative above, it is the opinion of the author that it would now be tactically sound to promote aarch64-unknown-linux-gnu to Tier-1.

As such there is no substantially robust reason to not proceed with promoting aarch64-unknown-linux-gnu to Tier-1.

Prior art

However, as emphasised in the narrative thus far, the aarch64-unknown-linux-gnu target now exhibits the properties required by a Tier-1 target as per the target tier policy.

Unresolved questions

No unresolved questions or issues remain.

Future possibilities

As the first non i686 and non x86_64 target to be considered for promotion to Tier-1, the aarch64-unknown-linux-gnu target will likely set a precedent for other AArch64 and non-AArch64 targets to follow in the future.