-
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 10 pull requests #122929
Rollup of 10 pull requests #122929
Commits on Mar 3, 2024
-
Configuration menu - View commit details
-
Copy full SHA for d561a84 - Browse repository at this point
Copy the full SHA d561a84View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9aac0c9 - Browse repository at this point
Copy the full SHA 9aac0c9View commit details
Commits on Mar 13, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 1bde828 - Browse repository at this point
Copy the full SHA 1bde828View commit details
Commits on Mar 18, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 986f23e - Browse repository at this point
Copy the full SHA 986f23eView commit details
Commits on Mar 20, 2024
-
Configuration menu - View commit details
-
Copy full SHA for afc99cc - Browse repository at this point
Copy the full SHA afc99ccView commit details
Commits on Mar 21, 2024
-
Configuration menu - View commit details
-
Copy full SHA for c828984 - Browse repository at this point
Copy the full SHA c828984View commit details
Commits on Mar 22, 2024
-
Configuration menu - View commit details
-
Copy full SHA for b376f49 - Browse repository at this point
Copy the full SHA b376f49View commit details -
Configuration menu - View commit details
-
Copy full SHA for d318bf1 - Browse repository at this point
Copy the full SHA d318bf1View commit details -
Configuration menu - View commit details
-
Copy full SHA for e0d3439 - Browse repository at this point
Copy the full SHA e0d3439View commit details -
CFI: Use Instance at callsites
We already use `Instance` at declaration sites when available to glean additional information about possible abstractions of the type in use. This does the same when possible at callsites as well. The primary purpose of this change is to allow CFI to alter how it generates type information for indirect calls through `Virtual` instances.
Configuration menu - View commit details
-
Copy full SHA for 90e363a - Browse repository at this point
Copy the full SHA 90e363aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 807bd98 - Browse repository at this point
Copy the full SHA 807bd98View commit details -
Configuration menu - View commit details
-
Copy full SHA for e853b50 - Browse repository at this point
Copy the full SHA e853b50View commit details -
CFI: Strip auto traits off Self for virtual calls
Additional trait bounds beyond the principal trait and its implications are not possible in the vtable. This means that if a receiver is `&dyn Foo + Send`, the function will only be expecting `&dyn Foo`. This strips those auto traits off before CFI encoding.
Configuration menu - View commit details
-
Copy full SHA for 042e05b - Browse repository at this point
Copy the full SHA 042e05bView commit details -
CFI: Support self_cell-like recursion
Current `transform_ty` attempts to avoid cycles when normalizing `#[repr(transparent)]` types to their interior, but runs afoul of this pattern used in `self_cell`: ``` struct X<T> { x: u8, p: PhantomData<T>, } #[repr(transparent)] struct Y(X<Y>); ``` When attempting to normalize Y, it will still cycle indefinitely. By using a types-visited list, this will instead get expanded exactly one layer deep to X<Y>, and then stop, not attempting to normalize `Y` any further.
Configuration menu - View commit details
-
Copy full SHA for dec36c3 - Browse repository at this point
Copy the full SHA dec36c3View commit details
Commits on Mar 23, 2024
-
-Zprint-type-sizes: print the types of awaitees and unnamed coroutine…
… locals. This should assist comprehending the size of coroutines. In particular, whenever a future is suspended while awaiting another future, the latter is given the special name `__awaitee`, and now the type of the awaited future will be printed, allowing identifying caller/callee — er, I mean, poller/pollee — relationships. It would be possible to include the type name in more cases, but I thought that that might be overly verbose (`print-type-sizes` is already a lot of text) and ordinary named fields or variables are easier for readers to discover the types of.
Configuration menu - View commit details
-
Copy full SHA for 44d185b - Browse repository at this point
Copy the full SHA 44d185bView commit details -
Change an ICE regression test to use the original reproducer
This gives us more confidence that the ICE was indeed fixed.
Configuration menu - View commit details
-
Copy full SHA for 4afce46 - Browse repository at this point
Copy the full SHA 4afce46View commit details -
Rollup merge of rust-lang#121940 - veera-sivarajan:bugfix-121593, r=f…
…mease Mention Register Size in `#[warn(asm_sub_register)]` Fixes rust-lang#121593 Displays the register size information obtained from `suggest_modifier()` and `default_modifier()`.
Configuration menu - View commit details
-
Copy full SHA for 6f2f720 - Browse repository at this point
Copy the full SHA 6f2f720View commit details -
Rollup merge of rust-lang#122460 - jieyouxu:rmake-example-refactor, r…
…=Nilstrieb Rework rmake support library API ### Take 1: Strongly-typed API Context: rust-lang#122448 (comment) > My 2 cents: from my experience with writing similar "test DSLs", I would suggest to create these helpers as soon as possible in the process (basically the first time someone needs them, not only after N similar usages), and basically treat any imperative code in these high-level tests as a maintenance burden, basically making them as declarative as possible. Otherwise it might be a bit annoying to keep refactoring the tests later once such helpers are available. > > I would even discourage the arg method and create explicit methods for setting things like unpretty, the output file etc., but this might be more controversial, as it will make the invoked command-line arguments more opaque. cc ``@Kobzol`` for the testing DSL suggestion. Example: ```rs let output = Rustc::new() .input_file("main.rs") .emit(&[EmitKind::Metadata]) .extern_("stable", &stable_path) .output(); ``` ### Take 2: xshell-based macro API Example: ```rs let sh = Shell::new()?; let stable_path = stable_path.to_string_lossy(); let output = cmd!(sh, "rustc main.rs --emit=metadata --extern stable={stable_path}").output()?; ``` ### Take 3: Weakly-typed API with a few helper methods ```rs let output = Rustc::new() .input("main.rs") .emit("metadata") .extern_("stable", &stable_path) .output(); ```
Configuration menu - View commit details
-
Copy full SHA for 79c39a2 - Browse repository at this point
Copy the full SHA 79c39a2View commit details -
Rollup merge of rust-lang#122698 - clubby789:cancel-hourly-update, r=…
…Mark-Simulacrum Cancel `cargo update` job if there's no updates Previously there were always updates so we didn't hit this. Since rust-lang#122489, this job runs on a more frequent schedule and causes errors if there have been no changes in that timespan. This led to a weird error on rust-lang#122646 (comment) - because of this I've replaced the `exit 1`s here with `gh run cancel` so we don't have false 'failed' jobs in the logs.
Configuration menu - View commit details
-
Copy full SHA for be7fd03 - Browse repository at this point
Copy the full SHA be7fd03View commit details -
Rollup merge of rust-lang#122780 - GuillaumeGomez:rename-hir-local, r…
…=oli-obk Rename `hir::Local` into `hir::LetStmt` Follow-up of rust-lang#122776. As discussed on [zulip](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/Improve.20naming.20of.20.60ExprKind.3A.3ALet.60.3F). I made this change into a separate PR because I'm less sure about this change as is. For example, we have `visit_local` and `LocalSource` items. Is it fine to keep these two as is (I supposed it is but I prefer to ask) or not? Having `Node::Local(LetStmt)` makes things more explicit but is it going too far? r? `@oli-obk`
Configuration menu - View commit details
-
Copy full SHA for fb850c1 - Browse repository at this point
Copy the full SHA fb850c1View commit details -
Rollup merge of rust-lang#122875 - maurer:cfi-transparent-termination…
…, r=workingjubilee CFI: Support self_cell-like recursion Current `transform_ty` attempts to avoid cycles when normalizing `#[repr(transparent)]` types to their interior, but runs afoul of this pattern used in `self_cell`: ``` struct X<T> { x: u8, p: PhantomData<T>, } #[repr(transparent)] struct Y(X<Y>); ``` When attempting to normalize Y, it will still cycle indefinitely. By using a types-visited list, this will instead get expanded exactly one layer deep to X<Y>, and then stop, not attempting to normalize `Y` any further. This PR was split off from rust-lang#121962 as part of fixing the larger vtable compatibility issues. r? `@workingjubilee`
Configuration menu - View commit details
-
Copy full SHA for ffa32f1 - Browse repository at this point
Copy the full SHA ffa32f1View commit details -
Rollup merge of rust-lang#122879 - maurer:callsite-instances, r=worki…
…ngjubilee CFI: Strip auto traits off Virtual calls We already use `Instance` at declaration sites when available to glean additional information about possible abstractions of the type in use. This does the same when possible at callsites as well. The primary purpose of this change is to allow CFI to alter how it generates type information for indirect calls through `Virtual` instances. This is needed for the "separate machinery" version of my approach to the vtable issues (rust-lang#122573), because we need to respond differently to a `Virtual` call to the same type as a non-virtual call, specifically [stripping auto traits off the receiver's `Self`](rust-lang@54b15b0) because there isn't a separate vtable for `Foo` vs `Foo + Send`. This would also make a more general underlying mechanism that could be used by rcvalle's [proposed drop detection / encoding](rust-lang@edcd1e2) if we end up using his approach, as we could condition out on the `def_id` in the CFI code rather than requiring the generating code to explicitly note whether it was calling drop.
Configuration menu - View commit details
-
Copy full SHA for bc9e827 - Browse repository at this point
Copy the full SHA bc9e827View commit details -
Rollup merge of rust-lang#122915 - fmease:lt-opaq-mismatch-delay-bug,…
… r=compiler-errors Delay a bug if no RPITITs were found Fixes rust-lang#122655. See the issue for context. r? compiler-errors or compiler
Configuration menu - View commit details
-
Copy full SHA for 8fc1faa - Browse repository at this point
Copy the full SHA 8fc1faaView commit details -
Rollup merge of rust-lang#122916 - MultisampledNight:docs-sync-typo, …
…r=jhpratt docs(sync): normalize dot in fn summaries All other functions in e.g. [`Mutex`](https://doc.rust-lang.org/std/sync/struct.Mutex.html) have a dot at the end of their first doc line, except for the newly stabilized [`Mutex::clear_poison`](https://doc.rust-lang.org/std/sync/struct.Mutex.html#method.clear_poison) (and its friend [`RwLock::clear_poison`](https://doc.rust-lang.org/std/sync/struct.RwLock.html#method.clear_poison)). This PR remedies that by adding a normalizing dot.
Configuration menu - View commit details
-
Copy full SHA for fa762ea - Browse repository at this point
Copy the full SHA fa762eaView commit details -
Rollup merge of rust-lang#122922 - kpreid:print-async, r=compiler-errors
-Zprint-type-sizes: print the types of awaitees and unnamed coroutine locals. This should assist comprehending the size of coroutines. In particular, whenever a future is suspended while awaiting another future, the latter is given the special name `__awaitee`, and now the type of the awaited future will be printed, allowing identifying caller/callee — er, I mean, poller/pollee — relationships. It would be possible to include the type name in more cases, but I thought that that might be overly verbose (`print-type-sizes` is already a lot of text) and ordinary named fields or variables are easier for readers to discover the types of. This change will also synergize with my other PR rust-lang#122923 which changes type printing to print the path of the `async fn` instead of the span. Implementation note: I'm not sure if `Symbol::intern` is appropriate for this application, but it was the obvious way to not have to remove the `Copy` implementation from `FieldInfo`, or add a `'tcx` lifetime, while avoiding keeping a lot of possibly redundant strings in memory. I don't know what the proper tradeoff to make here is (though presumably it is not too important for a `-Z` debugging option).
Configuration menu - View commit details
-
Copy full SHA for 6f506a6 - Browse repository at this point
Copy the full SHA 6f506a6View commit details -
Rollup merge of rust-lang#122927 - gurry:122199-ice-unexpected-node-2…
…, r=workingjubilee Change an ICE regression test to use the original reproducer The ICE was fixed in PR rust-lang#122370, but the test used a different reproducer than the one originally reported. This PR changes it to the original one, giving us more confidence that the fix works. Fixes rust-lang#122199
Configuration menu - View commit details
-
Copy full SHA for 048ba2a - Browse repository at this point
Copy the full SHA 048ba2aView commit details