[6.0] - 2025-11-24 - "stable"
This is a major stability release with critical bug fixes and new memory profiling capabilities.
Added
- Memory Benchmarking (#31) - Added
make bench-memcommand for memory profiling using Valgrind Massif- Tests uniform and Zipfian key distributions with 1M elements
- Measures data structure overhead separate from value storage
- Generates detailed memory usage reports
- Thanks to @hiqsociety for requesting this feature in #16
- Implemented by @Copilot
Fixed
-
Buffer Overflow & Memory Leak (#30) - Critical fixes in the
setmethod- Fixed buffer overflow that wrote one byte beyond allocated memory
- Fixed memory leak using wrong delete operator for arrays (
delete→delete[]) - Added test documenting C-string semantics behavior
- Thanks to @Haibarapink for reporting in #21
- Implemented by @Copilot
-
Node Growth Bug (#29) - Fixed
node_16::grow()missing 128 offset- Children inserted before growth became unreachable after node_16→node_48 transition
- Iterator navigation returned incorrect keys
- Added comprehensive test for node growth scenarios
- Thanks to @bowling233 for the fix (co-author)
- Implemented by @Copilot
-
Iterator Crash (#25) - Fixed segmentation fault when iterating single-element trees
- Fixed buffer underflow in
step::operator++() - Fixed empty stack access in
seek_leaf() - Added missing
#include <cstdint>causing 138 compilation errors - Thanks to @YelaShady for reporting in #19
- Implemented by @Copilot
- Fixed buffer underflow in
Changed
-
Build System (#24) - Increased CMake minimum version from 3.0 (2014) to 3.12 (2018)
- Brings substantial improvements while maintaining C++11 compatibility
- Implemented by @Copilot
-
CI/CD Improvements - Multiple enhancements by @rafaelkallis
- Added GitHub Actions for automated builds and tests
- Added devcontainer configuration for consistent development environment
- Fixed debug build failures on aarch64 (forced signed char)
- Resolved SIGSTKSZ compilation errors by disabling POSIX signals in doctest
- Fixed uninitialized variable and dangling reference issues
Contributors
A huge thank you to all contributors who made this release possible:
Issue Reporters:
- @hiqsociety - Memory benchmarking feature request (#16)
- @Haibarapink - Buffer overflow bug report (#21)
- @YelaShady - Iterator crash bug report (#19)
Code Contributors:
- @rafaelkallis - Project maintainer, CI/CD improvements, build fixes
- @bowling233 - Co-author of node growth fix
- @Copilot - Bug fixes and feature implementations
- @copilot-swe-agent[bot] - Automated code contributions
Release Manager:
- @copilot-swe-agent[bot] - Release preparation and changelog
Statistics
- 30 commits since version 5.0
- 5 pull requests merged
- 3 critical bugs fixed
- 1 new feature added
- 26 tests passing with 41,155,127 assertions