Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 7 pull requests #136087

Merged
merged 20 commits into from
Jan 26, 2025
Merged

Rollup of 7 pull requests #136087

merged 20 commits into from
Jan 26, 2025

Conversation

jhpratt
Copy link
Member

@jhpratt jhpratt commented Jan 26, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

workingjubilee and others added 20 commits December 15, 2024 18:42
This allows compile-time configuration based on this.
In the near future we should do this across all RISCV targets, probably,
but this cfg is essential for building software usable on these targets.
- Improve the discussion of `unsafe` blocks within `unsafe` functions.
- Fix formatting in Appendix A
Signed-off-by: Florian Bartels <[email protected]>
QNX SDP 8.0 comes with newly renamed QNX OS 8.0, so update the page to talk about QNX, QNX Neutrino 7.0, QNX Neutrino 7.1 or QNX OS 8.0.

Also actually add a list of target triples.
If the run fails, it should report that and return a non-zero exit
status. The simplest way to do that is with `run(..., check=True)`,
which raises a `CalledProcessError`.
…rt, r=workingjubilee

Support QNX 7.1 with `io-sock`+libstd and QNX 8.0 (`no_std` only)

Changes of this pull request:

1. Refactor code for qnx nto targets to share more code in file `nto_qnx.rs`
1. Add support for an additional network stack on nto qnx 7.1.

   QNX 7.1 supports two network stacks:

   1. `io-pkt`, which is default
   2. `io-sock`, which is optional on 7.1 but default in QNX 8.0

   As one can see in the [io-sock migration notes](https://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.io_sock/topic/migrate_app.html), this changes the libc API in a way similar to e.g. linux-gnu vs. linux-musl.

   This change adds a new target which has a different value for `target_env`, so that e.g. libc can distinguish between both APIs.

2. Add initial support for QNX 8.0, thanks to AkhilTThomas. As it turned out, the problem with forking many processes still exists in QNX 8.0. Because if this, we are now using it for any QNX version (i.e. not check for `target_env` anymore).
…abi, r=fmease

compiler: Set `target_abi = "ilp32e"` on all riscv32e targets

This allows compile-time configuration based on this. In the near future we should do this across all RISCV targets, probably, but this cfg is essential for building software usable on these targets, and they are tier 3 so it seems less of a concern to tweak their definition thusly.
…ulacrum

Fix GDB `OsString` provider on Windows

It would throw an exception due to trying to look up `Wtf8Buf.__0`. The field it actually wants is called [`bytes`](https://github.com/rust-lang/rust/blob/b605c65b6eb5fa71783f8e26df69975f9f1680ee/library/std/src/sys_common/wtf8.rs#L134).
…, r=ehuss

TRPL: more backward-compatible Edition changes

- Improve the discussion of `unsafe` blocks within `unsafe` functions.
- Fix formatting in Appendix A
- Incorporate line edits to Chapter 17 from NoStarch.
…triddle

Remove extra whitespace from rustdoc breadcrumbs for copypasting

The docs header used to display [item names with their full path](https://doc.rust-lang.org/1.82.0/std/os/unix/ffi/trait.OsStrExt.html), but a [recent design change](https://doc.rust-lang.org/1.83.0/std/os/unix/ffi/trait.OsStrExt.html) has split the path and added extra styling to it.

The problem is the new styling affects how this text is copied to clipboard. I used to copy and paste the paths into `use` statements in the code, but the new styling has extra formatting and whitespace that makes copied text unusable in Rust source code.

Instead of:

>  std::os::unix::ffi::OsStrExt

I now get:

> std
> ::
> os
> ::
> unix
> ::
> ffi
> Trait OsStrExt

This change removes extra whitespace from the markup, and removes `display: flex`. Paths (now in small text) are unlikely to be that long to wrap, and even then regular text wrapping should be sufficient.
ci.py: check the return code in `run-local`

If the run fails, it should report that and return a non-zero exit
status. The simplest way to do that is with `run(..., check=True)`,
which raises a `CalledProcessError`.
…rk-Simulacrum

Add an `unchecked_div` alias to the `Div<NonZero<_>>` impls

Inspired by rust-lang/libs-team#526, if people are looking for `unchecked_div`, point them to `u32: Div<NonZero<u32>>` and friends which do no runtime checks -- and are safe! -- rather than today's behaviour of [the intrinsic being the top result](https://doc.rust-lang.org/std/?search=unchecked_div).

![image](https://github.com/user-attachments/assets/cf2a3c06-4876-49c1-8e33-64cd431c772a)
@rustbot rustbot added A-testsuite Area: The testsuite used to check the correctness of rustc O-unix Operating system: Unix-like 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. T-infra Relevant to the infrastructure 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. rollup A PR which is a rollup labels Jan 26, 2025
@jhpratt
Copy link
Member Author

jhpratt commented Jan 26, 2025

@bors r+ rollup=never p=5

@bors
Copy link
Contributor

bors commented Jan 26, 2025

📌 Commit 359c504 has been approved by jhpratt

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 Jan 26, 2025
@bors
Copy link
Contributor

bors commented Jan 26, 2025

⌛ Testing commit 359c504 with merge 15c6f7e...

@bors
Copy link
Contributor

bors commented Jan 26, 2025

☀️ Test successful - checks-actions
Approved by: jhpratt
Pushing 15c6f7e to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jan 26, 2025
@bors bors merged commit 15c6f7e into rust-lang:master Jan 26, 2025
7 checks passed
@rustbot rustbot added this to the 1.86.0 milestone Jan 26, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#133631 Support QNX 7.1 with io-sock+libstd and QNX 8.0 (no_std 9c6519980b27b308613af0886cb6679568de8540 (link)
#134358 compiler: Set target_abi = "ilp32e" on all riscv32e targe… a2e754ab715f310bf9dca3904f95690506499eae (link)
#135812 Fix GDB OsString provider on Windows 99bad89a6d301b2d127822057d3cb814f2c8ea92 (link)
#135842 TRPL: more backward-compatible Edition changes 3679f93a37af897ea6e74ed9dc091e7a4cd4965c (link)
#135946 Remove extra whitespace from rustdoc breadcrumbs for copypa… 8a8f16ea985055d503af91f0e4455520131c4f11 (link)
#135953 ci.py: check the return code in run-local b00357a900dc6d1479dcd6f0546fce5c6dafc278 (link)
#136019 Add an unchecked_div alias to the Div<NonZero<_>> impls 688563cc9cdccbfd653ee9b2282db67b56d31247 (link)

previous master: d9b4598d7e

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (15c6f7e): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.3% [0.3%, 0.3%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.4% [-0.8%, -0.1%] 3
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 0.9%, secondary 0.3%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
0.9% [0.6%, 1.3%] 5
Regressions ❌
(secondary)
2.1% [0.9%, 4.0%] 4
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-1.4% [-2.2%, -0.8%] 4
All ❌✅ (primary) 0.9% [0.6%, 1.3%] 5

Cycles

Results (primary 2.3%, secondary -5.1%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
2.3% [0.9%, 3.6%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-5.1% [-6.0%, -4.2%] 2
All ❌✅ (primary) 2.3% [0.9%, 3.6%] 2

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 773.047s -> 774.799s (0.23%)
Artifact size: 325.89 MiB -> 328.16 MiB (0.70%)

@klensy
Copy link
Contributor

klensy commented Jan 27, 2025

+2 mb librustc_driver.so

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 merged-by-bors This PR was explicitly merged by bors. O-unix Operating system: Unix-like rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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. T-infra Relevant to the infrastructure 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.