about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2025-06-13doc: mention that intrinsics should not be called in user codeSasha Pourcelot-0/+4
Intrinsic functions declared in `std::intrinsics` are an implementation detail and should not be called directly by the user. The compiler explicitly warns against their use in user code: ``` warning: the feature `core_intrinsics` is internal to the compiler or standard library --> src/lib.rs:1:12 | 1 | #![feature(core_intrinsics)] | ^^^^^^^^^^^^^^^ | = note: using it is strongly discouraged = note: `#[warn(internal_features)]` on by default ``` [**Playground link**] This PR documents what the compiler warning says: these intrinsics should not be called outside the standard library. [**Playground link**]: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2024&gist=1c893b0698291f550bbdde0151fd221b
2025-06-13Bring back EMPTY item tree deduplicationLukas Wirth-16/+37
2025-06-13collect delayed lints in hir_crate_itemsJana Dönszelmann-9/+81
2025-06-13Add modern AVR mcus like avr128db28 and attiny3224Tom Vijlbrief-0/+46
2025-06-13Auto merge of #142442 - matthiaskrgr:rollup-6yodjfx, r=matthiaskrgrbors-311/+1094
Rollup of 10 pull requests Successful merges: - rust-lang/rust#134847 (Implement asymmetrical precedence for closures and jumps) - rust-lang/rust#141491 (Delegate `<CStr as Debug>` to `ByteStr`) - rust-lang/rust#141770 (Merge `Cfg::render_long_html` and `Cfg::render_long_plain` methods common code) - rust-lang/rust#142069 (Introduce `-Zmacro-stats`) - rust-lang/rust#142158 (Tracking the old name of renamed unstable library features) - rust-lang/rust#142221 ([AIX] strip underlying xcoff object) - rust-lang/rust#142340 (miri: we can use apfloat's mul_add now) - rust-lang/rust#142379 (Add bootstrap option to compile a tool with features) - rust-lang/rust#142410 (intrinsics: rename min_align_of to align_of) - rust-lang/rust#142413 (rustc-dev-guide subtree update) r? `@ghost` `@rustbot` modify labels: rollup
2025-06-13Merge pull request #19990 from Veykril/push-zkvrlrotmuzrLukas Wirth-8/+76
Generate annotations for macro defined items if their name is in the input
2025-06-13Generate annotations for macro defined items if their name is in the inputLukas Wirth-8/+76
2025-06-13Merge pull request #19982 from Veykril/push-uptnmqtlylsxLukas Wirth-755/+558
Simplify and optimize `ItemTree`
2025-06-13Remove unnecessary item tree query callsLukas Wirth-49/+47
2025-06-13Move COERCE_CONTAINER_TO_ANY to nursery, as it has FPsPhilipp Krones-1/+1
2025-06-13Move COERCE_CONTAINER_TO_ANY to nursery, as it has FPsPhilipp Krones-1/+1
2025-06-13Add failing testsJonathan Brouwer-3/+175
2025-06-13Windows: make read_dir stop iterating on errorChris Denton-0/+1
2025-06-13Merge commit '4ef75291b5dd6739212f1f61666d19d4e086690d' into ↵Philipp Krones-668/+4109
clippy-subtree-update
2025-06-13Merge commit '4ef75291b5dd6739212f1f61666d19d4e086690d' into ↵Philipp Krones-668/+4109
clippy-subtree-update
2025-06-13Remove "intermittent" wording from `ReadDir`Chris Denton-3/+2
2025-06-13tweak runtime/const macro managementRalf Jung-44/+49
2025-06-13Rustup (#15044)Philipp Krones-116/+128
r? @ghost changelog: none
2025-06-13Merge pull request #19989 from Veykril/push-xrqwoukkltnmLukas Wirth-294/+396
`cargo update` and `cargo upgrade`
2025-06-13Bump nightly version -> 2025-06-13Philipp Krones-2/+2
2025-06-13Merge remote-tracking branch 'upstream/master' into rustupPhilipp Krones-462/+3363
2025-06-13`cargo upgrade`Lukas Wirth-88/+189
2025-06-13Require generic params for const generic paramsOli Scherer-40/+37
2025-06-13`cargo update`Lukas Wirth-206/+207
Updating adler2 v2.0.0 -> v2.0.1 Updating anyhow v1.0.97 -> v1.0.98 Updating bitflags v2.9.0 -> v2.9.1 Updating borsh v1.5.5 -> v1.5.7 Updating boxcar v0.2.12 -> v0.2.13 Updating camino v1.1.9 -> v1.1.10 Updating cc v1.2.16 -> v1.2.26 Updating cfg-if v1.0.0 -> v1.0.1 Updating flate2 v1.1.1 -> v1.1.2 Updating foldhash v0.1.4 -> v0.1.5 Updating getrandom v0.2.15 -> v0.2.16 Updating hashbrown v0.15.2 -> v0.15.4 Updating hermit-abi v0.3.9 -> v0.5.2 Updating icu_collections v1.5.0 -> v2.0.0 Adding icu_locale_core v2.0.0 Removing icu_locid v1.5.0 Removing icu_locid_transform v1.5.0 Removing icu_locid_transform_data v1.5.0 Updating icu_normalizer v1.5.0 -> v2.0.0 Updating icu_normalizer_data v1.5.0 -> v2.0.0 Updating icu_properties v1.5.1 -> v2.0.1 Updating icu_properties_data v1.5.0 -> v2.0.1 Updating icu_provider v1.5.0 -> v2.0.0 Removing icu_provider_macros v1.5.0 Updating idna_adapter v1.2.0 -> v1.2.1 Updating kqueue v1.0.8 -> v1.1.1 Updating libloading v0.8.7 -> v0.8.8 Updating libmimalloc-sys v0.1.40 -> v0.1.42 Updating litemap v0.7.5 -> v0.8.0 Updating lock_api v0.4.12 -> v0.4.13 Updating log v0.4.26 -> v0.4.27 Updating memchr v2.7.4 -> v2.7.5 Updating mimalloc v0.1.44 -> v0.1.46 Updating miniz_oxide v0.8.5 -> v0.8.9 Updating mio v1.0.3 -> v1.0.4 Updating num_cpus v1.16.0 -> v1.17.0 Updating once_cell v1.21.1 -> v1.21.3 Updating parking_lot v0.12.3 -> v0.12.4 Updating parking_lot_core v0.9.10 -> v0.9.11 Updating portable-atomic v1.11.0 -> v1.11.1 Adding potential_utf v0.1.2 Updating proc-macro2 v1.0.94 -> v1.0.95 Updating redox_syscall v0.5.10 -> v0.5.13 Updating rustc-demangle v0.1.24 -> v0.1.25 Updating rustc_apfloat v0.2.2+llvm-462a31f5a5ab -> v0.2.3+llvm-462a31f5a5ab Updating serde_spanned v0.6.8 -> v0.6.9 Updating smallvec v1.14.0 -> v1.15.1 Updating syn v2.0.100 -> v2.0.103 Updating synstructure v0.13.1 -> v0.13.2 Updating tenthash v1.0.0 -> v1.1.0 Updating thread_local v1.1.8 -> v1.1.9 Updating time v0.3.40 -> v0.3.41 Updating time-macros v0.2.21 -> v0.2.22 Updating tinystr v0.7.6 -> v0.8.1 Updating toml v0.8.20 -> v0.8.23 Updating toml_datetime v0.6.8 -> v0.6.11 Updating toml_edit v0.22.24 -> v0.22.27 Adding toml_write v0.1.2 Updating tracing-attributes v0.1.28 -> v0.1.29 Updating tracing-core v0.1.33 -> v0.1.34 Removing utf16_iter v1.0.5 Updating wasi v0.11.0+wasi-snapshot-preview1 -> v0.11.1+wasi-snapshot-preview1 Updating windows v0.61.1 -> v0.61.3 Updating windows-core v0.61.0 -> v0.61.2 Updating windows-future v0.2.0 -> v0.2.1 Updating windows-link v0.1.1 -> v0.1.3 Updating windows-result v0.3.2 -> v0.3.4 Updating windows-strings v0.4.0 -> v0.4.2 Adding windows-sys v0.60.2 Updating windows-targets v0.53.0 -> v0.53.2 Adding windows-threading v0.1.0 Updating winnow v0.7.3 -> v0.7.11 Removing write16 v1.0.0 Updating writeable v0.5.5 -> v0.6.1 Updating yoke v0.7.5 -> v0.8.0 Updating yoke-derive v0.7.5 -> v0.8.0 Adding zerotrie v0.2.2 Updating zerovec v0.10.4 -> v0.11.2 Updating zerovec-derive v0.10.3 -> v0.11.1
2025-06-13Add test for temporary lifetime extension in `Self()` syntax.Mara Bos-1/+12
2025-06-13Add tests.Mara Bos-0/+44
2025-06-13Add comment.Mara Bos-0/+3
2025-06-13Update tests.Mara Bos-132/+69
2025-06-13Implement temporary lifetime extension for tuple ctors.Mara Bos-7/+11
2025-06-13Remove ast ids from item tree mod itemsLukas Wirth-161/+121
2025-06-13Update to LLVM 20.1.7dianqk-0/+0
2025-06-13Split mod items into small and big variantsLukas Wirth-66/+81
2025-06-13Store item tree visibilities in a thin vecLukas Wirth-2/+14
2025-06-13[PERF] Optimize 3rd heaviest func, (81b -> 10m) (#15043)Samuel Tardieu-2/+1
So this is funny, the query `tcx.module_children` was top 3 in most time consuming functions in Clippy, it was being called 24384 times in tokio. "Unacceptable!" I thought. Digging a bit around, turns out that `clippy::strlen_on_c_strings` was calling for `get_def_path` via `match_libc_symbol`. This query pretty-prints things and performs some analysis. Yes, we were running early lint checks to see if symbols were from `libc`. I don't really trust callgrind when it says I've turn 81 billion instructions into like 10 million. So I benchmarked this the good ol' "compiling 20 times without incr" method and it went from 0.31s-0.45s to 0.25s constistently. (Profiled, and "benchmarked") on tokio. What I can get behind is via `strlen_on_c_strings` changing from 31 million instructions into 76k. :tada: :partying_face: changelog: [`strlen_on_c_strings`]: Optimize it by 99.75%
2025-06-13Merge pull request #19988 from Kobzol/fix-label-linkLaurențiu Nicola-1/+1
Fix link to good first issues
2025-06-13Fix link to good first issuesJakub Beránek-1/+1
2025-06-13Eliminate `build.rs`-generated Aarch64 atomic macros (#951)qinghon-65/+75
Replace `build.rs` Rust generation with macros, using the unstable `${concat(...)}`. Fixes: https://github.com/rust-lang/compiler-builtins/issues/947
2025-06-13Auto merge of #142432 - matthiaskrgr:rollup-ziuls9y, r=matthiaskrgrbors-594/+907
Rollup of 6 pull requests Successful merges: - rust-lang/rust#138016 (Added `Clone` implementation for `ChunkBy`) - rust-lang/rust#141162 (refactor `AttributeGate` and `rustc_attr!` to emit notes during feature checking) - rust-lang/rust#141474 (Add `ParseMode::Diagnostic` and fix multiline spans in diagnostic attribute lints) - rust-lang/rust#141947 (Specify that "option-like" enums must be `#[repr(Rust)]` to be ABI-compatible with their non-1ZST field.) - rust-lang/rust#142252 (Improve clarity of `core::sync::atomic` docs about "Considerations" in regards to CAS operations) - rust-lang/rust#142337 (miri: add flag to suppress float non-determinism) r? `@ghost` `@rustbot` modify labels: rollup
2025-06-13Pre-install eslint in `mingw-check-tidy` DockerfileJakub Beránek-2/+4
2025-06-13Rollup merge of #142308 - tgross35:upgrade-library-object, r=Mark-SimulacrumMatthias Krüger-15/+12
Upgrade `object`, `addr2line`, and `unwinding` in the standard library Object: 0.37.0 is a semver-breaking release but the only breakage is in `elf::R_RISCV_GNU_*` and `pe::IMAGE_WEAK_EXTERN_*` constants, as well as Mach-O dyld. This API is not used by `std`, so we should be fine to upgrade. This new version also includes functionality for parsing Wasm object files that we may eventually like to make use of. Changelog: https://github.com/gimli-rs/object/blob/master/CHANGELOG.md#0370 Addr2line: 0.25.0 is a breaking change only because it upgrades the `gimli` version. It also includes a change to the `compiler-builtins` dependency that helps with [1]. Changelog: https://github.com/gimli-rs/addr2line/blob/master/CHANGELOG.md#0250-20250611 [1]: https://github.com/rust-lang/rust/issues/142265
2025-06-13Rollup merge of #142276 - tgross35:update-library-lockfile, r=Mark-SimulacrumMatthias Krüger-29/+20
Update dependencies in `library/Cargo.lock` This removes the `compiler_builtins` dependency from a handful of library dependencies, which is progress toward [1]. [1]: https://github.com/rust-lang/rust/issues/142265
2025-06-13Rollup merge of #142274 - tgross35:update-stdarch, r=AmanieuMatthias Krüger-1/+0
Update the stdarch submodule Includes the following changes: * Add s390x z17 target features [1] * Remove `compiler-builtins` from `rustc-dep-of-std` dependencies [2] * Darwin AArch64 detection update [3] * Fixes for the latest nightly [4] * Add a lockfile [5] [1]: https://github.com/rust-lang/stdarch/pull/1826 [2]: https://github.com/rust-lang/stdarch/pull/1825 [3]: https://github.com/rust-lang/stdarch/pull/1827 [4]: https://github.com/rust-lang/stdarch/pull/1830 [5]: https://github.com/rust-lang/stdarch/pull/1829
2025-06-13Rollup merge of #142267 - workingjubilee:debug-assert-less-in-ast-lowering, ↵Matthias Krüger-18/+18
r=oli-obk assert more in release in `rustc_ast_lowering` My understanding of the compiler's architecture is that in the `ast_lowering` crate, we are constructing the HIR as a one-time thing per crate. This is after tokenizing, parsing, resolution, expansion, possible reparsing, reresolution, reexpansion, and so on. In other words, there are many reasons that perf-focused PRs spend a lot of time touching `rustc_parse`, `rustc_expand`, `rustc_ast`, and then `rustc_hir` and "onwards", but `ast_lowering` is a little bit of an odd duck. In this crate, we have a number of debug assertions. Some are clearly expensive checks that seem like they are prohibitive to run in actual optimized compiler builds, but then there are a number that are simple asserts on integer equalities, `is_empty`, or the like. I believe we should do some of them even in release builds, because the correctness gain is worth the performance cost: almost zero.
2025-06-13Rollup merge of #142248 - heiher:loong32-asm-types, r=AmanieuMatthias Krüger-4/+11
Add supported asm types for LoongArch32 r? ``````@Amanieu``````
2025-06-13Rollup merge of #142176 - workingjubilee:dont-shuffle-bswaps-per-arch, r=nikicMatthias Krüger-16/+45
tests: Split dont-shuffle-bswaps along opt-levels and arches This duplicates dont-shuffle-bswaps in order to make each opt level its own test. Then -opt3.rs gets split into a revision per arch we want to test, with certain architectures gaining new target-cpu minimums.
2025-06-13Rollup merge of #140770 - folkertdev:custom-abi, r=tgross35Matthias Krüger-1/+5
add `extern "custom"` functions tracking issue: rust-lang/rust#140829 previous discussion: https://github.com/rust-lang/rust/issues/140566 In short, an `extern "custom"` function is a function with a custom ABI, that rust does not know about. Therefore, such functions can only be defined with `#[unsafe(naked)]` and `naked_asm!`, or via an `extern "C" { /* ... */ }` block. These functions cannot be called using normal rust syntax: calling them can only be done from inline assembly. The motivation is low-level scenarios where a custom calling convention is used. Currently, we often pick `extern "C"`, but that is a lie because the function does not actually respect the C calling convention. At the moment `"custom"` seems to be the name with the most support. That name is not final, but we need to pick something to actually implement this. r? `@traviscross` cc `@tgross35` try-job: x86_64-apple-2
2025-06-13Rollup merge of #140770 - folkertdev:custom-abi, r=tgross35Matthias Krüger-10/+988
add `extern "custom"` functions tracking issue: rust-lang/rust#140829 previous discussion: https://github.com/rust-lang/rust/issues/140566 In short, an `extern "custom"` function is a function with a custom ABI, that rust does not know about. Therefore, such functions can only be defined with `#[unsafe(naked)]` and `naked_asm!`, or via an `extern "C" { /* ... */ }` block. These functions cannot be called using normal rust syntax: calling them can only be done from inline assembly. The motivation is low-level scenarios where a custom calling convention is used. Currently, we often pick `extern "C"`, but that is a lie because the function does not actually respect the C calling convention. At the moment `"custom"` seems to be the name with the most support. That name is not final, but we need to pick something to actually implement this. r? `@traviscross` cc `@tgross35` try-job: x86_64-apple-2
2025-06-13Rollup merge of #135927 - azhogin:azhogin/retpoline, r=davidtwcoMatthias Krüger-39/+10
retpoline and retpoline-external-thunk flags (target modifiers) to enable retpoline-related target features `-Zretpoline` and `-Zretpoline-external-thunk` flags are target modifiers (tracked to be equal in linked crates). * Enables target features for `-Zretpoline-external-thunk`: `+retpoline-external-thunk`, `+retpoline-indirect-branches`, `+retpoline-indirect-calls`. * Enables target features for `-Zretpoline`: `+retpoline-indirect-branches`, `+retpoline-indirect-calls`. It corresponds to clang -mretpoline & -mretpoline-external-thunk flags. Also this PR forbids to specify those target features manually (warning). Issue: rust-lang/rust#116852
2025-06-13Rollup merge of #135927 - azhogin:azhogin/retpoline, r=davidtwcoMatthias Krüger-93/+244
retpoline and retpoline-external-thunk flags (target modifiers) to enable retpoline-related target features `-Zretpoline` and `-Zretpoline-external-thunk` flags are target modifiers (tracked to be equal in linked crates). * Enables target features for `-Zretpoline-external-thunk`: `+retpoline-external-thunk`, `+retpoline-indirect-branches`, `+retpoline-indirect-calls`. * Enables target features for `-Zretpoline`: `+retpoline-indirect-branches`, `+retpoline-indirect-calls`. It corresponds to clang -mretpoline & -mretpoline-external-thunk flags. Also this PR forbids to specify those target features manually (warning). Issue: rust-lang/rust#116852
2025-06-13Rollup merge of #128425 - tgross35:missing-fragment-specifier-unconditional, ↵Matthias Krüger-342/+105
r=petrochenkov,traviscross Make `missing_fragment_specifier` an unconditional error This was attempted in [1] then reverted in [2] because of fallout. Recently, this was made an edition-dependent error in [3]. Make missing fragment specifiers an unconditional error again, across all editions. More context: https://github.com/rust-lang/rust/pull/128006 Most recent crater: https://github.com/rust-lang/rust/pull/128425#issuecomment-2686949847 Fixes: https://github.com/rust-lang/rust/issues/40107 [1]: https://github.com/rust-lang/rust/pull/75516 [2]: https://github.com/rust-lang/rust/pull/80210 [3]: https://github.com/rust-lang/rust/pull/128006