Releases: pmem/libpmemobj-cpp
Libpmemobj-cpp Version 1.11.1
This release fixes minor bugs.
Notable changes:
- radix_tree: fix assing_val
- radix_tree: fix internal find
- radix_tree: fix try_emplace implementation
- radix_tree: fix use after free
- string_view: add assert for operator[]
- self_relative_ptr: fix UB when adding non-zero offset to possibly null pointer
- tests: fix radix_tx_abort test
- tests: link atomic to all tests
Libpmemobj-cpp Version 1.10.1
This release fixes minor bugs.
This is the last patch release for libpmemobj-cpp 1.10 version.
Maintenance of this version is no longer supported.
It contains all bugfixes and updates from previous patch releases
(1.9.1, 1.8.2, 1.7.1, 1.6.1, 1.5.2).
Libpmemobj-cpp Version 1.9.1
This release fixes minor bugs.
Notable changes:
- concurrent_hash_map: fix free_data()
- concurrent_hash_map: make double to size_t cast explicit in defragment()
- peristent_ptr: add missing offset calculation
Libpmemobj-cpp Version 1.8.2
This release fixes minor bugs.
This is the last patch release for libpmemobj-cpp 1.8 version.
Maintenance of this version is no longer supported.
Notable changes:
- vector: fix referencing empty array
- vector: Fix undefined behaviour on realloc
Libpmemobj-cpp Version 1.7.1
This release fixes minor bugs.
This is the last patch release for libpmemobj-cpp 1.7 version.
Maintenance of this version is no longer supported.
Notable changes:
- Properly install pkg-config file for all configurations
- Fix void_t declaration and API usage for concurrent hashmap test
Libpmemobj-cpp Version 1.13.0
This release introduces new concurrent data structure - MPSC queue and implements limited concurrency support for radix tree.
New features:
- Introduce experimental MPSC queue (pmem::obj::experimental::mpsc_queue)
- Implement support for multi-reader single-writer concurrency in pmem::obj::experimental::radix_tree
- Introduce basic_dram_inline_string which can be kept both on pmem and dram
Bug fixes:
- Fix radix_tree leaf layout to ensure proper key/value alignment
Other changes:
- Switch default CMake's build type from "Debug" to "RelWithDebInfo" it's relevant for a GitHub users (who may e.g. run some benchmarks)
- Add std::initializer_list constructor to pmem::obj::array to mimic aggregate initialization post C++20
Libpmemobj-cpp Version 1.6.1
This release fixes minor bugs.
This is the last patch release for libpmemobj-cpp 1.6 version.
Maintenance of this version is no longer supported.
Notable changes:
- string: fix max_size() return value
- allocation_flag: mark constructor as explicit
- peristent_ptr: change ptr_offset_magic to be properly aligned
- fix few headers' includes
Libpmemobj-cpp Version 1.5.2
This release fixes minor bugs.
This is the last patch release for libpmemobj-cpp 1.5 version.
Maintenance of this version is no longer supported.
Notable changes:
- operator[] for contiguous_iterator takes signed integral instead of unsigned
- throw an exception when pmemobj_mutex_unlock fail
- fix crash when a previous transaction failed to start because of already taken lock.
Libpmemobj-cpp Version 1.12
This release introduces new transaction handler type (flat_transaction) which solves #516 (more information can be found in README).
It also introduces several improvements and bugfixes for radix_tree as well as additional methods for pmem::obj::string_view.
New features:
- pmem::obj::flat_transaction
- extend API for pmem::obj::string_view (relational operators, find, substr, copy, compare)
Bug fixes:
- make default bytes_view implementation in radix_tree work for wide characters
- fix assign_val function in radix tree which incorrectly handled inline_string for CharT != char
- fix use after free in radix_tree::erase method
Other changes:
- allow using any iterator which supports operator[], operator-() and operator--() in pmem::obj::slice
Libpmemobj-cpp Version 1.11
This release introduces a new experimental container - persistent radix_tree along with inline_string and string_view classes.
It also introduces a new pointer type: self_relative_ptr with std::atomic specialization.
New features:
- experimental radix_tree container (single-threaded sorted map)
- experimental inline_string class (class serves similar purpose to pmem::obj::string, but keeps the data within the same allocation as inline_string itself)
- string_view class (support for compilers older than C++17)
- experimental self_relative_ptr and std::atomic<self_relative_ptr> specialization (persistent smart ptr which encapsulates the self offseted pointer and provides member access, dereference and array access operators - for some workloads it could be faster alternative for persistent_ptr)
Optimizations:
- optimizations for concurrent_map with self_relative_ptr
Other changes:
- missing constructors for basic_string class
- conversion operator for basic_string class
- ported libcxx's sorted map tests
- lower and lower_eq methods for concurrent_map
- missing constructor for concurrent_map (comparator as an argument)