-
Notifications
You must be signed in to change notification settings - Fork 101
add "the path towards stable" announcement #96
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
Conversation
All the groundwork is done and the links have been updated. I'll publish this tomorrow morning as it's already late here. |
I'm updating my set of stm32f042 crates at the moment. I'd be happy to try another set with your instructions... |
Weird:
I've used both the |
|
||
> 2018-05-12 | ||
|
||
We are happy to announce that *library* development for the Cortex-M targets is now possible on the |
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.
It might be good to have a tl;dr at the top for those that are passively watching the ecosystem. I would suggest something like this:
Larger TL;DR:
> **TL;DR**
>
> As we make progress to getting embedded development as a first class member of the
> Rust ecosystem, we are making (necessary) changes which may break a number of crates
> in the short term. Once we have landed all of the changes to make stable embedded
> development possible, we expect this breakage to stop.
>
> If you are an embedded crate maintainer, keep an eye out for changes that affect your
> crates (see below for more details). Make sure to test your crates on the current
> `beta` release, and ping someone on the #rust-embedded IRC channel if you see something
> broken!
Shorter TL;DR:
> **TL;DR**
>
> * We are making breaking changes in order to move towards stable development
> * Some crates will break with these changes, if you notice something, file an issue and/or ping us on the #rust-embedded IRC channel
> * These breaking changes will slow down once we have landed necessary features in stable
> * If you are a crate maintainer, make sure you test your crates with the new versions of `cortex-m` (and similar) on the current `beta` release of Rust
> * Thanks for your patience!
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.
Thanks @jamesmunns. I think this a great idea; I'll add one of those.
I think something that should be explicitly noted is that stability / breakage is mainly referring to the compiler and language features, and that the libraries are not becoming stable in the 1.0 sense so more iteration with breaking changes in new minor version releases will continue to happen.
So I was able to work around the peripheral sharing issue by reading through the bare-metal code to figure out that There's still tons of other weird stuff like:
Great, where's that Also the amount of boilerplate required is going through the roof which is very annoying, especially for example authors and teaching embedded Rust programming. |
@therealprof Thanks for the input
I'll note the
I'll add this to the
Could you be more specific and list a few of the items in this "tons of other weird stuff"?
I believe the only new boilerplate is We could certainly add a fallback for If you have suggestions we can discuss them in a
You can refactor the handlers into a crate -- the same way is done for e.g. |
I'm pretty sure it's in one of the examples because the library itself compiles fine as does the one example I've already adapted but I'm a bit confused why it doesn't mention which example.
The previous defaults were just fine and now they need to be explicitly specified also requiring additional mucking with use statements, so for me that is pretty much boilerplating...
Funny, because that's very much what I would expect and CMSIS seems to be golden standard that has to be followed to the character everywhere in Rust land now. 😏 I don't think an endless loop is at all debugger unfriendly and hard to debug, it always allows you to interrupt the program with the debugger, check the fault and walk it back. And that is also what is taught in MCU 101 classes, too. Other options would be reset (which is rather annoying and surprising) or using BKPT which is rather annoying because it will lockup the MCU if no debugger is attached at that point thwarting post-mortem debugging while an endless loop won't.
It's not really about me but about beginners who might be intimidated about such things if they're no provided out of the box. |
Something's still odd about the build.rs scripts of |
So I've just ported the complete set of STM32F042 crates (and a few others that clashed randomly, cf. rust-embedded/embedded-hal#81). As far as I could test, everything seems to work, and the binaries have shrunk, cf. attached bloatlogs before and after the change: So apart from the tedious new boilerplate which gets a bit long in the tooth after the 20th or so file (BTW: The signature change on the |
I think this is a missing Cargo feature, or a bug. It doesn't say which example failed to build when you use
do you have steps to reproduce the problem? |
Which one? For the missing example name problem: Fetch my
For the re-compilation you can also use my
|
For comparison, with the previous version:
|
@therealprof the recompilation issue has been fixed in cortex-m-rt v0.5.1 |
@japaric Thanks a bunch. |
Does |
@therealprof no, only cortex-m-rt needs to be updated. |
this is an announcement I'm preparing and that I'll (hopefully) post later today on u.r-l.o (*).
First, it announces that library development is possible on beta, then it explains what's missing to
make application development possible on stable. Then it covers the ongoing migration of the
Cortex-M ecosystem to stable on how you can help; in particular, it covers how to update device
crates, driver crates and HAL implementation crates. In ends by explaining what these changes mean
to current and future users; and what's the state of other architectures.
Any feedback is appreciated! cc @thejpster @jamesmunns @hannobraun @jcsoo @pftbest @dvc94ch
@dylanmckay
Note that several links are currently broken as I haven't finished publishing stuff but I'll fix
them all before posting the announcement.
(*) I plan to release the next newsletter on Tuesday including a link to this announcement so that
it sort gets extended coverage / exposition.