|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [0.1.0] - 2025-01-23 |
| 9 | + |
| 10 | +### Added |
| 11 | +- Initial release of slick_object_pool |
| 12 | +- Lock-free multi-producer multi-consumer (MPMC) object pool implementation |
| 13 | +- Header-only library design for easy integration |
| 14 | +- C++20 compliant implementation |
| 15 | +- Cache-line aligned atomic operations to prevent false sharing |
| 16 | +- O(1) constant-time allocation and deallocation |
| 17 | +- Power-of-2 ring buffer with efficient bitwise indexing |
| 18 | +- Automatic heap fallback when pool is exhausted |
| 19 | +- Cross-platform support (Windows, Linux, macOS) |
| 20 | +- Comprehensive test suite with Google Test |
| 21 | +- CMake build system with FetchContent support |
| 22 | +- Support for AddressSanitizer, ThreadSanitizer, and UndefinedBehaviorSanitizer |
| 23 | +- Type safety with static assertions for trivially copyable types |
| 24 | +- Thread-safe operations for concurrent access |
| 25 | +- Detailed documentation and usage examples |
| 26 | +- MIT License |
| 27 | + |
| 28 | +### Features |
| 29 | +- `ObjectPool<T>` class template for type-safe object pooling |
| 30 | +- `allocate_object()` method for O(1) object allocation |
| 31 | +- `free_object()` method for O(1) object deallocation |
| 32 | +- `size()` method to query pool capacity |
| 33 | +- Namespace: `slick::ObjectPool<T>` |
| 34 | +- Include path: `<slick/object_pool.h>` |
| 35 | + |
| 36 | +### Documentation |
| 37 | +- Comprehensive README with architecture details |
| 38 | +- Usage examples for basic, multi-threaded scenarios |
| 39 | +- API reference documentation |
| 40 | +- Performance benchmarks and comparisons |
| 41 | +- Best practices and limitations guide |
| 42 | +- TESTING.md with detailed sanitizer instructions |
| 43 | +- DOCUMENTATION.md with implementation details |
| 44 | + |
| 45 | +### Platform Support |
| 46 | +- Windows (MSVC, MinGW) |
| 47 | +- Linux (GCC 10+, Clang 11+) |
| 48 | +- macOS (Clang 11+) |
| 49 | +- POSIX-compliant systems |
| 50 | + |
| 51 | +[0.1.0]: https://github.com/SlickQuant/slick_object_pool/releases/tag/v0.1.0 |
0 commit comments