-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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 21 pull requests #119547
Closed
Closed
Rollup of 21 pull requests #119547
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
It was what was already being done but with worse diagnostics
(I can't build right now so this may not actually be correct)
* Fix double panic by lift the mem::forget back to where it needs to be * Remove query name from expect_job panic * Remove name field from struct because of the above * Change from `if let` to `match` for one unwrap. But with a match it cannot use the unwrap method because it will not typecheck
Future work: maybe add a new method to the query context trait to see if we are unwinding for a purpose and not an ice?
Signed-off-by: onur-ozkan <[email protected]>
Signed-off-by: onur-ozkan <[email protected]>
It is not important which one is used since `is_dangling` does not access memory, but `*const` removes the needs of `*const T` -> `*mut T` casts in `from_raw_in`.
The original tracking issue was superseded by a new one (constrainted naked functions) and therefore is closed.
and calculate the z-indices of things that go over the sidebar
When rust-lang#118865 started enforcing the `rustc::potential_query_instability` lint in `rustc_codegen_llvm`, it added an exemption for this site, arguing that the entries are only used to create a list of filenames that is later sorted. However, the list of entries also gets traversed when creating the function coverage records in LLVM IR, which may be sensitive to hash-based ordering. This patch therefore changes `function_coverage_map` to use `FxIndexMap`, which should avoid hash-based instability by iterating in insertion order.
No reason why this needs to be a `bug!()`.
…iddle rustdoc ui: adjust tooltip z-index to be above sidebar In rust-lang#115660 the sidebar's z-index was changed to 100. This PR changes the tooltip's z-index to 101 to be above the sidebar again. Fixes [after beta-backport] rust-lang#119472.
…, r=compiler-errors Remove two unused feature gates from rustc_query_impl
…Nilstrieb Minor improvements in comment on `freshen.rs` - Removed a stray "if" - Changed a numeric "2" to "two" because it reads better
Update books ## rust-lang/reference 1 commits in f9f5b5babd95515e7028c32d6ca4d9790f64c146..3565c7978cfc9662f5963b135690ff9cbbfa0318 2023-12-29 21:01:19 UTC to 2023-12-29 21:01:19 UTC - Use proper footnote for number literals `_` separator note (rust-lang/reference#1444) ## rust-lang/rust-by-example 1 commits in 4c2b24ff9d9cf19f2fcff799a3a49b9a2c50ae8e..c0be6299e52e4164c30ba6f41bd0ad0aaee64972 2023-12-21 15:22:11 UTC to 2023-12-21 15:22:11 UTC - point to raw indentifiers, talking about fields (rust-lang/rust-by-example#1789) ## rust-lang/rustc-dev-guide 5 commits in 0610665a8687b1b0aa037917a1598b9f2a21e3ef..d13e85152a977cd0bcaf583cf5f49e86225697de 2023-12-30 09:58:25 UTC to 2023-12-19 10:02:34 UTC - Prominently mention `profiler = true` on the coverage page (rust-lang/rustc-dev-guide#1844) - Add a description of `unpretty=hir` to the HIR docs (rust-lang/rustc-dev-guide#1842) - Fix typo in unsize docs (rust-lang/rustc-dev-guide#1843) - Suggest `gcc_multi` to make `mir_opts` run on nixos (rust-lang/rustc-dev-guide#1841) - bootstrapping: Clarify that stage0 std code is not executed to produce stage1 compiler (rust-lang/rustc-dev-guide#1840)
…ompiler-errors Deny defaults for higher-ranked generic parameters Fixes rust-lang#119489 (incl. rust-lang#119489 (comment)). Partially reverts rust-lang#119042. cc ``@bvanjoi`` r? ``@compiler-errors`` or compiler
…strieb Update deadlinks of `strict_provenance` lints Some hyperlinks on the following page redirect to 404 pages: <https://doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html#explanation-5> --- ``@rustbot`` label +A-docs
…, r=fee1-dead Don't synthesize host effect params for trait associated functions marked const Fixes rust-lang#113378. r? fee1-dead or compiler
…Lapkin,Nilstrieb Report I/O errors from rmeta encoding with emit_fatal rust-lang#119456 reminded me that I never did systematic testing to provoke the out-of-disk ICEs so I grepped through a recent crater run (rust-lang#119440 (comment)) for more out-of-disk ICEs on current master and yep there's 2 in there. So I finally cooked up a way to provoke for these crashes. I wrote a little `cdylib` crate that has a `#[no_mangle] pub extern "C" fn write` which occasionally reports `ENOSPC`, and prints a backtrace when it does. <details><summary><strong>code for the dylib</strong></summary> <p> ```rust // cargo add libc rand backtrace use rand::Rng; #[no_mangle] pub extern "C" fn write( fd: libc::c_int, buf: *const libc::c_void, count: libc::size_t, ) -> libc::ssize_t { if fd > 2 && rand::thread_rng().gen::<u8>() == 0 { let mut count = 0; backtrace::trace(|frame| { backtrace::resolve_frame(frame, |symbol| { if let Some(name) = symbol.name() { if count > 3 { eprintln!("{}", name); } } count += 1; }); true }); unsafe { *libc::__errno_location() = libc::ENOSPC; } return -1; } else { unsafe { let res = libc::syscall(libc::SYS_write, fd as usize, buf as usize, count as usize) as isize; if res < 0 { *libc::__errno_location() = -res as i32; -1 } else { res } } } } ``` </p> </details> Then `LD_PRELOAD` that dylib and repeatedly build a big project until it ICEs, such as with this: ```bash while true; do cargo clean LD_PRELOAD=/home/ben/evil/target/release/libevil.so cargo +stage1 check 2> errors if grep "thread 'rustc' panicked" errors; then break fi done ``` My "big project" for testing was an otherwise-empty project with `cargo add axum`. Before this PR, the above procedure finds a crash in between 1 and 15 minutes. With this PR, I have not found a crash in 30 minutes, and I'll be leaving this to run overnight (starting now). (A night has now passed, no crashes were found) I believe the problem is that even though since rust-lang#117301 we correctly check `FileEncoder` for errors on all paths, we use `emit_err`, so there is a window of time between the call to `emit_err` and the full error reporting where rustc believes it has emitted a valid rmeta file and will permit Cargo to launch a build for a dependent crate. Changing these calls to `emit_fatal` closes that window. I think there are a number of other cases where `emit_err` has been used instead of the more-correct `emit_fatal` such as https://github.com/rust-lang/rust/blob/e51e98dde6a60637b6a71b8105245b629ac3fe77/compiler/rustc_codegen_ssa/src/back/write.rs#L542 but unlike rmeta encoding I am not aware of those cases of those causing problems. r? `@WaffleLapkin`
Mark myself as back from leave
…wiser coverage: Avoid a query stability hazard in `function_coverage_map` When rust-lang#118865 started enforcing the `rustc::potential_query_instability` lint in `rustc_codegen_llvm`, it added an exemption for this site, arguing that the entries are only used to create a list of filenames that is later sorted. However, the list of entries also gets traversed when creating the function coverage records in LLVM IR, which may be sensitive to hash-based ordering. This patch therefore changes `function_coverage_map` to use `FxIndexMap`, which should avoid hash-based instability by iterating in insertion order. cc `@Enselic`
llvm: Allow `noundef` in codegen tests LLVM 18 will automatically infer `noundef` in some situations. Adjust codegen tests to accept this. See llvm/llvm-project#76553 for why `noundef` is being generated now. `@rustbot` label:+llvm-main
…tes, r=JohnTitor Update `thread_local` examples to use `local_key_cell_methods` `local_key_cell_methods` has been stable for a while and provides a much less clunky way to interface with thread-local Additionaly add context to the documentation about why types with interior mutability are needed. r? libs
…rieb Fix: Properly set vendor in i686-win7-windows-msvc target In rust-lang#118150 , setting the `vendor` field of the `i686-win7-windows-msvc` target was forgotten, preventing us from easily checking the target using `cfg(target_vendor)`. With this PR, we set the target vendor to "win7".
rustbot
added
A-meta
Area: Issues & PRs about the rust-lang/rust repository itself
A-query-system
Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html)
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.
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 3, 2024
Sorry but im gonna kick this so that one PR can be squashed |
@bors r- |
bors
added
S-waiting-on-author
Status: This is awaiting some action (such as code changes or more information) from the author.
and removed
S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
labels
Jan 3, 2024
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-query-system
Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html)
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.
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.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Successful merges:
TyCtxt::is_closure
toTyCtxt::is_closure_or_coroutine
#119444 (RenameTyCtxt::is_closure
toTyCtxt::is_closure_or_coroutine
)freshen.rs
#119487 (Minor improvements in comment onfreshen.rs
)strict_provenance
lints #119498 (Update deadlinks ofstrict_provenance
lints)function_coverage_map
#119514 (coverage: Avoid a query stability hazard infunction_coverage_map
)noundef
in codegen tests #119523 (llvm: Allownoundef
in codegen tests)thread_local
examples to uselocal_key_cell_methods
#119534 (Updatethread_local
examples to uselocal_key_cell_methods
)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup