about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2025-05-17aarch64-linux: Default to FramePointer::NonLeafJubilee Young-13/+52
For aarch64-apple and aarch64-windows, platform docs state that code must use frame pointers correctly. This is because the AAPCS64 mandates that a platform specify its frame pointer conformance requirements: - Apple: https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms#Respect-the-purpose-of-specific-CPU-registers - Windows: https://learn.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=msvc-170#integer-registers - AAPCS64: https://github.com/ARM-software/abi-aa/blob/4492d1570eb70c8fd146623e0db65b2d241f12e7/aapcs64/aapcs64.rst#the-frame-pointer Unwinding code either requires unwind tables or frame pointers, and on aarch64 the expectation is that one can use frame pointers for this. Most Linux targets represent a motley variety of possible distributions, so it is unclear who to defer to on conformance, other than perhaps Arm. In the absence of a specific edict for a given aarch64-linux target, Rust will assume aarch64-linux targets use non-leaf frame pointers. This reflects what compilers like clang do.
2025-05-16Auto merge of #140978 - davidtwco:deep-reject-in-match-norm-trait-ref, r=lcnrbors-2/+12
trait_sel: deep reject `match_normalize_trait_ref` Spotted during an in-person review of #137944 at RustWeek: `match_normalize_trait_ref` could be using `DeepRejectCtxt` to exit early as an optimisation for projection candidates, like is done with param candidates. r? `@lcnr` cc `@oli-obk`
2025-05-16Auto merge of #140911 - rust-lang:cargo_update, r=clubby789bors-200/+302
Weekly `cargo update` Automation to keep dependencies in `Cargo.lock` current. The following is the output from `cargo update`: ```txt compiler & tools dependencies: Locking 40 packages to latest compatible versions Updating clap v4.5.37 -> v4.5.38 Updating clap_builder v4.5.37 -> v4.5.38 Updating ctrlc v3.4.6 -> v3.4.7 Updating derive_setters v0.1.6 -> v0.1.7 Updating getrandom v0.3.2 -> v0.3.3 Updating icu_collections v1.5.0 -> v2.0.0 Adding icu_locale_core v2.0.0 Updating icu_normalizer v1.5.0 -> v2.0.0 Updating icu_normalizer_data v1.5.1 -> v2.0.0 Updating icu_properties v1.5.1 -> v2.0.0 Updating icu_properties_data v1.5.1 -> v2.0.0 Adding icu_provider v2.0.0 Updating idna_adapter v1.2.0 -> v1.2.1 Updating jiff v0.2.12 -> v0.2.13 Updating jiff-static v0.2.12 -> v0.2.13 Updating libffi v4.0.0 -> v4.1.0 Updating libffi-sys v3.2.0 -> v3.3.1 Updating libloading v0.8.6 -> v0.8.7 Updating libm v0.2.13 -> v0.2.15 Adding litemap v0.8.0 Updating nix v0.29.0 -> v0.30.1 Adding potential_utf v0.1.2 Updating rustc-build-sysroot v0.5.4 -> v0.5.5 Adding tinystr v0.8.1 Updating tokio v1.44.2 -> v1.45.0 Updating unic-langid v0.9.5 -> v0.9.6 Updating unic-langid-impl v0.9.5 -> v0.9.6 Updating unic-langid-macros v0.9.5 -> v0.9.6 Updating unic-langid-macros-impl v0.9.5 -> v0.9.6 Removing utf16_iter v1.0.5 Adding wasm-encoder v0.230.0 Adding wasmparser v0.230.0 Updating wast v229.0.0 -> v230.0.0 Updating wat v1.229.0 -> v1.230.0 Updating winnow v0.7.9 -> v0.7.10 Removing write16 v1.0.0 Adding writeable v0.6.1 Adding yoke v0.8.0 Adding yoke-derive v0.8.0 Adding zerotrie v0.2.2 Adding zerovec v0.11.2 Adding zerovec-derive v0.11.1 note: pass `--verbose` to see 36 unchanged dependencies behind latest library dependencies: Locking 0 packages to latest compatible versions note: pass `--verbose` to see 3 unchanged dependencies behind latest rustbook dependencies: Locking 26 packages to latest compatible versions Updating cc v1.2.21 -> v1.2.22 Updating clap v4.5.37 -> v4.5.38 Updating clap_builder v4.5.37 -> v4.5.38 Updating clap_complete v4.5.48 -> v4.5.50 Updating getrandom v0.3.2 -> v0.3.3 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.1 Updating icu_normalizer v1.5.0 -> v2.0.0 Updating icu_normalizer_data v1.5.1 -> v2.0.0 Updating icu_properties v1.5.1 -> v2.0.0 Updating icu_properties_data v1.5.1 -> v2.0.0 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 jiff v0.2.12 -> v0.2.13 Updating jiff-static v0.2.12 -> v0.2.13 Updating litemap v0.7.5 -> v0.8.0 Adding potential_utf v0.1.2 Updating tinystr v0.7.6 -> v0.8.1 Removing utf16_iter v1.0.5 Updating web_atoms v0.1.1 -> v0.1.2 Updating winnow v0.7.9 -> v0.7.10 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-05-16Auto merge of #141093 - weihanglo:update-cargo, r=weihanglobors-0/+0
Update cargo 5 commits in 056f5f4f3c100cb36b5e9aed2d20b9ea70aae295..47c911e9e6f6461f90ce19142031fe16876a3b95 2025-05-09 14:54:18 +0000 to 2025-05-14 17:53:17 +0000 - Stabilize doctest-xcompile (rust-lang/cargo#15462) - feat: skip `publish=false` pkg when publishing entire workspace (rust-lang/cargo#15525) - chore: bump to 0.90.0; update changelog (rust-lang/cargo#15520) - chore(triagebot): add `[no-mentions]` and `[note]` (rust-lang/cargo#15517) - add glob pattern support for known_hosts (rust-lang/cargo#15508) r? ghost
2025-05-16Update cargoWeihang Lo-0/+0
2025-05-16Auto merge of #140959 - oli-obk:no-unsafe-children, r=davidtwcobors-4/+4
Invoke a query only when it doesn't return immediately anyway This should cause less query key caching and less dep graph data, hopefully resulting in some perf improvements
2025-05-16Auto merge of #141044 - flip1995:clippy-subtree-update, r=Manishearthbors-4460/+5280
Clippy subtree update r? `@Manishearth` Cargo.lock update due to Clippy version bump.
2025-05-16Auto merge of #141066 - matthiaskrgr:rollup-e7tyrj5, r=matthiaskrgrbors-259/+461
Rollup of 9 pull requests Successful merges: - #140791 (std: explain prefer `TryInto` over `TryFrom` when specifying traits bounds on generic function) - #140834 (move (or remove) some impl Trait tests) - #140910 (Remove `stable` attribute from wasi fs (read_exact|write_all)_at) - #140984 (fix doc for UnixStream) - #140997 (Add negative test coverage for `-Clink-self-contained` and `-Zlinker-features`) - #141003 (Improve ternary operator recovery) - #141009 (Migrate to modern datetime API) - #141013 (Implement methods to set STARTUPINFO flags for Command API on Windows) - #141026 (rustc-dev-guide subtree update) r? `@ghost` `@rustbot` modify labels: rollup
2025-05-16Rollup merge of #141026 - tshepang:rust-push, r=jieyouxuMatthias Krüger-172/+201
rustc-dev-guide subtree update r? ``@ghost``
2025-05-16Rollup merge of #141013 - federico-terzi:feat/command_startupinfo_windows, ↵Matthias Krüger-0/+72
r=joboet Implement methods to set STARTUPINFO flags for Command API on Windows Implements https://github.com/rust-lang/rust/issues/141010
2025-05-16Rollup merge of #141009 - emmanuel-ferdman:master, r=marcoieniMatthias Krüger-1/+1
Migrate to modern datetime API # PR Summary This small PR resolves the `datetime` library warnings: ```python DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). or datetime.datetime.utcnow() ``` Note that `.replace(tzinfo=None)` allows to keep the original behavior where the time appears as a naive UTC timestamp (i.e., without any timezone offset). Comparision: ```python # With .utcnow() or .now(datetime.timezone.utc).replace(tzinfo=None) Time,Idle 2025-05-14T15:40:25.013414,98.73417721518987 # With .now(datetime.timezone.utc) Time,Idle 2025-05-14T15:40:25.013414+00:00,98.73417721518987 ```
2025-05-16Rollup merge of #141003 - clubby789:ternary-improve, r=compiler-errorsMatthias Krüger-17/+75
Improve ternary operator recovery This - Improves the span of the error to not point at the next token - Where possible, we use the span of the condition to further improve the span of the error to include the cond, and suggest a maybe-incorrect fix Currently this works on free expressions, not let statements; some more refactoring would be needed to pass the span down, which I'm not sure is worth doing. ### Old ![image](https://github.com/user-attachments/assets/5688cefc-e4ef-4135-a5ba-340ce05ae6f3) ### New ![image](https://github.com/user-attachments/assets/154f5380-e0c8-42c7-9bf8-0adb3d0433fa)
2025-05-16Rollup merge of #140997 - jieyouxu:link-flags-negative-tests, r=lqdMatthias Krüger-0/+72
Add negative test coverage for `-Clink-self-contained` and `-Zlinker-features` Noticed while reviewing stabilization #140525 that we don't have any negative test coverage for these flags. Feel free to cherry-pick these tests into the stabilization PR, or we can land these before separately. r? `@lqd`
2025-05-16Rollup merge of #140984 - mlowicki:patch-2, r=ibraheemdevMatthias Krüger-2/+2
fix doc for UnixStream Doc example was using `UdpSocket` instead of `UnixStream`.
2025-05-16Rollup merge of #140910 - paolobarbolini:wasi-fs-incorrect-stabilization, ↵Matthias Krüger-2/+0
r=joboet Remove `stable` attribute from wasi fs (read_exact|write_all)_at The docs for [`std::os::wasi::fs::FileExt::read_exact_at`](https://doc.rust-lang.org/1.86.0/std/os/wasi/fs/trait.FileExt.html#method.read_exact_at) and [`std::os::wasi::fs::FileExt::write_all_at`](https://doc.rust-lang.org/1.86.0/std/os/wasi/fs/trait.FileExt.html#method.write_all_at) show the methods to be stable since v1.33, which is not correct and was a mistake made when the methods were added in (https://github.com/rust-lang/rust/pull/74076#pullrequestreview-443124667). The reviewer seemed to think this was an insta-stabilization, but the entire file is marked as unstable so that was not right. The stabilization version would also have been wrong either way.
2025-05-16Rollup merge of #140834 - lcnr:apit-folder, r=compiler-errorsMatthias Krüger-63/+30
move (or remove) some impl Trait tests Probably not actually worth the effort, so I am stopping here :sweat_smile:
2025-05-16Rollup merge of #140791 - xizheyin:issue-140761, r=ibraheemdevMatthias Krüger-2/+8
std: explain prefer `TryInto` over `TryFrom` when specifying traits bounds on generic function Fixes #140761 This PR keeps the explanations of `Into` and `From` consistent and adds explanations for `TryInto` and `TryFrom`. r? libs
2025-05-16Auto merge of #140557 - compiler-errors:remove-wf-hack, r=lcnrbors-72/+89
Remove manual WF hack We do not need this hack anymore since we fixed the candidate selection problems with `Sized` bounds. We prefer built-in sized bounds now since #138176, which fixes the only regression this hack was intended to fix. While this theoretically is broken for some code, for example, when there a param-env bound that shadows an impl or built-in trait, we don't see it in practice and IMO it's not worth the burden of having to maintain this wart in `compare_method_predicate_entailment`. The code that regresses is, for example: ```rust trait Bar<'a> {} trait Foo<'a, T> { fn method(&self) where Self: Bar<'a>; } struct W<'a, T>(&'a T) where Self: Bar<'a>; impl<'a, 'b, T> Bar<'a> for W<'b, T> {} impl<'a, 'b, T> Foo<'a, T> for W<'b, T> { fn method(&self) {} } ``` Specifically, I don't believe this is really going to be encountered in practice. For this to fail, there must be a where clause in the *trait method* that would shadow an impl or built-in (non-`Sized`) candidate in the trait, and this shadowing would need to be encountered when solving a nested WF goal from the impl self type. See #108544 for the original regression. Crater run is clean! r? lcnr
2025-05-15Auto merge of #141050 - matthiaskrgr:rollup-uyzqbmj, r=matthiaskrgrbors-146/+536
Rollup of 7 pull requests Successful merges: - #139749 (docs(library/core/src/pin): fix typo "necessarily" -> "necessary") - #140685 (Simplify `Vec::as_non_null` implementation and make it `const`) - #140712 (normalization: avoid incompletely constraining GAT args) - #140768 (Improve `dangerous_implicit_aurorefs` diagnostic output) - #140947 (Flush errors before deep normalize in `dropck_outlives`) - #140990 (VxWorks: updates from recent libc versions) - #141027 (remove `RustfmtState` to reduce `initial_rustfmt` complexity) r? `@ghost` `@rustbot` modify labels: rollup
2025-05-15Rollup merge of #141027 - onur-ozkan:simpler-rustfmt-initialization, ↵Matthias Krüger-50/+12
r=albertlarsan68 remove `RustfmtState` to reduce `initial_rustfmt` complexity The current use of `RustfmtState` doesn't serve its main purpose as it never does the lazy evaulation since `Build::build` forces it to be ready on the early stage. If we want rustfmt to be ready on the early stage, we don't need to have `RustfmtState` complexity at all.
2025-05-15Rollup merge of #140990 - biabbas:vxworks, r=tgross35Matthias Krüger-12/+3
VxWorks: updates from recent libc versions Vxworks changes. Required changes were added to libc in pr https://github.com/rust-lang/libc/pull/4407 and https://github.com/rust-lang/libc/pull/4337
2025-05-15Rollup merge of #140947 - compiler-errors:pending-norm, r=lcnrMatthias Krüger-11/+132
Flush errors before deep normalize in `dropck_outlives` Deep normalization doesn't allow the ocx to have pending obligations, so process them before deeply normalizing. Fixes https://github.com/rust-lang/rust/issues/140931 Fixes https://github.com/rust-lang/rust/issues/140462
2025-05-15Rollup merge of #140768 - Urgau:improv_autorefs-lint, r=fmeaseMatthias Krüger-33/+262
Improve `dangerous_implicit_aurorefs` diagnostic output This PR *greatly* improves the `dangerous_implicit_aurorefs` lint diagnostic output. Kind of related to #140721. r? ```@jieyouxu``` (maybe)
2025-05-15Rollup merge of #140712 - lcnr:normalization-gat-args, r=compiler-errorsMatthias Krüger-31/+118
normalization: avoid incompletely constraining GAT args We need to copy the behavior of #125214 in the new solver. This fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/202 which seems to be the cause of the regression in `deptypes`. r? ```@compiler-errors```
2025-05-15Rollup merge of #140685 - viliml:patch-1, r=Mark-SimulacrumMatthias Krüger-4/+4
Simplify `Vec::as_non_null` implementation and make it `const` Tracking issue: #130364.
2025-05-15Rollup merge of #139749 - ↵Matthias Krüger-5/+5
ruancomelli:docs/library/core/src/pin/fix-typo-necessarily-to-necessary, r=joboet docs(library/core/src/pin): fix typo "necessarily" -> "necessary" Fix a typo in [`library/core/src/pin.rs`](https://github.com/ruancomelli/rust/blob/14662fabeb69fe5ab6c6e68051bf9f80d4aaaa35/library/core/src/pin.rs), from > As we'll see later, this is **necessarily** from the time the value is first pinned until the end of its lifespan. to > As we'll see later, this is **necessary** from the time the value is first pinned until the end of its lifespan. (my emphasis).
2025-05-15Auto merge of #136264 - GuillaumeGomez:optimize-integers-to-string, r=Amanieubors-15/+73
Optimize `ToString` implementation for integers Part of https://github.com/rust-lang/rust/issues/135543. Follow-up of https://github.com/rust-lang/rust/pull/133247 and https://github.com/rust-lang/rust/pull/128204. The benchmark results are: | name| 1.87.0-nightly (3ea711f17 2025-03-09) | With this PR | diff | |-|-|-|-| | bench_i16 | 32.06 ns/iter (+/- 0.12) | 17.62 ns/iter (+/- 0.03) | -45% | | bench_i32 | 31.61 ns/iter (+/- 0.04) | 15.10 ns/iter (+/- 0.06) | -52% | | bench_i64 | 31.71 ns/iter (+/- 0.07) | 15.02 ns/iter (+/- 0.20) | -52% | | bench_i8 | 13.21 ns/iter (+/- 0.14) | 14.93 ns/iter (+/- 0.16) | +13% | | bench_u16 | 31.20 ns/iter (+/- 0.06) | 16.14 ns/iter (+/- 0.11) | -48% | | bench_u32 | 33.27 ns/iter (+/- 0.05) | 16.18 ns/iter (+/- 0.10) | -51% | | bench_u64 | 31.44 ns/iter (+/- 0.06) | 16.62 ns/iter (+/- 0.21) | -47% | | bench_u8 | 10.57 ns/iter (+/- 0.30) | 13.00 ns/iter (+/- 0.43) | +22% | More information about it in [the original comment](https://github.com/rust-lang/rust/pull/136264#discussion_r1987542954). r? `@workingjubilee`
2025-05-15tempfile dep bump falloutPhilipp Krones-1/+1
2025-05-15Update Cargo.lockPhilipp Krones-6/+6
2025-05-15Merge commit '0450db33a5d8587f7c1d4b6d233dac963605766b' into ↵Philipp Krones-4453/+5273
clippy-subtree-update
2025-05-15Rustup (#14815)Philipp Krones-52/+91
r? @ghost changelog: none
2025-05-15Bump Clippy version -> 0.1.89Philipp Krones-4/+4
2025-05-15Bump nightly version -> 2025-05-14Philipp Krones-2/+2
2025-05-15Merge remote-tracking branch 'upstream/master' into rustupPhilipp Krones-4467/+5322
2025-05-15Auto merge of #136988 - compiler-errors:impossible_predicates, r=lcnrbors-9/+43
Use the new solver in the `impossible_predicates` The old solver is unsound for many reasons. One of which was weaponized by `@lcnr` in #140212, where the old solver was incompletely considering a dyn vtable method to be impossible and replacing its vtable entry with a null value. This null function could be called post-mono. The new solver is expected to be less incomplete due to its correct handling of higher-ranked aliases in relate. This PR switches the `impossible_predicates` query to use the new solver, which patches this UB. r? lcnr
2025-05-15Auto merge of #141011 - matthiaskrgr:rollup-4uwllo2, r=matthiaskrgrbors-46/+194
Rollup of 7 pull requests Successful merges: - #140827 (Do not ICE when reassigning in GatherLocalsVisitor on the bad path) - #140904 (Add an issue template for future-incompatible lints) - #140953 (Fix a compiletest blessing message) - #140973 (Update rustix to 1.0.7 for bootstrap) - #140976 (Add `Ipv4Addr` and `Ipv6Addr` diagnostic items) - #140988 (MaybeUninit::write: fix doc) - #140989 (Suggest replace f with f: Box<f> when expr field is short hand) r? `@ghost` `@rustbot` modify labels: rollup
2025-05-15remove `RustfmtState` to reduce `initial_rustfmt` complexityonur-ozkan-50/+12
The current use of `RustfmtState` doesn't serve its main purpose as it never does the lazy evaulation since `Build::build` forces it to be ready on the early stage. If we want rustfmt to be ready on the early stage, we don't need to have `RustfmtState` complexity at all. Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-15Merge pull request #2388 from rust-lang/rustc-pullTshepang Mbambo-2738/+4556
Rustc pull update
2025-05-15Merge from rustcThe rustc-dev-guide Cronjob Bot-2737/+4555
2025-05-15Preparing for merge from rustcThe rustc-dev-guide Cronjob Bot-1/+1
2025-05-15Merge pull request #2387 from rust-lang/tshepang-avoid-conflictTshepang Mbambo-1/+1
avoid upstream pull conflict
2025-05-15avoid upstream pull conflictTshepang Mbambo-1/+1
We changed this line and have not pushed it upstream yet, and upstream changed it in the meanwhile.
2025-05-15Auto merge of #141023 - jieyouxu:temp-windows-server-2022, r=marcoienibors-2/+8
Temporarily use Windows Server 2022 instead of Windows Server 2025 images Tracking issue: https://github.com/rust-lang/rust/issues/141022 At the moment, it seems like Windows Server 2025 20250504.1.0 is misconfigured, causing insufficient disk space failures. Temporarily go back to Windows Server 2022 in the hope that those are not also misconfigured to try to unblock the queue. r? `@marcoieni` (or infra-ci)
2025-05-15Add some negative test coverage for `-Zlinker-features` flagJieyou Xu-0/+39
2025-05-15Add some negative test coverage for malformed `-Clink-self-contained` flagsJieyou Xu-0/+33
2025-05-15Temporarily use Windows Server 2022 instead of Windows Server 2025 imagesJieyou Xu-2/+8
At the moment, it seems like Windows Server 2025 20250504.1.0 is misconfigured causing insufficient disk space failures. Temporarily go back to Windows Server 2022 in the hope that those are not also misconfigured.
2025-05-15Merge pull request #2373 from rust-lang/tshepang-patch-2Tshepang Mbambo-4/+5
avoid duplicating commands
2025-05-15Merge pull request #2379 from rust-lang/tshepang-which-chapterTshepang Mbambo-25/+31
clean TypeFold* chapter
2025-05-15Merge pull request #2380 from rust-lang/tshepang-crate-cleaningTshepang Mbambo-127/+139
clean our crates
2025-05-15Merge pull request #2383 from rust-lang/tshepang-unusedTshepang Mbambo-3/+0
remove dangling references