What rust claims about FreeBSD support (as an example involved in picking languages)
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