mirror of
https://github.com/embassy-rs/embassy.git
synced 2024-11-22 06:42:32 +00:00
3.6 KiB
3.6 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
raw::Executor
now has anfn initialize
that must be called once before starting to poll it.
0.6.3 - 2024-11-12
- Building with the
nightly
feature now works with the Xtensa Rust compiler 1.82. - Compare vtable address instead of contents. Saves 44 bytes of flash on cortex-m.
0.6.2 - 2024-11-06
- The
nightly
feature no longer requiresnightly-2024-09-06
or newer.
0.6.1 - 2024-10-21
- Soundness fix: Deny using
impl Trait
in task arguments. This was previously accidentally allowed when not using thenightly
feature, and could cause out of bounds memory accesses if spawning the same task mulitple times with different underlying types for theimpl Trait
. Affected versions are 0.4.x, 0.5.0 and 0.6.0, which have been yanked. - Add an architecture-agnostic executor that spins waiting for tasks to run, enabled with the
arch-spin
feature. - Update for breaking change in the nightly waker_getters API. The
nightly
feature now requiresnightly-2024-09-06
or newer. - Improve macro error messages.
0.6.0 - 2024-08-05
- Add collapse_debuginfo to fmt.rs macros.
- initial support for AVR
- use nightly waker_getters APIs
0.5.1 - 2024-10-21
- Soundness fix: Deny using
impl Trait
in task arguments. This was previously accidentally allowed when not using thenightly
feature, and could cause out of bounds memory accesses if spawning the same task mulitple times with different underlying types for theimpl Trait
. Affected versions are 0.4.x, 0.5.0 and 0.6.0, which have been yanked.
0.5.0 - 2024-01-11
- Updated to
embassy-time-driver 0.1
,embassy-time-queue-driver 0.1
, compatible withembassy-time v0.3
and higher.
0.4.0 - 2023-12-05
- Removed
arch-xtensa
. Use the executor provided by the HAL crate (esp-hal
,esp32s3-hal
, etc...) instead. - Added an arena allocator for tasks, allowing using the
main
andtask
macros on Rust 1.75 stable. (it is only used if thenightly
feature is not enabled. Whennightly
is enabled,type_alias_impl_trait
is used to statically allocate tasks, as before).
0.3.3 - 2023-11-15
- Add
main
macro reexport for Xtensa arch. - Remove use of
atomic-polyfill
. The executor now has multiple implementations of its internal data structures for cases where the target supports atomics or doesn't.
0.3.2 - 2023-11-06
- Use
atomic-polyfill
forriscv32
- Removed unused dependencies (static_cell, futures-util)
0.3.1 - 2023-11-01
- Fix spurious "Found waker not created by the Embassy executor" error in recent nightlies.
0.3.0 - 2023-08-25
- Replaced Pender. Implementations now must define an extern function called
__pender
. - Made
raw::AvailableTask
public - Made
SpawnToken::new_failed
public - You can now use arbitrary expressions to specify
#[task(pool_size = X)]
0.2.1 - 2023-08-10
- Avoid calling
pend()
when waking expired timers - Properly reset finished task state with
integrated-timers
enabled - Introduce
InterruptExecutor::spawner()
- Fix incorrect critical section in Xtensa executor
0.2.0 - 2023-04-27
- Replace unnecessary atomics in runqueue
- add Pender, rework Cargo features.
- add support for turbo-wakers.
- Allow TaskStorage to auto-implement
Sync
- Use AtomicPtr for signal_ctx, removes 1 unsafe.
- Replace unsound critical sections with atomics
0.1.1 - 2022-11-23
- Fix features for documentation
0.1.0 - 2022-11-23
- First release