about summary refs log tree commit diff
path: root/src/doc/rustc
AgeCommit message (Collapse)AuthorLines
2025-10-03Rollup merge of #147268 - davidtwco:add-arm-maintainers-to-targets, r=lqdStuart Cook-17/+152
add arm-maintainers to various targets Add the ``@rust-lang/arm-maintainers`` team as maintainers to the following targets: - `aarch64-unknown-linux-gnu` - `aarch64-unknown-none`/`aarch64-unknown-none-softfloat` - `aarch64-unknown-uefi` - `armv7-unknown-linux-gnueabi`/`armv7-unknown-linux-gnueabihf` - `armv7a-none-eabi`/`armv7a-none-eabihf` - `armv7r-none-eabi`/`armv7r-none-abihf` - `armv8r-none-eabihf` - `thumbv7em-none-eabi`/`thumbv7em-none-eabihf` - `thumbv7m-none-eabi` - `thumbv8m.base-none-eabi` - `thumbv8m.main-none-eabi`/`thumbv8m.main-none-eabihf` cc `@thejpster`
2025-10-02add arm-maintainers to various targetsDavid Wood-17/+152
2025-10-01Fix typo in 'unfulfilled_lint_expectation' to pluralBrian Caswell-1/+1
2025-09-28Rollup merge of #147081 - moturus:fix_md, r=workingjubileeMatthias Krüger-1/+2
doc: fix a typo in platform-support.md Fix a typo.
2025-09-27Auto merge of #146636 - Mark-Simulacrum:bootstrap-bump, r=jieyouxubors-2/+2
Bump bootstrap compiler to 1.91 beta https://forge.rust-lang.org/release/process.html#default-branch-bootstrap-update-tuesday
2025-09-26doc: fix a typo in platform-support.mdU. Lasiotus-1/+2
2025-09-26Update CURRENT_RUSTC_VERSION post-bumpMark Rousskov-2/+2
2025-09-26Rollup merge of #146523 - thejpster:demote-armebv7r-targets, r=jackh726Matthias Krüger-3/+3
Demote both armebv7r-none-* targets. OK, slightly more controversial than https://github.com/rust-lang/rust/pull/146520 and https://github.com/rust-lang/rust/pull/146522 - I'd like to drop the bare-metal **big-endian** Armv7-R targets down to Tier 3. The reason is simple - we cannot test them in https://github.com/rust-embedded/cortex-ar/. This because QEMU support for Big Endian Armv7-R is broken. I tried quite hard, but all the strings I printed with semihosting came out byte swapped (or "etybawa depp") because of how QEMU kludges the access to memory in big-endian mode. The target also has only a single maintainer. Although, if ````@chrisnc```` wants to put up a case for keeping it at Tier 2 though, I'm happy to hear it! This PR wil be rebased once https://github.com/rust-lang/rust/pull/146419 completes the queue.
2025-09-26Rollup merge of #146453 - thejpster:arm-linux-docs, r=petrochenkovMatthias Krüger-4/+234
Add general arm-linux.md platform doc. Adds a new page that covers all 32-bit Arm Linux systems. This means that we can reduce the amount of information required in the target specific pages to just the Tier level, the maintainer, and any specific details for that target. I have no changed those pages yet, though. Let's start with this.
2025-09-25Auto merge of #147037 - matthiaskrgr:rollup-xtgqzuu, r=matthiaskrgrbors-0/+28
Rollup of 8 pull requests Successful merges: - rust-lang/rust#116882 (rustdoc: hide `#[repr]` if it isn't part of the public ABI) - rust-lang/rust#135771 ([rustdoc] Add support for associated items in "jump to def" feature) - rust-lang/rust#141032 (avoid violating `slice::from_raw_parts` safety contract in `Vec::extract_if`) - rust-lang/rust#142401 (Add proper name mangling for pattern types) - rust-lang/rust#146293 (feat: non-panicking `Vec::try_remove`) - rust-lang/rust#146859 (BTreeMap: Don't leak allocators when initializing nodes) - rust-lang/rust#146924 (Add doc for `NonZero*` const creation) - rust-lang/rust#146933 (Make `render_example_with_highlighting` return an `impl fmt::Display`) r? `@ghost` `@rustbot` modify labels: rollup
2025-09-25Rollup merge of #142401 - oli-obk:pattern-mango, r=petrochenkovMatthias Krüger-0/+28
Add proper name mangling for pattern types requires adding demangler support first https://github.com/rust-lang/rustc-demangle/pull/81 needed for https://github.com/rust-lang/rust/pull/136006#discussion_r2139792593 as otherwise we will have symbol collisions
2025-09-25Rollup merge of #145973 - vexide:vex-std, r=tgross35Stuart Cook-8/+18
Add `std` support for `armv7a-vex-v5` This PR adds standard library support for the VEX V5 Brain (`armv7a-vex-v5` target). It is more-or-less an updated version of the library-side work done in rust-lang/rust#131530. This was a joint effort between me, `@lewisfm,` `@max-niederman,` `@Gavin-Niederman` and several other members of the [`vexide` project](https://github.com/vexide/). ## Background VEXos is a fairly unconventional operating system, with user code running in a restricted enviornment with regards to I/O capabilities and whatnot. As such, several OS-dependent APIs are unsupported or have partial support (such as `std::net`, `std::process`, and most of `std::thread`). A more comprehensive list of what does or doesn't work is outlined in the [updated target documentation](https://github.com/vexide/rust/blob/vex-std/src/doc/rustc/src/platform-support/armv7a-vex-v5.md). Despite these limitations, we believe that `libstd` support on this target still has value to users, especially given the popular use of this hardware for educational purposes. For some previous discussion on this matter, see [this comment](https://github.com/rust-lang/rust/pull/131530#issuecomment-2432856841). ## SDK Linkage VEXos doesn't really ship with an official `libc` or POSIX-style platform API (and though it does port newlib, these are stubbed on top of the underlying SDK). Instead, VEX provides their own SDK for calling platform APIs. Their official SDK is kept proprietary (with public headers), though open-source implementations exist. Following the precedent of the `armv6k-nintendo-3ds` team's work in rust-lang/rust#95897, we've opted not to directly link `libstd` to any SDK with the expectation that users will provide their own with one of the following options: - [`vex-sdk-download`](https://github.com/vexide/vex-sdk/tree/main/packages/vex-sdk-download), which downloads an official proprietary SDK from VEX using a build script. - [`vex-sdk-jumptable`](https://crates.io/crates/vex-sdk-jumptable), which is a compatible, open-source reimplementation of the SDK using firmware jumps. - [`vex-sdk-pros`](https://github.com/vexide/vex-sdk/tree/main/packages/vex-sdk-pros), which uses the [PROS kernel](https://github.com/purduesigbots/pros) as a provider for SDK functions. - Linking their own implementation or stubbing the functions required by libstd. The `vex-sdk` crate used in the VEXos PAL provides `libc`-style FFI bindings for any compatible system library, so any of these options *should* work fine. A functional demo project using `vex-sdk-download` can be found [here](https://github.com/vexide/armv7a-vex-v5-demo/tree/main). ## Future Work This PR implements virtually everything we are currently able to implement given the current capabilities of the platform. The exception to this is file directory enumeration, though the implementation of that is sufficiently [gross enough](https://github.com/vexide/vexide/blob/c6c5bad11e035cf4e51d429dca7e427210185ed4/packages/vexide-core/src/fs/mod.rs#L987) to drive us away from supporting this officially. Additionally, I have a working branch implementing the `panic_unwind` runtime for this target, which is something that would be nice to see in the future, though given the volume of compiler changes i've deemed it out-of-scope for this PR.
2025-09-24std: add support for armv7a-vex-v5 targetTropical-8/+18
Co-authored-by: Lewis McClelland <lewis@lewismcclelland.me>
2025-09-23Rollup merge of #146827 - foxtran:doc/linker-plugin-lto, r=nnethercoteMatthias Krüger-2/+5
Linker-plugin-based LTO: update list of good combinations (inc. beta + nightly) This PR updates the list of good combinations of Rust toolchains and LLVM releases for linker-plugin-based LTO Related to first question in https://users.rust-lang.org/t/questions-regarding-linker-plugin-based-lto/134070
2025-09-23Add proper name mangling for pattern typesOli Scherer-0/+28
2025-09-23Auto merge of #146317 - saethlin:panic=immediate-abort, r=nnethercotebors-0/+2
Add panic=immediate-abort MCP: https://github.com/rust-lang/compiler-team/issues/909 This adds a new panic strategy, `-Cpanic=immediate-abort`. This panic strategy essentially just codifies use of `-Zbuild-std-features=panic_immediate_abort`. This PR is intended to just set up infrastructure, and while it will change how the compiler is invoked for users of the feature, there should be no other impacts. In many parts of the compiler, `PanicStrategy::ImmediateAbort` behaves just like `PanicStrategy::Abort`, because actually most parts of the compiler just mean to ask "can this unwind?" so I've added a helper function so we can say `sess.panic_strategy().unwinds()`. The panic and unwind strategies have some level of compatibility, which mostly means that we can pre-compile the sysroot with unwinding panics then the sysroot can be linked with aborting panics later. The immediate-abort strategy is all-or-nothing, enforced by `compiler/rustc_metadata/src/dependency_format.rs` and this is tested for in `tests/ui/panic-runtime/`. We could _technically_ be more compatible with the other panic strategies, but immediately-aborting panics primarily exist for users who want to eliminate all the code size responsible for the panic runtime. I'm open to other use cases if people want to present them, but not right now. This PR is already large. `-Cpanic=immediate-abort` sets both `cfg(panic = "immediate-abort")` _and_ `cfg(panic = "abort")`. bjorn3 pointed out that people may be checking for the abort cfg to ask if panics will unwind, and also the sysroot feature this is replacing used to require `-Cpanic=abort` so this seems like a good back-compat step. At least for the moment. Unclear if this is a good idea indefinitely. I can imagine this being confusing. The changes to the standard library attributes are purely mechanical. Apart from that, I removed an `unsafe` we haven't needed for a while since the `abort` intrinsic became safe, and I've added a helpful diagnostic for people trying to use the old feature. To test that `-Cpanic=immediate-abort` conflicts with other panic strategies, I've beefed up the core-stubs infrastructure a bit. There is now a separate attribute to set flags on it. I've added a test that this produces the desired codegen, called `tests/run-make-cargo/panic-immediate-abort-codegen/` and also a separate run-make-cargo test that checks that we can build a binary.
2025-09-21Add x86_64-unknown-motor (Motor OS) tier 3 targetU. Lasiotus-0/+46
Add the initial no-std Motor OS compiler target. Motor OS has been developed for several years in the open: https://github.com/moturus/motor-os. It has a more or less full implementation of Rust std library, as well as tokio/mio ports. Build instructions can be found here: https://github.com/moturus/motor-os/blob/main/docs/build.md. Signed-off-by: U. Lasiotus <lasiotus@motor-os.org>
2025-09-21Add panic=immediate-abortBen Kimock-0/+2
2025-09-21Update list of good combinations (inc. beta + nightly)Igor S. Gerasimov-2/+5
2025-09-19Document how to test with iOS/tvOS/watchOS/visionOS simulatorMads Marquart-38/+23
2025-09-17Rollup merge of #142807 - sourcefrog:failfast, r=dtolnayStuart Cook-0/+12
libtest: expose --fail-fast as an unstable command-line option This exposes the `fail_fast` option added in rust-lang/rust#105153 on the test harness command line, so that workflows that only want to know if any test fails can find out without waiting for everything to run. For example, cargo-mutants just needs to know if any tests fails. It only works with `-Zunstable-options`. Tracking issue: rust-lang/rust#142859
2025-09-14fix 404 linkLucas Baumann-1/+1
2025-09-14Drop armebv7r-none-eabi* to Tier 3Jonathan 'theJPster' Pallant-3/+3
These targets are not widely used, and are difficult to test because qemu-system-arm cannot emulate them.
2025-09-13Rollup merge of #146506 - mikysett:patch-1, r=UrgauJacob Pratt-1/+1
Fix small typo in check-cfg.md
2025-09-13Rollup merge of #146419 - thejpster:update-arm-target-docs, r=workingjubileeJacob Pratt-40/+264
Update the arm-* and aarch64-* platform docs. This PR updates some of the arm*-unknown-none target docs, and adds some missing target pages. ## aarch64-none-elf and aarch64-none-elf-softfloat The Rust Embedded Devices Working Group's Arm Team is added as a maintainer, and a target page is added. Links are added to the EDWG's support crates for this target. ## armv7a-none-eabi and armv7a-none-eabihf The Rust Embedded Devices Working Group's Arm Team is added as a maintainer, and a target page is added. Links are added to the EDWG's support crates for this target. ## armv7r-none-eabi and armv7r-none-eabihf The Rust Embedded Devices Working Group's Arm Team is added as a maintainer, and the target page is split from the Big Endian versions. Links are added to the EDWG's support crates for this target. ## armebv7r-none-eabi and armveb7r-none-eabihf The target page is split from the Little Endian versions. No change in maintainers. I have agreement to add EDWG/T-Arm as maintainers, which was voted upon in [their repo](https://github.com/rust-embedded/wg/issues/851).
2025-09-13Note that these targets are bare-metal.Jonathan 'theJPster' Pallant-13/+25
This is important to note, as it affects how easy it is to build a binary, and that `#![no_std]` is mandatory. A different PR should probably add this to all the other platform pages.
2025-09-13Fix small typo in check-cfg.mdMichele Sessa-1/+1
2025-09-12Fix two typos spotted in reviewJonathan 'theJPster' Pallant-4/+4
2025-09-12Re-order and re-work the aarch64-unknown-none platform support page.Jonathan 'theJPster' Pallant-60/+17
Removes a bunch of information that isn't, strictly speaking, target specific.
2025-09-12Remove bullet points from the target maintainer list for the arm bare-metal ↵Jonathan 'theJPster' Pallant-12/+12
targets
2025-09-12Add --print target-spec-json-schemaNoratrieb-0/+15
This schema is helpful for people writing custom target spec JSON. It can provide autocomplete in the editor, and also serves as documentation when there are documentation comments on the structs, as `schemars` will put them in the schema.
2025-09-11Insert missing word.Jonathan 'theJPster' Pallant-2/+2
2025-09-11Cleanups from review comments.Jonathan 'theJPster' Pallant-4/+3
2025-09-11Add general arm-linux.md platform doc.Jonathan 'theJPster' Pallant-4/+234
Covers all Arm Linux systems, and means that we can reduce the amount of information required in the target specific pages to just the Tier level, the maintainer, and any specific details for that target.
2025-09-10Update aarch64-unknown-none.md to include -softfloat tooJonathan 'theJPster' Pallant-2/+2
2025-09-10Add aarch64-unknown-none to SUMMARY.mdJonathan 'theJPster' Pallant-0/+1
2025-09-10Add missing links in platform-support.mdJonathan 'theJPster' Pallant-2/+2
2025-09-10Pick up changes from robamu that I missed.Jonathan 'theJPster' Pallant-18/+28
From https://github.com/thejpster/rust/pull/1.
2025-09-10Update the arm-* and aarch64-* platform docs.Jonathan 'theJPster' Pallant-19/+264
The Rust Embedded Devices Working Group (wg-embedded) Arm Team (t-arm) agreed to listed as maintainers of: * aarch64-unknown-none * aarch64-unknown-none-softfloat * armv7a-none-eabi * armv7r-none-eabi * armv7r-none-eabihf The aarch64-unknown-none* target didn't have a page so I added it. wg-embedded t-arm did not want to take over: * armebv7r-none-eabi * armebv7r-none-eabihf So I gave them their own target page. The current maintainer remains.
2025-09-09Update the LoongArch target documentationWANG Rui-8/+11
This patch defines minimum CPU feature requirements, updates toolchain baseline, and streamlines maintainer list: - Specify double-precision floating-point and LSX as mandatory CPU features - Raise the minimum required binutils version to 2.42+, due to relocations introduced by the default medium code model - Remove outdated maintainers to reduce irrelevant notifications
2025-09-04Rollup merge of #145682 - dpaoliello:arm64tier1, r=jieyouxuJacob Pratt-5/+2
Promote aarch64-pc-windows-msvc to Tier 1 Per <https://github.com/rust-lang/rfcs/pull/3817> Tracking issue: <https://github.com/rust-lang/rust/issues/145671>
2025-09-04Rollup merge of #146112 - scrabsha:push-utkysktvulto, r=WaffleLapkinStuart Cook-1/+1
don't uppercase error messages
2025-09-03don't uppercase error messagesSasha Pourcelot-1/+1
a more general version of https://github.com/rust-lang/rust/pull/146080. after a bit of hacking in [`fluent.rs`](https://github.com/rust-lang/rust/blob/master/compiler/rustc_fluent_macro/src/fluent.rs), i discovered that i'm not the only one that is bad at following guidelines :sweat_smile:. this pr lowercases the first letter of all the error messages in the codebase. (i did not change things that are traditionally uppercased such as _MIR_, _ABI_ or _C_) i think it's reasonable to run a `@bors try` so all the test suite is checked, as i cannot run some of the tests on my machine. i double checked (and replaced manually) all the old error messages, but better be safe than sorry. in the future i will try to add a check in `x test tidy` that errors if an error message starts with an uppercase letter.
2025-09-02Add maintainer for VxWorksKartik Agarwala-0/+1
2025-08-29doc: Add `*-unknown-managarm-mlibc` documentationno92-0/+57
2025-08-27Rollup merge of #145904 - Kobzol:riscv-musl-platform-support, r=jieyouxuMatthias Krüger-1/+1
Move `riscv64-gc-unknown-linux-musl` from Tier 2 with Host tools to Tier 2 It is not shipped with host tools, so it was located in the wrong group. The musl target is [here](https://github.com/rust-lang/rust/blob/467c89cd0b1c579edc247808c35941677918d29d/src/ci/docker/host-x86_64/dist-various-2/Dockerfile#L126) - no host tools. Noticed in https://github.com/rust-lang/docker-rust/pull/247.
2025-08-26Rollup merge of #145888 - heiher:fix-platform-support-loong32, r=jieyouxuSamuel Tardieu-2/+2
platform-support: Fix LoongArch32 host column
2025-08-26Move `riscv64-gc-unknown-linux-musl` from Tier 2 with Host tools to Tier 2Jakub Beránek-1/+1
It is not shipped with host tools, so it was located in the wrong group.
2025-08-26platform-support: Fix LoongArch32 host columnWANG Rui-2/+2
2025-08-26Rollup merge of #145596 - lumiscosity:optimize-png-files, r=davidtwcoGuillaume Gomez-0/+0
Losslessly optimize PNG files Losslessly optimizes all of the PNG files in the repo. Done with: ``` oxipng -o max -a -s oxipng -o max --zopfli -a -s ```