diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..c60672a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,45 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [0.0.7] - 2024-04-09 + +### Added + +- `Zeroable` derive macro +- `..Zeroable::zeroed()` tail expression support in `[try_][pin_]init!` macros: allowed to omit + fields, omitted fields are initialized with `0` +- `[pin_]chain` functions to modify a value after an initializer has run +- `[pin_]init_array_from_fn` to create `impl [Pin]Init<[T; N], E>` from a generator closure + `fn(usize) -> impl [Pin]Init` +- `impl Zeroable for UnsafeCell` + +### Changed + +- `PinInit` is now a supertrait of `Init` (before there was a blanket impl) + +### Removed + +- coverage workflow and usage of `#[feature(no_coverage)]` +- `impl Zeroable for Infallible` (see [Security](#security)) + +### Fixed + +- `Self` in generic bounds on structs with `#[pin_data]` +- const generic default parameter values can now be used on structs with `#[pin_data]` + +### Security + +- `impl Zeroable for Infallible` (#13) it was possible to trigger UB by creating a value of type + `Box` via `Box::init(zeroed())` + +## [0.0.6] - 2023-04-08 + +[unreleased]: https://github.com/Rust-for-Linux/pinned-init/compare/v0.0.7...HEAD +[0.0.7]: https://github.com/Rust-for-Linux/pinned-init/compare/v0.0.6...v0.0.7 +[0.0.6]: https://github.com/Rust-for-Linux/pinned-init/releases/tag/v0.0.6 diff --git a/Cargo.lock b/Cargo.lock index 9cf53b9..d4e2ea6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -189,7 +189,7 @@ checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pinned-init" -version = "0.0.6" +version = "0.0.7" dependencies = [ "compiletest_rs", "libc", @@ -199,7 +199,7 @@ dependencies = [ [[package]] name = "pinned-init-macro" -version = "0.0.4" +version = "0.0.5" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 408f400..37dbffe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pinned-init" -version = "0.0.6" +version = "0.0.7" edition = "2021" authors = ["y86-dev"] @@ -15,7 +15,7 @@ categories = ["no-std", "rust-patterns", "embedded"] [dependencies] paste = "1.0" -pinned-init-macro = { path = "./pinned-init-macro", version = "=0.0.4" } +pinned-init-macro = { path = "./pinned-init-macro", version = "=0.0.5" } [features] default = ["std"] diff --git a/pinned-init-macro/Cargo.lock b/pinned-init-macro/Cargo.lock index 039cc9b..b0be1b3 100644 --- a/pinned-init-macro/Cargo.lock +++ b/pinned-init-macro/Cargo.lock @@ -4,7 +4,7 @@ version = 3 [[package]] name = "pinned-init-macro" -version = "0.0.4" +version = "0.0.5" dependencies = [ "proc-macro2", "quote", diff --git a/pinned-init-macro/Cargo.toml b/pinned-init-macro/Cargo.toml index 9cc743a..e685591 100644 --- a/pinned-init-macro/Cargo.toml +++ b/pinned-init-macro/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pinned-init-macro" -version = "0.0.4" +version = "0.0.5" edition = "2021" authors = ["y86-dev"]