For no_std, building thumbv6m-none-eabi can be very useful to find any accidental
std use, and to make sure you import everything from core you need to.
It seems that this target doesn't have alloc available, so the build ends with an error on using any
Building with the thumbv6m-none-eabi target is still useful, because you can still ignore just the alloc errors, but is there any target that both doesn't have an std, and has an alloc implementation?
There's a clippy lint for this: https://rust-lang.github.io/rust-clippy/master/index.html#/std_instead_of_core
Thank you, that's super useful.
When I compile with thumbv6m-none-eabi, there seems to be no core prelude as well.
As a result, I had to manually include imports like
Option to make it (almost, because of alloc) compile for that target.
Is that considered a standard approach for
no_std crates, or do most of them rely on the core prelude being available?
If you use
#![no_std] the core prelude at
core::prelude::rust_2021 (or whatever edition you use) should be used.