-
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 8 pull requests #70325
Rollup of 8 pull requests #70325
Commits on Feb 26, 2020
-
Configuration menu - View commit details
-
Copy full SHA for c57de34 - Browse repository at this point
Copy the full SHA c57de34View commit details
Commits on Mar 17, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 7d40019 - Browse repository at this point
Copy the full SHA 7d40019View commit details
Commits on Mar 20, 2020
-
Configuration menu - View commit details
-
Copy full SHA for f1188f7 - Browse repository at this point
Copy the full SHA f1188f7View commit details
Commits on Mar 21, 2020
-
Configuration menu - View commit details
-
Copy full SHA for da5d03d - Browse repository at this point
Copy the full SHA da5d03dView commit details
Commits on Mar 22, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 13af249 - Browse repository at this point
Copy the full SHA 13af249View commit details -
Configuration menu - View commit details
-
Copy full SHA for 489d79d - Browse repository at this point
Copy the full SHA 489d79dView commit details
Commits on Mar 23, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 4803f29 - Browse repository at this point
Copy the full SHA 4803f29View commit details -
Configuration menu - View commit details
-
Copy full SHA for 821eef5 - Browse repository at this point
Copy the full SHA 821eef5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 403ba61 - Browse repository at this point
Copy the full SHA 403ba61View commit details -
Add Wake trait for safe construction of Wakers.
Currently, constructing a waker requires calling the unsafe `Waker::from_raw` API. This API requires the user to manually construct a vtable for the waker themself - which is both cumbersome and very error prone. This API would provide an ergonomic, straightforward and guaranteed memory-safe way of constructing a waker. It has been our longstanding intention that the `Waker` type essentially function as an `Arc<dyn Wake>`, with a `Wake` trait as defined here. Two considerations prevented the original API from being shipped as simply an `Arc<dyn Wake>`: - We want to support futures on embedded systems, which may not have an allocator, and in optimized executors for which this API may not be best-suited. Therefore, we have always explicitly supported the maximally-flexible (but also memory-unsafe) `RawWaker` API, and `Waker` has always lived in libcore. - Because `Waker` lives in libcore and `Arc` lives in liballoc, it has not been feasible to provide a constructor for `Waker` from `Arc<dyn Wake>`. Therefore, the Wake trait was left out of the initial version of the task waker API. However, as Rust 1.41, it is possible under the more flexible orphan rules to implement `From<Arc<W>> for Waker where W: Wake` in liballoc. Therefore, we can now define this constructor even though `Waker` lives in libcore. This PR adds these APIs: - A `Wake` trait, which contains two methods - A required method `wake`, which is called by `Waker::wake` - A provided method `wake_by_ref`, which is called by `Waker::wake_by_ref` and which implementors can override if they can optimize this use case. - An implementation of `From<Arc<W>> for Waker where W: Wake + Send + Sync + 'static` - A similar implementation of `From<Arc<W>> for RawWaker`.
Configuration menu - View commit details
-
Copy full SHA for 06ede35 - Browse repository at this point
Copy the full SHA 06ede35View commit details -
Configuration menu - View commit details
-
Copy full SHA for d8a835f - Browse repository at this point
Copy the full SHA d8a835fView commit details -
Configuration menu - View commit details
-
Copy full SHA for c9acdb0 - Browse repository at this point
Copy the full SHA c9acdb0View commit details -
Configuration menu - View commit details
-
Copy full SHA for ede03a4 - Browse repository at this point
Copy the full SHA ede03a4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3ae74ca - Browse repository at this point
Copy the full SHA 3ae74caView commit details -
Co-Authored-By: Ashley Mannix <ashleymannix@live.com.au>
Configuration menu - View commit details
-
Copy full SHA for a4875a7 - Browse repository at this point
Copy the full SHA a4875a7View commit details -
Co-Authored-By: Ashley Mannix <ashleymannix@live.com.au>
Configuration menu - View commit details
-
Copy full SHA for caff9f9 - Browse repository at this point
Copy the full SHA caff9f9View commit details -
Apply suggestions from code review
Co-Authored-By: Ashley Mannix <ashleymannix@live.com.au>
Configuration menu - View commit details
-
Copy full SHA for 32f5724 - Browse repository at this point
Copy the full SHA 32f5724View commit details -
Configuration menu - View commit details
-
Copy full SHA for fcb4e77 - Browse repository at this point
Copy the full SHA fcb4e77View commit details -
Rollup merge of rust-lang#68700 - withoutboats:wake-trait, r=withoutb…
…oats Add Wake trait for safe construction of Wakers. Currently, constructing a waker requires calling the unsafe `Waker::from_raw` API. This API requires the user to manually construct a vtable for the waker themself - which is both cumbersome and very error prone. This API would provide an ergonomic, straightforward and guaranteed memory-safe way of constructing a waker. It has been our longstanding intention that the `Waker` type essentially function as an `Arc<dyn Wake>`, with a `Wake` trait as defined here. Two considerations prevented the original API from being shipped as simply an `Arc<dyn Wake>`: - We want to support futures on embedded systems, which may not have an allocator, and in optimized executors for which this API may not be best-suited. Therefore, we have always explicitly supported the maximally-flexible (but also memory-unsafe) `RawWaker` API, and `Waker` has always lived in libcore. - Because `Waker` lives in libcore and `Arc` lives in liballoc, it has not been feasible to provide a constructor for `Waker` from `Arc<dyn Wake>`. Therefore, the Wake trait was left out of the initial version of the task waker API. However, as Rust 1.41, it is possible under the more flexible orphan rules to implement `From<Arc<W>> for Waker where W: Wake` in liballoc. Therefore, we can now define this constructor even though `Waker` lives in libcore. This PR adds these APIs: - A `Wake` trait, which contains two methods - A required method `wake`, which is called by `Waker::wake` - A provided method `wake_by_ref`, which is called by `Waker::wake_by_ref` and which implementors can override if they can optimize this use case. - An implementation of `From<Arc<W>> for Waker where W: Wake + Send + Sync + 'static` - A similar implementation of `From<Arc<W>> for RawWaker`.
Configuration menu - View commit details
-
Copy full SHA for 0e40d7e - Browse repository at this point
Copy the full SHA 0e40d7eView commit details -
Rollup merge of rust-lang#69494 - GuillaumeGomez:stabilize-crate-vers…
Configuration menu - View commit details
-
Copy full SHA for 6d0c041 - Browse repository at this point
Copy the full SHA 6d0c041View commit details -
Rollup merge of rust-lang#70015 - jonas-schievink:gen-needs-drop, r=m…
…atthewjasper Make `needs_drop` less pessimistic on generators Generators only have non-trivial drop logic when they may store (in upvars or across yields) a type that does. This prevents generation of some unnecessary MIR in simple generators. There might be some impact on compile times, but this is probably limited in real-world applications. ~~This builds off of rust-lang#69814 since that contains some fixes that are made relevant by *this* PR (see rust-lang#69814 (comment) (this has been merged)
Configuration menu - View commit details
-
Copy full SHA for 4432cb3 - Browse repository at this point
Copy the full SHA 4432cb3View commit details -
Rollup merge of rust-lang#70080 - anyska:mir-double-space, r=oli-obk
rustc_mir: remove extra space when pretty-printing MIR.
Configuration menu - View commit details
-
Copy full SHA for 34e664f - Browse repository at this point
Copy the full SHA 34e664fView commit details -
Rollup merge of rust-lang#70195 - rylev:test-for-53275, r=Centril
Add test for issue rust-lang#53275 Fixes rust-lang#53275
Configuration menu - View commit details
-
Copy full SHA for 4be1ec1 - Browse repository at this point
Copy the full SHA 4be1ec1View commit details -
Rollup merge of rust-lang#70299 - RalfJung:err_machine_stop, r=oli-obk
add err_machine_stop macro We have that for all other error kinds, but here I somehow forgot it. r? @oli-obk
Configuration menu - View commit details
-
Copy full SHA for 589b51f - Browse repository at this point
Copy the full SHA 589b51fView commit details -
Rollup merge of rust-lang#70315 - anyska:void-rename, r=Mark-Simulacrum
Rename remaining occurences of Void to Opaque. Two mentions of the type were missed when the type was renamed.
Configuration menu - View commit details
-
Copy full SHA for 8d074cd - Browse repository at this point
Copy the full SHA 8d074cdView commit details -
Rollup merge of rust-lang#70318 - anyska:multiple-derives, r=Dylan-DPC
Split long derive lists into two derive attributes.
Configuration menu - View commit details
-
Copy full SHA for 40c0ef4 - Browse repository at this point
Copy the full SHA 40c0ef4View commit details