Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Sep 2024 22:32:05 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        freebsd-hackers <freebsd-hackers@freebsd.org>
Subject:   Re: What rust claims about FreeBSD support (as an example involved in picking languages)
Message-ID:  <9F4DBD51-E706-44BD-A243-C08E6535D80D@yahoo.com>
In-Reply-To: <EA351078-5A72-4B9E-8CFA-7A321EE0D906@yahoo.com>
References:  <EA351078-5A72-4B9E-8CFA-7A321EE0D906@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
[I had not read the rust Tier information prior to what lead
to the use of the material in the original note. I continued
to read after my note and I ran into Tier 2 and Tier 3
criteria relative to PR communication that I'm adding this
time.]

On Sep 10, 2024, at 20:22, Mark Millard <marklmi@yahoo.com> wrote:

> [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.]
>=20
>=20
> Using rust as an example to illustrate a more general
> issue that might be involved in picking languages . . .
>=20
> 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)
>=20
>=20
> Tier 2 with Host Tools:
>=20
> x86_64-unknown-freebsd 64-bit FreeBSD
>=20
>=20
> Tier 3 with std and host checkmarked (=E2=9C=93):
>=20
> aarch64-unknown-freebsd ARM64   FreeBSD
> armv7-unknown-freebsd Armv7-A FreeBSD
> powerpc64-unknown-freebsd PPC64   FreeBSD (ELFv1 and ELFv2)
>=20
>=20
> Tier 3 with no checkmarks (nor * nor ? for std):
>=20
> powerpc64le-unknown-freebsd PPC64LE FreeBSD
> riscv64gc-unknown-freebsd RISC-V  FreeBSD
>=20
>=20
> Tier 2 with Host tools is described via:
>=20
> 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!
>=20
> 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.
>=20
> 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.
>=20
> 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
>=20
>=20
> Tier 3 is described via:
>=20
> 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.
>=20
> The std column in the table below has the following meanings:
>    =E2=80=A2 =E2=9C=93 indicates the full standard library is =
available.
>    =E2=80=A2 * indicates the target only supports no_std development.
>    =E2=80=A2 ? indicates the standard library support is unknown or a =
work-in-progress.
>=20
> 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.
>=20
> The host column indicates whether the codebase includes support for =
building host tools.
> END QUOTE
>=20
>=20
> I've not looked up the status of any other languages
> but I think the above may illustrate the considerations
> involved sufficiently.
>=20
> 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.
>=20
> 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 ?

The following quotes are from:

https://doc.rust-lang.org/rustc/target-tier-policy.html


Tier 3 context's note on PR communication relative to maintaining
the Tier 3 target:

QUOTE
    =E2=80=A2 Tier 3 targets must not impose burden on the authors of =
pull requests, or other developers in the community, to maintain the =
target. In particular, do not post comments (automated or manual) on a =
PR that derail or suggest a block on the PR based on a tier 3 target. Do =
not send automated messages or notifications (via any medium, including =
via @) to a PR author or others involved with a PR regarding a tier 3 =
target, unless they have opted into such messages.

        =E2=80=A2 Backlinks such as those generated by the issue/PR =
tracker when linking to an issue or PR are not considered a violation of =
this policy, within reason. However, such messages (even on a separate =
repository) must not generate notifications to anyone involved with a PR =
who has not requested such notifications.
END QUOTE

Sounds like aarch64-unknown-freebsd being rust Tier 3 might have
more support issues than I was originally thinking from what I'd
read earlier, given the constraints on some Tier 3 communication.


Tier 2 (with or without Host Tools) context's note on PR
communication relative to ensuring that tests pass for
the Tier 2 target:

QUOTE
    =E2=80=A2 Tier 2 targets must not impose burden on the authors of =
pull requests, or other developers in the community, to ensure that =
tests pass for the target. In particular, do not post comments =
(automated or manual) on a PR that derail or suggest a block on the PR =
based on tests failing for the target. Do not send automated messages or =
notifications (via any medium, including via @) to a PR author or others =
involved with a PR regarding the PR breaking tests on a tier 2 target, =
unless they have opted into such messages.

        =E2=80=A2 Backlinks such as those generated by the issue/PR =
tracker when linking to an issue or PR are not considered a violation of =
this policy, within reason. However, such messages (even on a separate =
repository) must not generate notifications to anyone involved with a PR =
who has not requested such notifications.
END QUOTE

Sounds like x86_64-unknown-freebsd being rust Tier 2 with Host
Tools might have more support issues than I was originally
thinking from what I'd read earlier, given the constraints on
some Tier 2 communication relative to passing tests.



=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9F4DBD51-E706-44BD-A243-C08E6535D80D>