526: implement run-pass tests as xtasks r=korken89 a=Lotterleben
resolves https://github.com/rtic-rs/cortex-m-rtic/issues/499 .
With this PR, you should be able to run `cargo xtask --target <desired target>` or `cargo xtask --target all` locally. Of course, it also reconfigures the CI workflow to do the same.
Note that I've translated the old `Run-pass tests` verbatim for now, which means the code includes checks for a `"types"`example which doesn't exist anymore.
The examples could be collected much more nicely to prevent leftovers like this in the future, but imo that could also be achieved in a separate PR.
Co-authored-by: Lotte Steenbrink <lotte.steenbrink@ferrous-systems.com>
519: Update README to highlight `cortex-m` 0.6 vs 0.7 new feature r=korken89 a=jorgeig-space
This is just a general README update. I will open another PR for the rust-doc text in branch 0.5.x, in case there is a new release of 0.5.x at some point.
Co-authored-by: Jorge Iglesias Garcia <44316552+jorgeig-space@users.noreply.github.com>
Co-authored-by: Jorgeig <jorge@jorgeig.com>
515: `mark_internal_ident` cleanup r=korken89 a=datdenkikniet
Refactor so that all `idents` that had to call `mark_ident_internal` before now call `mark_name_internal` in the `util` module by default.
The commits can (and probably should) be squashed, they're separated for clarity.
Fixes#512
Co-authored-by: datdenkikniet <jcdra1@gmail.com>
fq_ident is always internal
rq_ident is always internal
monotonic_ident is always internal
inputs_ident is always internal
local_resources_ident is always internal
shared_resources_ident is always internal
monotonic_instants_ident is always internal
tq_ident is always internal
timer_queue_marker_ident is always internal
static_shared_resource_ident is always internal
static_local_resource_ident is always internal
declared_static_local_resource_ident is always internal
Only names, not idents, are now marked as internal
Use same rtic internal everywhere
514: Silence rust-analyzer warnings on internal types r=korken89 a=AfoHT
Continues the work started in #513
Co-authored-by: Henrik Tjäder <henrik@grepit.se>
506: book: Add note to remember to choose target r=AfoHT a=CuriouslyCurious
While following the instructions in the book I ran into a wall. I was getting linker errors and had no idea why. Turns out trying to run `cargo build --example init` on an x86 build target maybe doesn't work too well, so I added a note about it. 😅
I'll leave this as a draft since my Russian isn't fluent enough to add the note there as well. Also, adding a modified version of `.config/cargo.toml` from the embedded example might be a decent idea but wanted to hear from you guys first. :P
Co-authored-by: CuriouslyCurious <thecuriouslycurious@protonmail.com>
501: Propogate the task attributes to the spawn handles r=AfoHT a=crawford
This allows tasks to be gated by `cfg` attributes when also using
monotonics. For example:
```rust
#[cfg(feature = "logging")]
#[task(shared = [logger])]
fn logger_init(mut cx: logger_init::Context) {
/* ... */
}
```
Without this change, the reschedule_at() implementation is
unconditionally included even though it references the SpawnHandle from
its task module, which is _conditionally_ included. This resulted in
compiler errors like the following:
```
error[E0433]: failed to resolve: use of undeclared crate or module `logger_init`
--> src/main.rs:243:8
|
243 | fn logger_init(mut cx: logger_init::Context) {
| ^^^^^^^^^^^ use of undeclared crate or module `logger_init`
```
Co-authored-by: Alex Crawford <rtic@code.acrawford.com>
502: book/resources: highlight that `#[lock_free]` includes a compile-time check r=AfoHT a=japaric
for the "same priority requirement"; this prevents data races
Co-authored-by: Jorge Aparicio <jorge.aparicio@ferrous-systems.com>
This allows tasks to be gated by `cfg` attributes when also using
monotonics. For example:
```rust
#[cfg(feature = "logging")]
#[task(shared = [logger])]
fn logger_init(mut cx: logger_init::Context) {
/* ... */
}
```
Without this change, the reschedule_at() implementation is
unconditionally included even though it references the SpawnHandle from
its task module, which is _conditionally_ included. This resulted in
compiler errors like the following:
```
error[E0433]: failed to resolve: use of undeclared crate or module `logger_init`
--> src/main.rs:243:8
|
243 | fn logger_init(mut cx: logger_init::Context) {
| ^^^^^^^^^^^ use of undeclared crate or module `logger_init`
```