| # Releases |
| |
| ## 0.2.0 (WIP) |
| |
| - Many functions are asynchronous |
| - To make create an `async` main function you can use the attribute `#[libtock::main]` |
| - To retrieve the value of an asynchronous `value`, use `value.await` |
| - This is only possible within an `async fn`, so either |
| - Make the caller `fn` of `.await` an `async fn` |
| - Not recommended: Use `core::executor::block_on(value)` to retrieve the `value` |
| - `syscalls::yieldk_for` is no longer available |
| - Yielding manually is discouraged as it conflicts with Rust's safety guarantees. If you need to wait for a condition, use `futures::wait_until` and `.await`. |
| - `syscalls::yieldk` has become `unsafe` for the same reason |
| - Commands are no longer `unsafe` |
| - The low-level syscalls have been moved to `syscalls::raw` |
| - `syscalls::subscribe_ptr` becomes `syscalls::raw::subscribe` |
| - `syscalls::allow_ptr` becomes `syscalls::raw::allow` |
| - Targets without support for atomics can be built |
| - Most API functions, including `main()`, return a `Result<T, TockError>` |
| - The timer now supports to be used simultaneously. To make this safe, `TimerDriver` is now a singleton. |
| |
| ## a8bb4fa9be504517d5533511fd8e607ea61f1750 (0.1.0) |
| |
| - First and highly experimental `libtock-rs` API |