Skip to content

Commit fefaf39

Browse files
committed
release: cut v0.5.0
Finalize the 0.5.0 release with version bumps and a complete changelog covering all changes since v0.4.0. Made-with: Cursor
1 parent 4165f91 commit fefaf39

4 files changed

Lines changed: 17 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.5.0] - 2026-03-02
11+
1012
### Fixed
1113
- **ConcurrentSlabStore TOCTOU race conditions** — Separate `RwLock`s for index, entries, and free list allowed data corruption on concurrent update-after-remove, capacity overshoot under parallel inserts, and inconsistent reads during `clear()`. Consolidated into a single `SlabInner` behind one `RwLock` for full mutation atomicity.
1214
- **ARC ghost-list directory leak** — Case 4 (complete miss) did not prune ghost lists B1/B2, violating the paper's invariant that T1+T2+B1+B2 ≤ 2×capacity. Fixed to match the original ARC eviction logic.
@@ -21,9 +23,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2123
- Integration test suite `tests/slab_concurrency.rs` for ConcurrentSlabStore race conditions and atomicity.
2224
- Integration test suite `tests/policy_invariants.rs` for cross-policy capacity-0 semantics.
2325
- Per-policy regression tests for capacity-0 behavior, insert return values, ARC ghost-list bounds, and ConcurrentWeightStore metrics.
26+
- Metrics tracking for `ClockRing`, `ArcCache`, `CarCache`, and `ClockProCache`.
27+
- `cargo-deny` policy configuration (`deny.toml`) and CI checks for licenses/advisories.
2428

2529
### Changed
2630
- `ClockRing` module documentation updated with rustdoc intra-doc links and expanded operations table.
31+
- `LruCore` internals refactored to a pool-based, allocation-free design for improved hot-path predictability.
32+
- `SlotId`/`SlotArena` internals improved for stability and performance, including iterator refinements and corrected `approx_bytes` accounting.
33+
- `ClockRing::insert` slot management optimized to reduce unnecessary evictions.
34+
- `WeightStore` weight accounting updated to checked arithmetic with stronger invariant enforcement.
35+
- CI/release automation updated for benchmark reporting and crate publishing workflow improvements.
36+
- Dependency refreshes (including `chrono` patch update and lockfile refreshes).
37+
38+
### Documentation
39+
- Policy roadmap expanded and refreshed (including SIEVE, LHD, LeCaR, and Hyperbolic entries).
40+
- Additional architecture/API-guideline documentation polish across core data structures and policy docs.
2741

2842
## [0.4.0] - 2026-02-18
2943

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ resolver = "2"
44

55
[package]
66
name = "cachekit"
7-
version = "0.4.0"
7+
version = "0.5.0"
88
edition = "2024"
99
rust-version = "1.85"
1010
authors = ["Thomas Korrison <ferrite.db@gmail.com>"]

bench-support/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ name = "render_docs"
99
path = "src/bin/render_docs.rs"
1010

1111
[dependencies]
12-
cachekit = { path = "..", version = "0.4.0", features = ["policy-all"] }
12+
cachekit = { path = "..", version = "0.5.0", features = ["policy-all"] }
1313
criterion = "0.8"
1414
rand = "0.10"
1515
rand_distr = "0.6"

0 commit comments

Comments
 (0)