Skip to content

Rollup of 3 pull requests#159827

Closed
jhpratt wants to merge 7 commits into
rust-lang:mainfrom
jhpratt:rollup-tvv9xum
Closed

Rollup of 3 pull requests#159827
jhpratt wants to merge 7 commits into
rust-lang:mainfrom
jhpratt:rollup-tvv9xum

Conversation

@jhpratt

@jhpratt jhpratt commented Jul 24, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

RalfJung and others added 7 commits July 23, 2026 09:03
also add a test for cross-crate static initializers
The string `#[target_features]` is used in various error messages as
well as the compiler's code. But there is no such attribute, which I
found very confusing.

I think it means "one or more target features", e.g. covering both
`#[target_feature(foo)]` and `#[target_feature(foo, bar, baz)]`.

We already use `#[target_feature(..)]` for that meaning in several
places. So this commit changes all `#[target_features]` occurrences to
`#[target_feature(..)]`. It also changes a few `#[target_feature]` (no
plural) occurrences to `#[target_feature(..)]` for consistency with
other mentions nearby in error messages.
…ls, r=bjorn3

reuse regular exported_non_generic_symbols logic in Miri

This is some gnarly code we have duplicated in Miri, let's try to reuse the version from rustc.

r? @bjorn3
…=BoxyUwU

when bailing on ambiguity, don't force other results to ambig

A smaller version of rust-lang#149904 which doesn't cause the perf issue in bevy, or at least in the minimization

While not necessarily necessary for rust-lang/trait-system-refactor-initiative#257 due to rust-lang#158643. This does fix the underlying issues there.

This change does affect `binius_field`, the remaining issues are tracked in rust-lang/trait-system-refactor-initiative#274.

The core idea is that for
- A
  - B
    - A (cycle with initial result)
- B <---

We normally run A until we reach a fixpoint. We don't do so in case trying to do so encounters overflow or the result of `A` ends up ambiguous to avoid performance issues.

We want to generally keep the provisional cache entries which depend on A around. Evaluating these goals depends on the current provisional result of A. This means it is fine to keep them around if A reached a fixpoint. If we bail without reaching a fixpoint, the provisional result used while computing B differs from the final result of A. This means the entry for B is not valid and we'd need to discard it.

Discarding all nested provisional cache entries when not reaching a fixpoint causes perf issues. In case the final result of A is ambiguous, then this PR keeps nested cache entries which are ambiguous and don't have any inference constraints around. That is sound, as having more goals be ambiguous is never an issue, the trait solver can always say ":shrug: idk". It also shouldn't cause any incorrect ambiguity errors issues, as changing the provisional result of A to be ambiguity should not change B to go from being ambiguous to something else.

The current implementation mutated the result of all nested provisional cache entries to be ambiguous, which resulted in incorrect ambiguity errors in rust-lang/trait-system-refactor-initiative#257. This PR differs from that by dropping goals whose result isn't already ambiguous. That's means we don't keep quite as many cache entries around, which is potentially worse for perf, but from what I can tell this doens't cause issues in practice.

r? BoxyUwU
…ssages, r=oli-obk

Avoid `#[target_features]`

The string `#[target_features]` is used in various error messages as well as the compiler's code. But there is no such attribute, which I found very confusing.

I think it means "one or more target features", e.g. covering both `#[target_feature(foo)]` and `#[target_feature(foo, bar, baz)]`.

We already use `#[target_feature(..)]` for that meaning in several places. So this commit changes all `#[target_features]` occurrences to `#[target_feature(..)]`. It also changes a few `#[target_feature]` (no plural) occurrences to `#[target_feature(..)]` for consistency with other mentions nearby in error messages.

r? @oli-obk
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Jul 24, 2026
@rustbot rustbot added A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Jul 24, 2026
@jhpratt

jhpratt commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

@bors r+ rollup=never p=5

@rust-bors

rust-bors Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 51cdaf9 has been approved by jhpratt

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 24, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 24, 2026
Rollup of 3 pull requests

Successful merges:

 - #159740 (reuse regular exported_non_generic_symbols logic in Miri)
 - #155914 (when bailing on ambiguity, don't force other results to ambig)
 - #159809 (Avoid `#[target_features]`)
@rust-bors rust-bors Bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jul 24, 2026
@rust-bors

rust-bors Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

💔 Test for d2c9471 failed: CI. Failed job:

@jhpratt jhpratt closed this Jul 24, 2026
@rust-bors rust-bors Bot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Jul 24, 2026
@rust-bors

rust-bors Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved due to being closed.

@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jul 24, 2026
@rust-bors rust-bors Bot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jul 24, 2026
@jhpratt
jhpratt deleted the rollup-tvv9xum branch July 24, 2026 10:40
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
#32 loading layer 91d4a6c88650 1.04kB / 1.04kB 47.7s done
#32 loading layer 1a9617ff4124 1.88GB / 1.88GB 47.6s done
#32 loading layer ffb1ae29e547 407B / 407B 11.3s done
#32 loading layer 983d6578b4bf 66.12MB / 66.12MB 11.3s done
#32 ERROR: write /tmp/wasi-sdk-33.0-x86_64-linux/share/wasi-sysroot/lib/wasm32-wasi-threads/eh/llvm-lto/22.1.0-wasi-sdk/libc++.a: no space left on device

#31 exporting to docker image format
#31 sending tarball 75.4s done
#31 ERROR: rpc error: code = Unknown desc = write /tmp/wasi-sdk-33.0-x86_64-linux/share/wasi-sysroot/lib/wasm32-wasi-threads/eh/llvm-lto/22.1.0-wasi-sdk/libc++.a: no space left on device
------
 > exporting to docker image format:
------
------
 > importing to docker:
------
ERROR: failed to build: failed to solve: rpc error: code = Unknown desc = write /tmp/wasi-sdk-33.0-x86_64-linux/share/wasi-sysroot/lib/wasm32-wasi-threads/eh/llvm-lto/22.1.0-wasi-sdk/libc++.a: no space left on device
Command failed. Attempt 2/5:
#0 building with "upbeat_khayyam" instance using docker-container driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 6.61kB done
---
#30 loading layer 91d4a6c88650 1.04kB / 1.04kB 43.8s done
#30 loading layer 1a9617ff4124 1.88GB / 1.88GB 43.7s done
#30 loading layer ffb1ae29e547 407B / 407B 11.1s done
#30 loading layer 983d6578b4bf 66.12MB / 66.12MB 11.1s done
#30 ERROR: write /tmp/wasi-sdk-33.0-x86_64-linux/share/wasi-sysroot/lib/wasm32-wasi-threads/eh/llvm-lto/22.1.0-wasi-sdk/libc++.a: no space left on device

#29 exporting to docker image format
#29 sending tarball 72.0s done
#29 ERROR: rpc error: code = Unknown desc = write /tmp/wasi-sdk-33.0-x86_64-linux/share/wasi-sysroot/lib/wasm32-wasi-threads/eh/llvm-lto/22.1.0-wasi-sdk/libc++.a: no space left on device
------
 > exporting to docker image format:
------
------
 > importing to docker:
------
ERROR: failed to build: failed to solve: rpc error: code = Unknown desc = write /tmp/wasi-sdk-33.0-x86_64-linux/share/wasi-sysroot/lib/wasm32-wasi-threads/eh/llvm-lto/22.1.0-wasi-sdk/libc++.a: no space left on device
Command failed. Attempt 3/5:
#0 building with "upbeat_khayyam" instance using docker-container driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 6.61kB done
---
#30 loading layer 91d4a6c88650 1.04kB / 1.04kB 42.7s done
#30 loading layer 1a9617ff4124 1.88GB / 1.88GB 42.7s done
#30 loading layer ffb1ae29e547 407B / 407B 11.1s done
#30 loading layer 983d6578b4bf 66.12MB / 66.12MB 11.0s done
#30 ERROR: write /tmp/wasi-sdk-33.0-x86_64-linux/share/wasi-sysroot/lib/wasm32-wasi-threads/eh/llvm-lto/22.1.0-wasi-sdk/libc++.a: no space left on device

#29 exporting to docker image format
#29 sending tarball 70.5s done
#29 ERROR: rpc error: code = Unknown desc = write /tmp/wasi-sdk-33.0-x86_64-linux/share/wasi-sysroot/lib/wasm32-wasi-threads/eh/llvm-lto/22.1.0-wasi-sdk/libc++.a: no space left on device
------
 > exporting to docker image format:
------
------
 > importing to docker:
------
ERROR: failed to build: failed to solve: rpc error: code = Unknown desc = write /tmp/wasi-sdk-33.0-x86_64-linux/share/wasi-sysroot/lib/wasm32-wasi-threads/eh/llvm-lto/22.1.0-wasi-sdk/libc++.a: no space left on device
Command failed. Attempt 4/5:
#0 building with "upbeat_khayyam" instance using docker-container driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 6.61kB done
---
#30 loading layer 91d4a6c88650 1.04kB / 1.04kB 42.8s done
#30 loading layer 1a9617ff4124 1.88GB / 1.88GB 42.8s done
#30 loading layer ffb1ae29e547 407B / 407B 11.2s done
#30 loading layer 983d6578b4bf 66.12MB / 66.12MB 11.2s done
#30 ERROR: write /tmp/wasi-sdk-33.0-x86_64-linux/share/wasi-sysroot/lib/wasm32-wasi-threads/eh/llvm-lto/22.1.0-wasi-sdk/libc++.a: no space left on device

#29 exporting to docker image format
#29 sending tarball 69.9s done
#29 ERROR: rpc error: code = Unknown desc = write /tmp/wasi-sdk-33.0-x86_64-linux/share/wasi-sysroot/lib/wasm32-wasi-threads/eh/llvm-lto/22.1.0-wasi-sdk/libc++.a: no space left on device
------
 > exporting to docker image format:
------
------
 > importing to docker:
------
ERROR: failed to build: failed to solve: rpc error: code = Unknown desc = write /tmp/wasi-sdk-33.0-x86_64-linux/share/wasi-sysroot/lib/wasm32-wasi-threads/eh/llvm-lto/22.1.0-wasi-sdk/libc++.a: no space left on device
Command failed. Attempt 5/5:
#0 building with "upbeat_khayyam" instance using docker-container driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 6.61kB done
---
#31 loading layer 91d4a6c88650 1.04kB / 1.04kB 42.9s done
#31 loading layer 1a9617ff4124 1.88GB / 1.88GB 42.9s done
#31 loading layer ffb1ae29e547 407B / 407B 11.2s done
#31 loading layer 983d6578b4bf 66.12MB / 66.12MB 11.1s done
#31 ERROR: write /tmp/wasi-sdk-33.0-x86_64-linux/share/wasi-sysroot/lib/wasm32-wasi-threads/eh/llvm-lto/22.1.0-wasi-sdk/libc++.a: no space left on device

#30 exporting to docker image format
#30 sending tarball 70.4s done
#30 ERROR: rpc error: code = Unknown desc = write /tmp/wasi-sdk-33.0-x86_64-linux/share/wasi-sysroot/lib/wasm32-wasi-threads/eh/llvm-lto/22.1.0-wasi-sdk/libc++.a: no space left on device
------
 > exporting to docker image format:
------
------
 > importing to docker:
------
ERROR: failed to build: failed to solve: rpc error: code = Unknown desc = write /tmp/wasi-sdk-33.0-x86_64-linux/share/wasi-sysroot/lib/wasm32-wasi-threads/eh/llvm-lto/22.1.0-wasi-sdk/libc++.a: no space left on device
The command has failed after 5 attempts.
##[error]Process completed with exit code 1.
##[group]Run echo "disk usage:"
echo "disk usage:"
df -h

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-testsuite Area: The testsuite used to check the correctness of rustc rollup A PR which is a rollup S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants