Skip to content

Conversation

@Zalathar
Copy link
Contributor

@Zalathar Zalathar commented Oct 30, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

theemathas and others added 30 commits July 7, 2025 11:22
This is done because `Cow` implements `Deref`. Therefore, to
avoid conflicts with an inner type having a method of the same
name, we use an associated method, like `Box::into_raw`.
Get ready to incrementally remove LangItem::QPath.
Co-Authored-By: Jeremy Soller <jackpot51@gmail.com>
This prevents a warning about ABI relevant target features not being set
on x86 and arm. In addition it is required for miri to report correct
features in is_*_feature_detected!() if miri switches to the dummy backend.
We no longer need two thread-local variables to store the context.
We used to have two because the conversion logic used to live in a
separate crate from the rest of the business logic.

I'm also removing the Container struct and replacing the
CompilerInterface trait with a struct. This removes the unnecessary
indirection and code duplication. Using a trait would also block us
from adding any generic method to the compiler interface.
…ssociated, r=dtolnay

Turn `Cow::is_borrowed,is_owned` into associated functions.

This is done because `Cow` implements `Deref`. Therefore, to avoid conflicts with an inner type having a method of the same name, we use an associated method, like `Box::into_raw`.

Tracking issue: rust-lang#65143
…opt, r=cjgillot

Micro-optimization attempt in coroutine layout computation

In `compute_layout`, there were a bunch of collections (`IndexVec`s) that were being created by `push`ing in a loop, instead of a, hopefully, more performant usage of iterator combinators. [Second commit](rust-lang@6f682c2) is just a small cleanup.

I'd love a perf run to see if this shows up in benchmarks.
Simplify rustc_public context handling

We no longer need two thread-local variables to store the context. We used to have two because the conversion logic used to live in a separate crate from the rest of the business logic.

I'm also merging the Container struct and the CompilerInterface trait as a single struct. This removes the unnecessary indirection and code duplication. Using a trait would also block us from adding any generic method to the compiler interface.

r? `@oli-obk`

cc: `@makai410`
Add LLVM realtime sanitizer

This is a new attempt at adding the [LLVM real-time sanitizer](https://clang.llvm.org/docs/RealtimeSanitizer.html) to rust.

Previously this was attempted in rust-lang/rfcs#3766.

Since then the `sanitize` attribute was introduced in rust-lang#142681 and it is a lot more flexible than the old `no_santize` attribute. This allows adding real-time sanitizer without the need for a new attribute, like it was proposed in the RFC. Because i only add a new value to a existing command line flag and to a attribute i don't think an MCP is necessary.

Currently real-time santizer is usable in rust code with the [rtsan-standalone](https://crates.io/crates/rtsan-standalone) crate. This downloads or builds the sanitizer runtime and then links it into the rust binary.

The first commit adds support for more detailed sanitizer information.
The second commit then actually adds real-time sanitizer.
The third adds a warning against using real-time sanitizer with async functions, cloures and blocks because it doesn't behave as expected when used with async functions. I am not sure if this is actually wanted, so i kept it in a seperate commit.
The fourth commit adds the documentation for real-time sanitizer.
…ddle

rustdoc: Rename unstable option `--nocapture` to `--no-capture` in accordance with `libtest`

Context: rust-lang#133073, rust-lang#139224 (TL;DR: `libtest` has soft-deprecated `--nocapture` in favor a new & stable `--no-capture`; we should follow suit).

Since the rustdoc flag is unstable (tracking issue: rust-lang#148116), we're allowed to remove the old flag immediately. However since the flag has existed for 4 years we could hard-deprecate the flag first or at least be considerate and provide a diagnostic referring users to the new flag. This PR does neither. Let me know what you would think would be best.

Cargo doesn't use this flag, not yet at least (rust-lang/cargo#9705), so we really are free to sunset this flag without bigger consequences.
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide A-rustdoc-search Area: Rustdoc's search feature A-testsuite Area: The testsuite used to check the correctness of rustc PG-exploit-mitigations Project group: Exploit mitigations 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-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. rollup A PR which is a rollup labels Oct 30, 2025
@Zalathar
Copy link
Contributor Author

Rollup of everything.

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Oct 30, 2025

📌 Commit 6e480c9 has been approved by Zalathar

It is now in the queue for this repository.

@bors bors 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 Oct 30, 2025
@bors
Copy link
Collaborator

bors commented Oct 30, 2025

⌛ Testing commit 6e480c9 with merge e810181...

bors added a commit that referenced this pull request Oct 30, 2025
Rollup of 9 pull requests

Successful merges:

 - #138217 (Turn `Cow::is_borrowed,is_owned` into associated functions.)
 - #147858 (Micro-optimization attempt in coroutine layout computation)
 - #147923 (Simplify rustc_public context handling)
 - #147935 (Add LLVM realtime sanitizer)
 - #148115 (rustdoc: Rename unstable option `--nocapture` to `--no-capture` in accordance with `libtest`)
 - #148137 (Couple of changes for Redox OS)
 - #148176 ([rustdoc] Include attribute and derive macros when filtering on "macros")
 - #148193 (Remove `QPath::LangItem`)
 - #148253 (Handle default features and -Ctarget-features in the dummy backend)

r? `@ghost`
`@rustbot` modify labels: rollup
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-20-3 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
  |
5 | #[sanitize(realtime = "nonblocking")]
  | ^^^^^^^^^^^--------^^^^^^^^^^^^^^^^^^
  |            |
  |            valid arguments are "address", "cfi", "kcfi", "memory", "memtag", "shadow_call_stack", "thread" or "hwaddress"
  |
help: try changing it to one of the following valid forms of the attribute
  |
5 - #[sanitize(realtime = "nonblocking")]
5 + #[sanitize(address = "on|off")]
  |
5 - #[sanitize(realtime = "nonblocking")]
5 + #[sanitize(cfi = "on|off")]
  |
5 - #[sanitize(realtime = "nonblocking")]
5 + #[sanitize(hwaddress = "on|off")]
  |
5 - #[sanitize(realtime = "nonblocking")]
5 + #[sanitize(kcfi = "on|off")]
  |
  = and 5 other candidates

error: aborting due to 1 previous error

---

test result: FAILED. 65 passed; 1 failed; 2 ignored; 0 measured; 0 filtered out; finished in 696.32ms

{ "type": "report", "total_time": 1.409986323, "compilation_time": 0.674505715 }
error: doctest failed, to rerun pass `-p rustc_lint_defs --doc`
Bootstrap failed while executing `--stage 1 test --skip src/tools/tidy`
Build completed unsuccessfully in 0:51:10
  local time: Thu Oct 30 05:56:20 UTC 2025
  network time: Thu, 30 Oct 2025 05:56:20 GMT
##[error]Process completed with exit code 1.

@bors
Copy link
Collaborator

bors commented Oct 30, 2025

💔 Test failed - checks-actions

@bors bors 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 Oct 30, 2025
@Zalathar Zalathar closed this Oct 30, 2025
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Oct 30, 2025
@Zalathar Zalathar deleted the rollup-nlppif2 branch October 30, 2025 06:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-rustc-dev-guide Area: rustc-dev-guide A-rustdoc-search Area: Rustdoc's search feature A-testsuite Area: The testsuite used to check the correctness of rustc PG-exploit-mitigations Project group: Exploit mitigations rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.