Skip to content

stable

Latest

Choose a tag to compare

@rafaelkallis rafaelkallis released this 24 Nov 13:30
97af12e

[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-mem command 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 set method

    • Fixed buffer overflow that wrote one byte beyond allocated memory
    • Fixed memory leak using wrong delete operator for arrays (deletedelete[])
    • 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

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:

Code Contributors:

Release Manager:

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