-
Notifications
You must be signed in to change notification settings - Fork 2k
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
rust: Update dependencies, build and test more on stable #18678
rust: Update dependencies, build and test more on stable #18678
Conversation
This pulls in versions of previously nightly-only crates that can be built on 1.65 beta. The Cargo overrides that direct the resolver to the git repositories are disabled while the version used in tree also happens to be a released version of the crates, as it should be the case as per [251]. [251]: RIOT-OS/Release-Specs#251
I've added one more commit that sets -Os and -lto on Rust code, which gets the code size from 87KiB to 57KiB on the rust-gcoap example. This hopefully counteracts other effects I couldn't pinpoint yet that let the binary size grow to the point where it exceeded some boards' capacities. [edit: Numbers are on microbit-v2. Before this PR, Rust code size was 46KiB, so chances are I'll still need to investigate why things grew that dramatically] |
The size increases is due to coap-message-demo's newly gained CBOR serialization and deserialization default handlers (two new demo resources); the rest of the changes did not significantly impact the sizes. Just flicking on some optimizations allowed leaving the list of supported boards as-is. At some point we'll have to reconsider which examples we can pack in, and/or whether there are demos that are shed under flash pressure, but right now, they still fit. Unless reviewers disagree, I wouldn't try to remove features from coap-handler-demos (it's not possible right now, but then again I'm maintaining that), and leave the optimization flags in (as they do make a good example case). |
Contribution description
This is a bit more than the usual "bump dependencies", as it also reaps the benefits from the latest crate updates:
cargo update
that is necessary to apply the updates into the Cargo.lock files anyway.This could have been done before, but was not, because users often build on a simple example when exploring advanced things, and there might have been frustration when the advanced things don't work there. Given that barely any riot-wrappers features require nightly any more, this is fine now.
Testing procedure
Issue references
By running tests on stable this closes #18500