-
Notifications
You must be signed in to change notification settings - Fork 12.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"Legacy" tier 2 targets have misplaced or absent maintainer docs #113739
Comments
I can volunteer as a maintainer for at least these three.
It's worth noting that for many of these there's not a clean place in the documentation to mark a target maintainer. |
There is definitely a certain degree to which this issue is really about us needing to better organize our documentation and our "search for maintainers" is about finding our |
Related to this, I found a weird codegen issue on the |
Issue discussed during weekly T-compiler triage meeting on Zulip (notes). Feels like this topic will need a separate discussion, possibly involving other teams. So, leaving nominated for now to figure that out. |
From this earlier comment (but continuing it here since that seems more appropriate):
We (Arm) look at a few issues in that area, for example if we're tagged or if someone points them our way. However, we are not official maintainers of the embedded targets at the moment! That said, we care about them, so will be watching this with interest. Our day-to-day focus is |
Can confirm -- I'm having some trouble with the sparc64 ABI and I'm not sure whom to ping either. |
The Embedded Devices WG had a PR cleaning up the docs and adding themselves to the Cortex-M targets, but it got lost. I'll try and open it again. |
Would it be worth making some sort of blogpost, saying that we need people to volunteer as maintainers here and help write the docs for the target support page, or else targets will have to be downgraded to tier 3? |
Seems reasonable. I gave all the Cortex-M targets to the EDWG so they can be ticked off. |
The two "armebv7r-none-eabi(hf)? Bare Armv7-R, Big Endian" targets can be checked off as well. |
There is no target with "cortex-m" in its name or description so I'm afraid I don't know which targets you are talking about. |
sigh, yeah, Arm naming is fun.
|
Ah, I see, thanks. It seems we do have target maintainers listed, but it's an email address, which doesn't work well with our usual github-based workflows. Any chance of having a github handle or notification group to ping? |
Paging @adamgreig and @therealprof for that as I'm no longer in the WG. |
…unknown-linux-target-page, r=pietroalbini Add target page for riscv64gc-unknown-linux-gnu I was reading rust-lang#113739 and realized I knew most of the information necessary to create the `riscv64gc-unknown-linux-gnu` target page.
…unknown-linux-target-page, r=pietroalbini Add target page for riscv64gc-unknown-linux-gnu I was reading rust-lang#113739 and realized I knew most of the information necessary to create the `riscv64gc-unknown-linux-gnu` target page.
Rollup merge of rust-lang#127490 - ferrocene:hoverbear/add-riscv64gc-unknown-linux-target-page, r=pietroalbini Add target page for riscv64gc-unknown-linux-gnu I was reading rust-lang#113739 and realized I knew most of the information necessary to create the `riscv64gc-unknown-linux-gnu` target page.
…inux-target-page, r=pietroalbini Add target page for riscv64gc-unknown-linux-gnu I was reading rust-lang/rust#113739 and realized I knew most of the information necessary to create the `riscv64gc-unknown-linux-gnu` target page.
Location
This affects our platform support documentation.
It specifically affects targets added before the target tier policy was confirmed, and especially those that are tier 2.
Summary
It is widely expected that the existing tier 1 targets are of primary concern for the Rust Project in general. As I understand it, the current absence of formally documented maintainers for them is based on the belief we have a large enough surplus of "target maintainers" for them that we can expect these targets to be effectively supported by "whoever picks up the slack".
However, tier 2 targets are trickier. Many are more niche, harder to find and run code on, and require specialized developer knowledge. These realities are part of why we expect targets to have target maintainers. Yet we have several without any documented support because they predate the target tier policy. This has recently led to us being forced to respond to exigent circumstances by interrupting our usual support because they implicitly violated the other side of the target support "contract": they impeded development of all the rest of our targets to a degree we cannot accept, with little other recourse.
This is a very bad situation. It is also a bad situation we can attempt to reduce recurrence of. Easily, in fact. Some of our targets have informally known target maintainers but we just... haven't written them down. Actually writing down who is invested in these targets in the same way other maintainers are listed would help reduce the need for guessing when responding in future high-priority situations where failure to act could stall-out work.
We should formally document target maintainers for the following tier 2 targets on the now-common platform support documentation pages. Technically this concern applies somewhat even to tier 3 targets as well but those should be handled in a separate issue as they are quite literally a separate priority level, and because tier 2 targets are unique in having potential to move to both tier 1 and tier 3. We may need to reduce our asserted support level for some of these targets. We also might like to raise our support level for others, without having to maintain our existing assumptions of having essentially infinite "slack" for them.
Tier 2 with Host Tools
aarch64-apple-darwin
: Arm64 macOS (11.0+, Big Sur+)aarch64-pc-windows-msvc
: Arm64 Windows MSVCaarch64-unknown-linux-musl
: Arm64 Linux with musl libcarm-unknown-linux-gnueabi
: Armv6 Linux (kernel 3.2, glibc 2.17)arm-unknown-linux-gnueabihf
: Armv6 Linux, hardfloat (kernel 3.2, glibc 2.17)armv7-unknown-linux-gnueabihf
: Armv7-A Linux, hardfloat (kernel 3.2, glibc 2.17)powerpc-unknown-linux-gnu
: PowerPC Linux (kernel 3.2, glibc 2.17)powerpc64-unknown-linux-gnu
: PPC64 Linux (kernel 3.2, glibc 2.17)powerpc64le-unknown-linux-gnu
: PPC64LE Linux (kernel 3.10, glibc 2.17)riscv64gc-unknown-linux-gnu
: RISC-V Linux (kernel 4.20, glibc 2.29)s390x-unknown-linux-gnu
: S390x Linux (kernel 3.2, glibc 2.17)x86_64-unknown-freebsd
: 64-bit FreeBSDx86_64-unknown-illumos
: illumosx86_64-unknown-linux-musl
: 64-bit Linux with musl libcTier 2
aarch64-apple-ios
: Arm64 iOSaarch64-unknown-none-softfloat
: Bare Arm64, softfloataarch64-unknown-none
: Bare Arm64, hardfloatarm-unknown-linux-musleabi
: Armv6 Linux with musl libcarm-unknown-linux-musleabihf
: Armv6 Linux with musl libc, hardfloatarmebv7r-none-eabi
: Bare Armv7-R, Big Endianarmebv7r-none-eabihf
: Bare Armv7-R, Big Endian, hardfloatarmv5te-unknown-linux-gnueabi
: Armv5TE Linux (kernel 4.4, glibc 2.23)armv5te-unknown-linux-musleabi
: Armv5TE Linux with musl libcarmv7-unknown-linux-gnueabi
: Armv7-A Linux (kernel 4.15, glibc 2.27)armv7-unknown-linux-musleabi
: Armv7-A Linux with musl libcarmv7-unknown-linux-musleabihf
: Armv7-A Linux with musl libc, hardfloatarmv7a-none-eabi
: Bare Armv7-Aarmv7r-none-eabi
: Bare Armv7-Rarmv7r-none-eabihf
: Bare Armv7-R, hardfloatasmjs-unknown-emscripten
: asm.js via Emscripteni586-pc-windows-msvc
: 32-bit Windows w/o SSEi586-unknown-linux-gnu
: 32-bit Linux w/o SSE (kernel 3.2, glibc 2.17)i586-unknown-linux-musl
: 32-bit Linux w/o SSE, musl libci686-unknown-freebsd
: 32-bit FreeBSDi686-unknown-linux-musl
: 32-bit Linux with musl libcriscv32i-unknown-none-elf
: Bare RISC-V (RV32I ISA)riscv32imac-unknown-none-elf
: Bare RISC-V (RV32IMAC ISA)riscv32imc-unknown-none-elf
: Bare RISC-V (RV32IMC ISA)riscv64gc-unknown-none-elf
: Bare RISC-V (RV64IMAFDC ISA)riscv64imac-unknown-none-elf
: Bare RISC-V (RV64IMAC ISA)sparc64-unknown-linux-gnu
: SPARC Linux (kernel 4.4, glibc 2.23)sparcv9-sun-solaris
: SPARC Solaris 10/11, illumosthumbv6m-none-eabi
: Bare Armv6-Mthumbv7em-none-eabi
: Bare Armv7E-Mthumbv7em-none-eabihf
: Bare ArmV7E-M, hardfloatthumbv7m-none-eabi
: Bare Armv7-Mthumbv7neon-unknown-linux-gnueabihf
: Thumb2-mode Armv7-A Linux with NEON (kernel 4.4, glibc 2.23)thumbv8m.base-none-eabi
: Bare Armv8-M Baselinethumbv8m.main-none-eabi
: Bare Armv8-M Mainlinethumbv8m.main-none-eabihf
: Bare Armv8-M Mainline, hardfloatwasm32-unknown-emscripten
: WebAssembly via Emscriptenwasm32-unknown-unknown
: WebAssemblywasm32-wasi
: WebAssembly with WASIx86_64-apple-ios
: 64-bit x86 iOSx86_64-pc-solaris
: 64-bit Solaris 10/11, illumosx86_64-unknown-linux-gnux32
: 64-bit Linux (x32 ABI) (kernel 4.15, glibc 2.27)x86_64-unknown-redox
: Redox OSThe text was updated successfully, but these errors were encountered: