-
Notifications
You must be signed in to change notification settings - Fork 104
Require that errors are Send/Sync/'static. #241
base: master
Are you sure you want to change the base?
Require that errors are Send/Sync/'static. #241
Conversation
Currently, they are not Sync because they contain a non-Sync trait object. This is a breaking change. The decision to make errors Send but not Sync was made in rust-lang-deprecated#110. We believe that decision was a mistake, because it perpetuates a !Sync restriction on all users even if their errors are, in fact, Sync. Instead, users who need errors that are !Sync should use synchronization when transforming their errors into error-chain errors.
|
I support this PR. Here are some arguments I have for supporting it.
|
|
cc @rust-lang-nursery/libs I'd like to merge this PR, any objections? |
|
I'm in favour of this too 👍 |
|
I have no ticky box to check off :( Sounds great! |
|
If everyone is in favor, can this be merged? We'll still have to get crates that use |
|
@withoutboats, can you merge and publish? |
|
Will do this week! |
|
@withoutboats I guess you got a bit delayed? 😄 |
|
I'd really love to see this merged. |
|
Ooo |
|
Ping @withoutboats :) |
|
Did you fall into a black hole? I need this. :( |
|
I don't believe we have the support required to add features to this library. We are currently only maintaining compatibility with rustc and not adding features. |
|
Does that mean |
|
I'm most concerned with the breaking change adversely affecting users of the library. I guess I may be taking too measured an approach. |
|
Ah, good point. Though the consensus was that this is wanted, so it may be worth it? It'd definitely need to be semver-breaking, so that people update at their own pace. |
|
I don't think I'm alone in my assessment that |
|
|
|
Right, the change would have to be breaking anyway, so might as well change the library. |
|
Made a new pull request that adds 'Sync' via a feature toggle for backwards compatibility |
Currently, they are not Sync because they contain a non-Sync trait
object. This is a breaking change.
The decision to make errors Send but not Sync was made in #110. We
believe that decision was a mistake, because it perpetuates a !Sync
restriction on all users even if their errors are, in fact, Sync.
Instead, users who need errors that are !Sync should use
synchronization when transforming their errors into error-chain
errors.
cc @aturon