Skip to content

Conversation

@github-actions
Copy link

@github-actions github-actions bot commented Oct 9, 2025

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

pvdrz and 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.

Fixes rust-lang#146228.
Closes rust-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
bors and 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-actions bot requested a review from a team as a code owner October 9, 2025 14:11
@btj
Copy link

btj commented Oct 10, 2025

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

@tautschnig
Copy link
Member

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

@btj
Copy link

btj commented Oct 10, 2025

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

@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
Copy link

btj commented Nov 27, 2025

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
Copy link

btj commented Nov 28, 2025

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...)

Copy link
Member

@tautschnig tautschnig left a comment

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 enabled auto-merge January 16, 2026 19:21
@tautschnig tautschnig added this pull request to the merge queue Jan 16, 2026
Merged via the queue into main with commit ac622da Jan 16, 2026
56 checks passed
@tautschnig tautschnig deleted the sync-2025-10-09 branch January 16, 2026 22:30
Sign up for free to 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.