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
Tracking issue for Improve the Send trait (RFC 458) #22251
Labels
A-traits
Area: Trait system
A-typesystem
Area: The type system
B-RFC-approved
Approved by a merged RFC but not yet implemented.
Comments
|
Nominating. |
|
cc @huonw |
|
Yay! |
huonw
added a commit
to huonw/rust
that referenced
this issue
Feb 13, 2015
Previously Send was defined as `trait Send: 'static {}`. As detailed in
rust-lang/rfcs#458, the `'static` bound is not
actually necessary for safety, we can use lifetimes to enforce that more
flexibly.
`unsafe` code that was previously relying on `Send` to insert a
`'static` bound now may allow incorrect patterns, and so should be
audited (a quick way to ensure safety immediately and postpone the audit
is to add an explicit `'static` bound to any uses of the `Send` type).
cc rust-lang#22251.
|
|
huonw
added a commit
to huonw/rust
that referenced
this issue
Feb 13, 2015
Previously Send was defined as `trait Send: 'static {}`. As detailed in
rust-lang/rfcs#458, the `'static` bound is not
actually necessary for safety, we can use lifetimes to enforce that more
flexibly.
`unsafe` code that was previously relying on `Send` to insert a
`'static` bound now may allow incorrect patterns, and so should be
audited (a quick way to ensure safety immediately and postpone the audit
is to add an explicit `'static` bound to any uses of the `Send` type).
cc rust-lang#22251.
huonw
added a commit
to huonw/rust
that referenced
this issue
Feb 13, 2015
In most places this preserves the current API by adding an explicit `'static` bound. Notably absent are some impls like `unsafe impl<T: Send> Send for Foo<T>` and the `std::thread` module. It is likely that it will be possible to remove these after auditing the code to ensure restricted lifetimes are safe. More progress on rust-lang#22251.
huonw
added a commit
to huonw/rust
that referenced
this issue
Feb 13, 2015
Per RFC 458. Closes rust-lang#22251.
|
|
huonw
added a commit
to huonw/rust
that referenced
this issue
Feb 14, 2015
Per RFC 458. Closes rust-lang#22251.
huonw
added a commit
to huonw/rust
that referenced
this issue
Feb 18, 2015
Previously Send was defined as `trait Send: 'static {}`. As detailed in
rust-lang/rfcs#458, the `'static` bound is not
actually necessary for safety, we can use lifetimes to enforce that more
flexibly.
`unsafe` code that was previously relying on `Send` to insert a
`'static` bound now may allow incorrect patterns, and so should be
audited (a quick way to ensure safety immediately and postpone the audit
is to add an explicit `'static` bound to any uses of the `Send` type).
cc rust-lang#22251.
huonw
added a commit
to huonw/rust
that referenced
this issue
Feb 18, 2015
In most places this preserves the current API by adding an explicit `'static` bound. Notably absent are some impls like `unsafe impl<T: Send> Send for Foo<T>` and the `std::thread` module. It is likely that it will be possible to remove these after auditing the code to ensure restricted lifetimes are safe. More progress on rust-lang#22251.
huonw
added a commit
to huonw/rust
that referenced
this issue
Feb 18, 2015
Per RFC 458. Closes rust-lang#22251.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-traits
Area: Trait system
A-typesystem
Area: The type system
B-RFC-approved
Approved by a merged RFC but not yet implemented.
rust-lang/rfcs#458
The text was updated successfully, but these errors were encountered: