Rust 1.44 (async/await on embedded)
blog.rust-lang.org
blog.rust-lang.org
Ferrous Systems have written a blogpost on what async/await can look like for writing embedded firmware: https://ferrous-systems.com/blog/async-on-embedded/ With Rust 1.44, this now becomes possible on the stable release of the language (previously you needed nightly). Very exciting.
I can't help but think that the best minds among language designers and systems programmers have probably already jumped ship to Rust.
> The lifetime of the coroutine state is strictly nested within the lifetime of the caller, and the size of coroutine frame is known at the call site in that case, coroutine state is embedded in the caller's stack frame (if the caller is an ordinary function) or coroutine state (if the caller is a coroutine)
Basically if you limit yourself to only functionality supported in Rust you'll never actually generate an allocation. Once you start using features Rust doesn't support you need to provided memory via some means.
https://en.cppreference.com/w/cpp/language/coroutines#Heap_a...
This is especially pronounced in languages that rely a lot on compiler optimizations. In Haskell you can purposefully use the singly linked list for very large collections, knowing they will be optimized out, until one day the compiler decided not to optimize that and now you have a problem.
There's a reason C++17 made return-value-optimization a proper part of the language with mandatory elision of copies. People like guarantees. Optimizations are but the icing on the cake.
I also don't think that the existence of 'more important' issues precludes the discussion of other issues that may be relevant to a large number of people (or a small number of people, for that matter). I would certainly find it annoying if every political conversation I took part in were interrupted with "Well, that's nothing to be compared to climate change", even if I believed it to be true.
They've opened themselves up to arguments over what non Rust-related cause to advertise next! "For Rust 1.45 I think we should put replace the release notes with a message about the civil war in Yemen."
By the way, the same thing happens with for example suicides at Chinese factories: companies do take a stance which source from these factories because it directly affects them.
Wow, quite a statement. Guess I'm giving up on coding, then.
These kinds of statements also basically says you are not welcome if you decide not to support movements like BLM. Perhaps as a user it does not matter, but imagine if you were a maintainer?
Best to keep these discussions out of Rust and other projects as much as possible. So yes, you are not alone in this.
I have to point out however that there are aspects of just pure human decency that should be a given in any kind of collaborative project.
I'm curious, do you think internet companies should refrain from releasing statements about political issues like net neutrality or the Patriot Act?
We've got major UK banks, with no presence in the US, making statements on the situation. Why shouldn't the Rust dev team, who are in part US citizens.