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

Tracking issue for Improve the Send trait (RFC 458) #22251

Closed
aturon opened this issue Feb 13, 2015 · 6 comments · Fixed by #22319
Closed

Tracking issue for Improve the Send trait (RFC 458) #22251

aturon opened this issue Feb 13, 2015 · 6 comments · Fixed by #22319
Assignees
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

@aturon
Copy link
Member

aturon commented Feb 13, 2015

rust-lang/rfcs#458

@aturon aturon added A-typesystem Area: The type system A-traits Area: Trait system B-RFC-approved Approved by a merged RFC but not yet implemented. A-threads labels Feb 13, 2015
@aturon
Copy link
Member Author

aturon commented Feb 13, 2015

cc @pythonesque @nikomatsakis

@aturon
Copy link
Member Author

aturon commented Feb 13, 2015

Nominating.

@aturon
Copy link
Member Author

aturon commented Feb 13, 2015

cc @huonw

@huonw huonw self-assigned this Feb 13, 2015
@pythonesque
Copy link
Contributor

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.
@steveklabnik
Copy link
Member

🎊

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
@carllerche
Copy link
Member

💞 (also cc me 😄)

huonw added a commit to huonw/rust that referenced this issue Feb 14, 2015
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
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.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants