Skip to content
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: Use stable Rust #18839

Merged
merged 2 commits into from
Nov 24, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 6 additions & 11 deletions doc/doxygen/src/using-rust.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,26 +106,21 @@ Toolchain {#toolchain}

To install the necessary Rust components, it is easiest use [**rustup**, installed as described on its website].

Using Rust on RIOT needs the latest stable or nightly version of Rust,
depending on the precise example used.
(Currently, it's mainly the CoAP parts that use nightly features, and some native builds;
until stable is universally available, only tests are run on stable by default).
Using Rust on RIOT needs the latest stable version of Rust.

Make sure you have both the nightly and stable **toolchains**
Make sure you have the stable **toolchain**
and the core library for the CPU (**target**) of your choice available:

```
$ rustup toolchain add nightly
$ rustup toolchain add stable
$ rustup target add thumbv7m-none-eabi --toolchain nightly
$ rustup target add thumbv7m-none-eabi --toolchain stable
```

Substitute thumbv7m-none-eabi with the value of `RUST_TARGET`
in the output of `make info-build` of an application that has your current board selected,
or just add it later whenever the Rust compiler complains about not finding the core library for a given target).
Installing only nightly will work just as well,
but you may need to remove the `CARGO_CHANNEL = stable` line to run tests.
in the output of `make info-build` of an application that has your current board selected
(or just add it later whenever the Rust compiler complains about not finding the core library for a given target).
Using a beta or nightly will work just as well,
but you may need to set `CARGO_CHANNEL=nightly` on your shell or in your Makefiles.


While Rust comes with its own [cargo] dependency tracker for any Rust code,
Expand Down
3 changes: 1 addition & 2 deletions examples/rust-gcoap/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,7 @@ BASELIBS += $(APPLICATION_RUST_MODULE).module

FEATURES_REQUIRED += rust_target

# This example requires a nightly version because of the CoAP dependencies
CARGO_CHANNEL ?= ${CARGO_CHANNEL_NIGHTLY}
CARGO_CHANNEL ?= stable

# Currently unknown, something related to the LED_PORT definition that doesn't
# pass C2Rust's transpilation
Expand Down
8 changes: 4 additions & 4 deletions examples/rust-hello-world/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ BASELIBS += $(APPLICATION_RUST_MODULE).module

FEATURES_REQUIRED += rust_target

# While this example can be built with stable Rust on many platforms, the
# nightly channel is selected to smoothly transition from running this example
# to experimenting with it (which might easily lead into nightly territory).
CARGO_CHANNEL ?= $(CARGO_CHANNEL_NIGHTLY)
# All Rust components RIOT uses work on stable Rust. If any extra libraries
# were to require a more recent version, switch to `CARGO_CHANNEL =
# $(CARGO_CHANNEL_NIGHTLY)` to use whichever nightly version is available.
CARGO_CHANNEL ?= stable

# Currently unknown, something related to the LED_PORT definition that doesn't
# pass C2Rust's transpilation
Expand Down