Skip to content

Merge subtree update for toolchain nightly-2025-10-09 - #504

Merged
tautschnig merged 10000 commits into
mainfrom
sync-2025-10-09
Jan 16, 2026
Merged

Merge subtree update for toolchain nightly-2025-10-09#504
tautschnig merged 10000 commits into
mainfrom
sync-2025-10-09

Conversation

@github-actions

Copy link
Copy Markdown

This is an automated PR to merge library subtree updates from 2025-09-09 (rust-lang/rust@9c27f27) to 2025-10-09 (rust-lang/rust@b6f0945) (inclusive) into main. git merge resulted in conflicts, which require manual resolution. Files were commited with merge conflict markers. Do not remove or edit the following annotations:
git-subtree-dir: library
git-subtree-split: 7e44c2b

pvdrzand others added 30 commits September 12, 2025 11:34
Constify Eq, Ord, PartialOrd
Adds `#[const_trait]` and impls for `Eq`, `Ord`, `PartialOrd`. Impl for some other traits (e.g., slices and arrays) are blocked mainly on const closures (rust-lang#106003).
For TypeId Ord we need const pointer comparison (rust-lang#53020)
Tracking issue rust-lang#143800
…rage, r=tgross35
Improve `alloc::Layout` coverage
This PR improves the `core::alloc` coverage by adding a new test to `coretests` that cover the `Layout` methods when they error.
Tracking issue: rust-lang#55724
…age, r=Noratrieb
Improve `core::char` coverage
This PR improves the `core::char` coverage by adding new tests to `coretests`
r? ``@workingjubilee``
…age, r=jhpratt
Improve `core::hash` coverage
This PR improves the `core::hash` coverage by adding a new test to `coretests` and extending one of the existing tests to use 128-bit integers
r? libs
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: 4ba1cf9
Filtered ref: 84b64d836ed478c54972a1d2639e60fa5f3ce26f
Upstream diff: rust-lang/rust@2a9bacf...4ba1cf9
This merge was created using https://github.com/rust-lang/josh-sync.
Stabilize BTree{Map,Set}::extract_if
Tracking issue: rust-lang#70530
FCP completed: rust-lang#70530 (comment)Closes: rust-lang#70530
and document `VaList::arg`.
…rkingjubilee
Revert "Constify SystemTime methods"
This reverts rust-lang#144519. The const-hacks introduces bugs, and they make the code harder to maintain. Let's wait until we can constify these functions without changing their implementation.
Fixesrust-lang#146228.
Closesrust-lang#144517 (since the feature is gone).
r? `@tgross35`
Cc `@clarfonthey`
…=workingjubilee
document `core::ffi::VaArgSafe`
tracking issue: rust-lang#44930
A modification of rust-lang#146454, keeping just the documentation changes, but not unsealing the trait.
Although conceptually we'd want to unseal the trait, there are many edge cases to supporting arbitrary types. We'd need to exhaustively test that all targets/calling conventions support all types that rust might generate (or generate proper error messages for unsupported cases). At present, many of the `va_arg` implementations assume that the argument is a scalar, and has an alignment of at most 8. That is totally sufficient for an MVP (accepting all of the "standard" C types), but clearly does not cover all rust types.
This PR also adds some various other tests for edge cases of c-variadic:
- the `#[inline]` attribute in its various forms. At present, LLVM is unable to inline c-variadic functions, but the attribute should still be accepted. `#[rustc_force_inline]` already rejects c-variadic functions.
- naked functions should accept and work with a C variable argument list. In the future we'd like to allow more ABIs with naked functions (basically, any ABI for which we accept defining foreign c-variadic functions), but for now only `"C"` and `"C-unwind` are supported
- guaranteed tail calls: c-variadic functions cannot be tail-called. That was already rejected, but there was not test for it.
r? `@workingjubilee`
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: a015919
Filtered ref: 1867c5844dba22ac4d77d1ceb7d1624c14139c16
Upstream diff: rust-lang/rust@4ba1cf9...a015919
This merge was created using https://github.com/rust-lang/josh-sync.
This commit performs various improvements (better register allocation,
less register clobbering on the worst case and better readability) of
RISC-V inline assembly use cases.
Note that it does not change the `p` module (which defines the "P"
extension draft instructions but very likely to change).
1. Use `lateout` as possible.
Unlike `out(reg)` and `in(reg)` pair, `lateout(reg)` and `in(reg)`
can share the same register because they state that the late-output
register is written after all the reads are performed.
It can improve register allocation.
2. Add `preserves_flags` option as possible.
While RISC-V doesn't have _regular_ condition codes, RISC-V inline
assembly in the Rust language assumes that some registers
(mainly vector state registers) may be overwritten by default.
By adding `preserves_flags` to the intrinsics corresponding
instructions without overwriting them, it can minimize register
clobbering on the worst case.
3. Use trailing semicolon.
As `asm!` declares an action and it doesn't return a value by
itself, it would be better to have trailing semicolon to denote that
an `asm!` call is effectively a statement.
4. Make most of `asm!` calls multi-lined.
`rustfmt` makes some simple (yet long) `asm!` calls multi-lined but
it does not perform formatting of complex `asm!` calls with inputs
and/or outputs. To keep consistency, it makes most of the `asm!`
calls multi-lined.
Now that this feature has a standard identifier, Darwin has started exposing it accordingly, in addition to the existing less-standard way. Check both, and enable the `crc` feature if either identifier for it is present to ensure backwards and forwards compatibility.
Brings the list of checkable features up to date with the initial release of macOS 26 "Tahoe".
Since PeekMut implements Deref, it shouldn't have any methods of its
own.
See also: `std::collections::binary_heap::PeekMut::pop`
readdir_r has the same problems on FreeBSD as it does on other
platforms: it assumes a fixed NAME_MAX. And readdir has the same
thread-safety guarantee as it does on other platforms: it's safe as long
as only one thread tries to read from the directory stream at a given
time.
Furthermore, readdir_r is likely to be removed for FreeBSD 16, so we
should stop using it now.
…um, r=Mark-Simulacrum
Remove `div_rem` from `core::num::bignum`
This fixes very old fixme that sounds like this
```
Stupid slow base-2 long division taken from
https://en.wikipedia.org/wiki/Division_algorithm
FIXME use a greater base ($ty) for the long division.
```
By deleting this method since it was never used
…ge, r=Mark-Simulacrum
Improve `core::fmt` coverage
This PR improves the `core::fmt` coverage by adding new tests to `coretests`
…ge, r=Mark-Simulacrum
Improve `core::ptr` coverage
This PR improves the `core::ptr` coverage by adding a new test to `coretests` for the `<*const T>::is_aligned_to` method.
r? libs
borsand others added 6 commits October 7, 2025 20:47
…iaskrgr
Rollup of 8 pull requests
Successful merges:
- rust-lang#146865 (kcfi: only reify trait methods when dyn-compatible)
- rust-lang#147205 (Add a new `wasm32-wasip3` target to Rust)
- rust-lang#147322 (cg_llvm: Consistently import `llvm::Type` and `llvm::Value`)
- rust-lang#147398 (Fix; correct placement of type inference error for method calls)
- rust-lang#147410 (Update `S-waiting-on-team` refs to new `S-waiting-on-{team}` labels)
- rust-lang#147422 (collect-license-metadata: Print a diff of the expected output)
- rust-lang#147431 (compiletest: Read the whole test file before parsing directives)
- rust-lang#147433 (Fix doc comment)
Failed merges:
- rust-lang#147390 (Use globals instead of metadata for std::autodiff)
r? `@ghost`
`@rustbot` modify labels: rollup
…trochenkov
some more `proc_macro` cleanups
Several smaller cleanups to `proc_macro`. Commits 1 and 3 seem pretty trivial to me, commit 2 might be worth it or not.
Followup to rust-lang#147166.
@github-actions
github-actionsBot requested a review from a team as a code ownerOctober 9, 2025 14:11
@btj

btj commented Oct 10, 2025

Copy link
Copy Markdown

I need to pick up the kids from school now but will look at the VeriFast proof failure after.

@tautschnig

Copy link
Copy Markdown
Member

@nilehmann I've updated Flux to the latest version available, but seems like there's still bits that need fixing.

@btj

btj commented Oct 10, 2025

Copy link
Copy Markdown

I've created #506, targeting this branch. It merges the upstream changes into the VeriFast proofs.

Unfortunately, though, after that update, VeriFast fails on a newly introduced construct. I did not yet look into that. (This will require some VeriFast development. I propose that the present PR be merged without fixing this VeriFast failure, and that I update #481 to also take care of that.)

Also, the weird [create-pull-request] automated change commit is due to a bug in my addition to the Subtree Update action. I plan to submit a PR to fix it soon.

This merges the upstream changes into the VeriFast proofs.
VeriFast now fails on a newly introduced construct. I'm leaving that for
a future commit.
By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 and MIT licenses.
@nilehmann

Copy link
Copy Markdown

@tautschnig, I created #513, targeting this branch, with the necessary fixes to flux.

Fixes to make flux work with 2025-10-09. This also updates the CI
workflow to download the fixpoint dependency instead of building it from
source.
By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 and MIT licenses.
---------
Co-authored-by: Ranjit Jhala <rjhala@ucsd.edu>
@btj

btj commented Nov 27, 2025

Copy link
Copy Markdown

PR #518 , targeting this branch, resolves the conflicts. After #518, the VeriFast proofs still fail, because of a new Rust construct that VeriFast does not yet support. I will look into it, but no need to wait for that to merge this PR; I can fix the VeriFast proofs in a separate PR.

@btj

btj commented Nov 28, 2025

Copy link
Copy Markdown

Update: I released VeriFast 25.11, which fixes the failure. I updated PR #518 so that it bumps VeriFast to 25.11; the VeriFast proofs now go through. (Not sure why CI doesn't run on #518...)

@tautschnigtautschnig mentioned this pull request Jan 16, 2026

@tautschnigtautschnig left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-run approvals.

@tautschnig
tautschnig added this pull request to the merge queueJan 16, 2026
Merged via the queue into main with commit ac622daJan 16, 2026
56 checks passed
@tautschnig
tautschnig deleted the sync-2025-10-09 branch January 16, 2026 22:30
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

20 participants

@btj@tautschnig@nilehmann@feliperodri@pvdrz@bors@jdonszelmann@jhpratt@RalfJung@WaffleLapkin@folkertdev@jbatez@Zalathar@a4lg@pthariensflame@cammeresi@asomers@matthiaskrgr@tiif@npmccallum