Skip to content
This repository has been archived by the owner on Mar 22, 2023. It is now read-only.

Releases: pmem/libpmemobj-cpp

Libpmemobj-cpp Version 1.11.1

06 Sep 10:52
Compare
Choose a tag to compare

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

30 Aug 10:06
Compare
Choose a tag to compare

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

08 Aug 14:58
Compare
Choose a tag to compare

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

01 Aug 18:04
Compare
Choose a tag to compare

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

29 Jul 13:12
Compare
Choose a tag to compare

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

27 Jul 13:32
1.13.0
9599f72
Compare
Choose a tag to compare

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

06 Jul 11:29
Compare
Choose a tag to compare

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

28 Jun 16:02
Compare
Choose a tag to compare

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

15 Feb 11:58
1.12
b570268
Compare
Choose a tag to compare

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

30 Sep 17:17
Compare
Choose a tag to compare

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)