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 11 pull requests #134125

Merged
merged 25 commits into from
Dec 10, 2024
Merged

Rollup of 11 pull requests #134125

merged 25 commits into from
Dec 10, 2024

Conversation

fmease
Copy link
Member

@fmease fmease commented Dec 10, 2024

Successful merges:

Failed merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Kai Luo and others added 25 commits December 6, 2024 10:43
As a rule, the application of `unsafe` to a declaration requires that use-sites
of that declaration also require `unsafe`. For example, a field declared
`unsafe` may only be read in the lexical context of an `unsafe` block.

For nearly all safe traits, the safety obligations of fields are explicitly
discharged when they are mentioned in method definitions. For example,
idiomatically implementing `Clone` (a safe trait) for a type with unsafe fields
will require `unsafe` to clone those fields.

Prior to this commit, `Copy` violated this rule. The trait is marked safe, and
although it has no explicit methods, its implementation permits reads of `Self`.

This commit resolves this by making `Copy` conditionally safe to implement. It
remains safe to implement for ADTs without unsafe fields, but unsafe to
implement for ADTs with unsafe fields.

Tracking: rust-lang#132922
It's more graphviz-y than it is results-y. This lets us reduce
visibility of several types in `graphviz.rs`.
The part about zero-sized structures is totally wrong. The rest of
it has almost no explanatory value; there are better explanations in
comments elsewhere.
jsondocck: Parse, don't validate commands.

Centralizes knowledge of jsondocck syntax into the parser, so the checker doesn't need to know what the indexes are.

[Vaguely related zulip discussion](https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/jsondocck.20rewrite)

I'm very happy this is negative LoC, despite adding a big, documented enum!

r? ``@fmease``
…ouxu

[AIX] Pass -bnoipath when adding rust upstream dynamic crates

Unlike ELF linkers, AIX doesn't feature `DT_SONAME` to override
the dependency name when outputing a shared library, which is something
we rely on for dylib crates.

See for reference:
https://github.com/rust-lang/rust/blob/bc145cec4565a97a1b08df52d26ddf48ce3d7d0a/compiler/rustc_codegen_ssa/src/back/linker.rs#L464)

Thus, `ld` on AIX will use the full path to shared libraries as the dependency if passed it
by default unless `noipath` is passed, so pass it here so we don't end up with full path dependencies
for dylib crates.
[AIX] Replace sa_sigaction with sa_union.__su_sigaction for AIX

On AIX, the `sa_sigaction` member of `struct sigaction` is accessed as the union member `sa_union.__su_sigaction`.
[AIX] Remove option "-n" from AIX "ln" command

The option `-n` for the AIX `ln` command has a different purpose than it does on Linux. On Linux, the `-n` option is used to treat the destination path as normal file if it is a symbolic link to a directory, which is the default behavior of the AIX `ln` command.
…iler-errors

Make `Copy` unsafe to implement for ADTs with `unsafe` fields

As a rule, the application of `unsafe` to a declaration requires that use-sites of that declaration also entail `unsafe`. For example, a field declared `unsafe` may only be read in the lexical context of an `unsafe` block.

For nearly all safe traits, the safety obligations of fields are explicitly discharged when they are mentioned in method definitions. For example, idiomatically implementing `Clone` (a safe trait) for a type with unsafe fields will require `unsafe` to clone those fields.

Prior to this commit, `Copy` violated this rule. The trait is marked safe, and although it has no explicit methods, its implementation permits reads of `Self`.

This commit resolves this by making `Copy` conditionally safe to implement. It remains safe to implement for ADTs without unsafe fields, but unsafe to implement for ADTs with unsafe fields.

Tracking: rust-lang#132922

r? ```@compiler-errors```
…n, r=jieyouxu

Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction

We shouldn't be using `AsyncFnOnce::CallOnceFuture` projection bounds to deduce anything about the return type of an async closure, **only** `AsyncFnOnce::Output`. This was accidental b/c all we were looking at was the def id of the trait, rather than the projection. This PR fixes that.

This doesn't affect stable code, since `CallOnceFuture` bounds cannot be written on stable.

Fixes rust-lang#134015
handle cygwin environment in `install::sanitize_sh`

Resolves rust-lang#132507
…eyouxu

Use SourceMap to load debugger visualizer files
…lts, r=tmiasko

Move `write_graphviz_results`

r? ``@tmiasko``
…_queue_maintainers, r=jieyouxu

Add compiler-maintainers who requested to be on review rotation

r? ``@davidtwco``

cc ``@Noratrieb`` ``@SparrowLii``
…lubby789

bootstrap: Forward cargo JSON output to stdout, not stderr

This fixes the RA errors I've been seeing on proc-macros after the re-landing of rust-lang#134040.

r? clubby789
@rustbot rustbot added A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-json Area: Rustdoc JSON backend 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) labels Dec 10, 2024
@rustbot rustbot added T-compiler Relevant to the compiler 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 Dec 10, 2024
@fmease
Copy link
Member Author

fmease commented Dec 10, 2024

@bors r+ rollup=never p=7

@bors
Copy link
Contributor

bors commented Dec 10, 2024

📌 Commit c42c248 has been approved by fmease

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 Dec 10, 2024
@fmease
Copy link
Member Author

fmease commented Dec 10, 2024

includes rollup=always p=6 #134123, hence bump to p=7

@bors
Copy link
Contributor

bors commented Dec 10, 2024

⌛ Testing commit c42c248 with merge 33c245b...

@bors
Copy link
Contributor

bors commented Dec 10, 2024

☀️ Test successful - checks-actions
Approved by: fmease
Pushing 33c245b to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Dec 10, 2024
@bors bors merged commit 33c245b into rust-lang:master Dec 10, 2024
7 checks passed
@rustbot rustbot added this to the 1.85.0 milestone Dec 10, 2024
@fmease fmease deleted the rollup-u38o3ob branch December 10, 2024 15:59
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#133478 jsondocck: Parse, don't validate commands. 0ce466744e712b59856157a19bf9b9a1abad541c (link)
#133967 [AIX] Pass -bnoipath when adding rust upstream dynamic crat… 460b8253bd10bb9461fa6e6415d957fd377c558e (link)
#133970 [AIX] Replace sa_sigaction with sa_union.__su_sigaction for… c844b208e31b5886d856f00e5c176b1291b1dc52 (link)
#133980 [AIX] Remove option "-n" from AIX "ln" command 3fa0a6fa1b8836b79af958bc760277c0038471bd (link)
#134008 Make Copy unsafe to implement for ADTs with unsafe fiel… fd9e6dfc739d1b9e0def543c8e93393948158adb (link)
#134017 Don't use AsyncFnOnce::CallOnceFuture bounds for signatur… c4f4dcd67f5fb96dc6e471bd8059347f0a517b6d (link)
#134023 handle cygwin environment in install::sanitize_sh 8bcd12e9fab8a4a7fe1d54b573d03e5db8995951 (link)
#134041 Use SourceMap to load debugger visualizer files a4abfe935a5105b355ed348cbbf7e843b14433ed (link)
#134065 Move write_graphviz_results d638ae1deb4f13c1d468ce17f1514d24e50d0686 (link)
#134106 Add compiler-maintainers who requested to be on review rota… af9d3edc1fac2090508296f63e13420c94ae46b9 (link)
#134123 bootstrap: Forward cargo JSON output to stdout, not stderr 85717cdfa78fa10d8552bf4aec2370776a9a1af3 (link)

previous master: 4996052717

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 (33c245b): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

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

Max RSS (memory usage)

Results (primary 1.6%)

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)
1.6% [1.6%, 1.6%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.6% [1.6%, 1.6%] 1

Cycles

Results (primary 2.4%)

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.4% [2.4%, 2.4%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.4% [2.4%, 2.4%] 1

Binary size

Results (secondary 0.0%)

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
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Bootstrap: 768.862s -> 768.372s (-0.06%)
Artifact size: 331.03 MiB -> 331.03 MiB (-0.00%)

flip1995 pushed a commit to flip1995/rust that referenced this pull request Dec 15, 2024
Rollup of 11 pull requests

Successful merges:

 - rust-lang#133478 (jsondocck: Parse, don't validate commands.)
 - rust-lang#133967 ([AIX] Pass -bnoipath when adding rust upstream dynamic crates)
 - rust-lang#133970 ([AIX] Replace sa_sigaction with sa_union.__su_sigaction for AIX)
 - rust-lang#133980 ([AIX] Remove option "-n" from AIX "ln" command)
 - rust-lang#134008 (Make `Copy` unsafe to implement for ADTs with `unsafe` fields)
 - rust-lang#134017 (Don't use `AsyncFnOnce::CallOnceFuture` bounds for signature deduction)
 - rust-lang#134023 (handle cygwin environment in `install::sanitize_sh`)
 - rust-lang#134041 (Use SourceMap to load debugger visualizer files)
 - rust-lang#134065 (Move `write_graphviz_results`)
 - rust-lang#134106 (Add compiler-maintainers who requested to be on review rotation)
 - rust-lang#134123 (bootstrap: Forward cargo JSON output to stdout, not stderr)

Failed merges:

 - rust-lang#134120 (Remove Felix from ping groups and review rotation)

r? `@ghost`
`@rustbot` modify labels: rollup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-json Area: Rustdoc JSON backend merged-by-bors This PR was explicitly merged by bors. 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-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.