-
Notifications
You must be signed in to change notification settings - Fork 161
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
Drop AT&T syntax from inline asm #274
Conversation
(rust_highfive has picked a reviewer for you, use r? to override) |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bors r+
Hmm, |
Build failed: |
Just bump it, master doesn't use those anymore |
We can't release 0.6.4 if we do that. I will try to get rid of aligned, should be easy™. |
That's a breaking change, since we use it in public APIs. Why can't we bump the MSRV? |
But you are right about removing |
I don't think the intention was to make that part of our semver guarantees. We cannot give more guarantees than our dependencies there. |
At least in principle we do require a semver bump for MSRV changes, which would prevent releasing 0.6.4 with an MSRV above 1.31. Edit: I am aware we've talked about this before, e.g. rust-embedded/wg#449 (comment), and have at various times wanted to change that policy. Can we require an older version of |
Wouldn't that also be breaking ? |
Yes, I suppose it would. Shame for us that nothing in the aligned -> generic_array -> as_slice link made a semver bump when increasing their MSRV, but probably points to our current policy being untenable in general. Sounds like bumping the MSRV for 0.6.4 is probably the least bad option? |
I think so, should I change the version in the docs or just remove it entirely ? I think the later option is probably better, since we don't control all of our dependencies. |
Throwing away the MSRV entirely seems a bit more drastic for a bug-fix patch release, even if it might become wrong if our dependencies increase it again. What MSRV will we need for this release? |
1.36. I think it doesn't make much sense to say that this crate is guaranteed to compile with some specific version if we can't guarantee that... |
If our dependencies bumped the MSRV without following semver best practises, doesn't that automatically mean they already made the decision for us (unless we want to pin a specific version of that dependency)? |
Well, the |
I don't think it's well established what the semver "best practices" even are around MSRV, or at least I couldn't find anything when we last worried about this. It's possible we both have sensible but incompatible policies. |
Well, I was thinking about the general semver best practises (unrelated to Rust) but actually they really only seem to bother about API surface and not other factors like MSRV so that point is moot. |
To get this fix in, shall we bump our reported MSRV for now (and for this 0.6.4 release) to 1.36, leave it in the documentation, and we can spend some more time considering what to do about MSRV generally afterwards? If a user still needs a lower MSRV, at least nothing in our crate stops it; they could always specify an earlier version of |
I don't feel very comfortable leaving the MSRV notice as it's now for 0.6.4, maybe change the wording ? We can bring it back on 0.7, given that we can control our dependencies (we already dropped |
Ok, I don't think this fix should be blocked by this, so I updated the MSRV and left things as it was. I can change more things if it's required, leaving this decision to you folks. |
bors try |
tryBuild succeeded: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, too.
bors r+
Build succeeded: |
Sorry, I didn't mean to leave this sitting. I still think it makes sense to get 0.6.4 out now, but I think overall you're right about the MSRV, as this example clearly illustrates. I still think there's value in stating an MSRV at least so that we're aware of when we change it and can consider if a PR merits a large bump, especially for a crate like cortex-m which is going to be quite widely used in embedded. Maybe it doesn't make sense for bumping the MSRV to be a semver breaking change, though, and maybe we will need to be more careful of dependencies too. |
This was breaking compilation on thumbv6 targets and miscompiling on thumbv7.
Fixes #272
Fixes #267