What rust claims about FreeBSD support (as an example involved in picking languages)

From: Mark Millard <marklmi_at_yahoo.com>
Date: Wed, 11 Sep 2024 03:22:08 UTC
[Please view this as just illustrating a technical
issue involved, not as some sort of objection on my
part to various ideas that have been expressed.]


Using rust as an example to illustrate a more general
issue that might be involved in picking languages . . .

https://doc.rust-lang.org/nightly/rustc/platform-support.html reports
its support tier structure relative to FreeBSD as:
(for 32-bit I'll only list armv7 information)


Tier 2 with Host Tools:

x86_64-unknown-freebsd	64-bit FreeBSD


Tier 3 with std and host checkmarked (✓):

aarch64-unknown-freebsd		ARM64   FreeBSD
armv7-unknown-freebsd		Armv7-A FreeBSD
powerpc64-unknown-freebsd	PPC64   FreeBSD (ELFv1 and ELFv2)


Tier 3 with no checkmarks (nor * nor ? for std):

powerpc64le-unknown-freebsd	PPC64LE FreeBSD
riscv64gc-unknown-freebsd	RISC-V  FreeBSD


Tier 2 with Host tools is described via:

QUOTE
Tier 2 targets can be thought of as "guaranteed to build". The Rust project builds official binary releases of the standard library (or, in some cases, only the core library) for each tier 2 target, and automated builds ensure that each tier 2 target can be used as build target after each change. Automated tests are not always run so it's not guaranteed to produce a working build, but tier 2 targets often work to quite a good degree and patches are always welcome!

Tier 2 target-specific code is not closely scrutinized by Rust team(s) when modifications are made. Bugs are possible in all code, but the level of quality control for these targets is likely to be lower. See library team policy for details on the review practices for standard library code.

Tier 2 targets with host tools additionally support running tools like rustc and cargo natively on the target, and automated builds ensure that the host tools build as well. This allows the target to be used as a development platform, not just a compilation target. For the full requirements, see Tier 2 with Host Tools in the Target Tier Policy.

All tier 2 targets with host tools support the full standard library.
NOTE: The rust-docs component is not usually built for tier 2 targets, so Rustup may install the documentation for a similar tier 1 target instead.
END QUOTE


Tier 3 is described via:

QUOTE
Tier 3 targets are those which the Rust codebase has support for, but which the Rust project does not build or test automatically, so they may or may not work. Official builds are not available. For the full requirements, see Tier 3 target policy in the Target Tier Policy.

The std column in the table below has the following meanings:
    • ✓ indicates the full standard library is available.
    • * indicates the target only supports no_std development.
    • ? indicates the standard library support is unknown or a work-in-progress.

Tier 3 target-specific code is not closely scrutinized by Rust team(s) when modifications are made. Bugs are possible in all code, but the level of quality control for these targets is likely to be lower. See library team policy for details on the review practices for standard library code.

The host column indicates whether the codebase includes support for building host tools.
END QUOTE


I've not looked up the status of any other languages
but I think the above may illustrate the considerations
involved sufficiently.

Some languages may be fairly easy to self support. Others
might require upstream to have some sufficient degree of
support before it would be viable overall/long-term for
FreeBSD to depend on it across a range of platforms,
especially FreeBSD Tier 1 platforms.

An issue for my example (rust) is that as long as FreeBSD
has aarch64 as Tier 1 in FreeBSD terms, might it be that
the rust Tier 3 status of aarch64-unknown-freebsd could
be a problem? Can FreeBSD cover the gap or lead rust to
change the rust Tier 3 status to, say, rust Tier 2 with
Host Tools for aarch64, matching x86_64-unknown-freebsd ?

===
Mark Millard
marklmi at yahoo.com