head 1.5; access; symbols pkgsrc-2026Q1:1.5.0.6 pkgsrc-2026Q1-base:1.5 pkgsrc-2025Q4:1.5.0.4 pkgsrc-2025Q4-base:1.5 pkgsrc-2025Q3:1.5.0.2 pkgsrc-2025Q3-base:1.5 pkgsrc-2025Q2:1.4.0.14 pkgsrc-2025Q2-base:1.4 pkgsrc-2025Q1:1.4.0.12 pkgsrc-2025Q1-base:1.4 pkgsrc-2024Q4:1.4.0.10 pkgsrc-2024Q4-base:1.4 pkgsrc-2024Q3:1.4.0.8 pkgsrc-2024Q3-base:1.4 pkgsrc-2024Q2:1.4.0.6 pkgsrc-2024Q2-base:1.4 pkgsrc-2024Q1:1.4.0.4 pkgsrc-2024Q1-base:1.4 pkgsrc-2023Q4:1.4.0.2 pkgsrc-2023Q4-base:1.4 pkgsrc-2023Q3:1.3.0.14 pkgsrc-2023Q3-base:1.3 pkgsrc-2023Q2:1.3.0.12 pkgsrc-2023Q2-base:1.3 pkgsrc-2023Q1:1.3.0.10 pkgsrc-2023Q1-base:1.3 pkgsrc-2022Q4:1.3.0.8 pkgsrc-2022Q4-base:1.3 pkgsrc-2022Q3:1.3.0.6 pkgsrc-2022Q3-base:1.3 pkgsrc-2022Q2:1.3.0.4 pkgsrc-2022Q2-base:1.3 pkgsrc-2022Q1:1.3.0.2 pkgsrc-2022Q1-base:1.3 pkgsrc-2021Q4:1.2.0.12 pkgsrc-2021Q4-base:1.2 pkgsrc-2021Q3:1.2.0.10 pkgsrc-2021Q3-base:1.2 pkgsrc-2021Q2:1.2.0.8 pkgsrc-2021Q2-base:1.2 pkgsrc-2021Q1:1.2.0.6 pkgsrc-2021Q1-base:1.2 pkgsrc-2020Q4:1.2.0.4 pkgsrc-2020Q4-base:1.2 pkgsrc-2020Q3:1.2.0.2 pkgsrc-2020Q3-base:1.2 pkgsrc-2020Q2:1.1.0.12 pkgsrc-2020Q2-base:1.1 pkgsrc-2020Q1:1.1.0.8 pkgsrc-2020Q1-base:1.1 pkgsrc-2019Q4:1.1.0.10 pkgsrc-2019Q4-base:1.1 pkgsrc-2019Q3:1.1.0.6 pkgsrc-2019Q3-base:1.1 pkgsrc-2019Q2:1.1.0.4 pkgsrc-2019Q2-base:1.1 pkgsrc-2019Q1:1.1.0.2 pkgsrc-2019Q1-base:1.1; locks; strict; comment @# @; 1.5 date 2025.08.30.04.55.15; author ryoon; state Exp; branches; next 1.4; commitid 50qE6oOZ2IEy9I8G; 1.4 date 2023.10.15.07.18.52; author ryoon; state Exp; branches; next 1.3; commitid xoL9MS3FdxLZXGIE; 1.3 date 2022.02.05.04.00.52; author ryoon; state Exp; branches; next 1.2; commitid AJZudWyanHkGHnrD; 1.2 date 2020.08.11.16.03.49; author ryoon; state Exp; branches; next 1.1; commitid ihOP1UPsFLoS9FjC; 1.1 date 2019.02.19.15.45.30; author ryoon; state Exp; branches; next ; commitid 8KvS6rRjzuWKnocB; desc @@ 1.5 log @devel/mdds: Update to 3.1.0 Changelog: mdds 3.1.0 * multi_type_vector * revised push_back() to also accept an rvalue reference. * added emplace_back() to allow in-place construction of values. However, due to limitation of how the value type is determined, the type of an inserted value must be default constructible, and the call incurs the overhead of one default construction. * rtree * the erase() methods to take their iterator parameter by value. * flat_segment_tree * both insert() and search() methods to take their const_iterator parameter by value. * the size of its const_iterator type has been reduced by not caching key and value as its data members. Its size is now equal to the sum of the sizes of two pointers and one boolean value. It also now returns immutable references to the stored key and value. mdds 3.0.0 * trie_map and packed_trie_map * implemented equal (==) and non-equal (!=) operators in trie_map. Previously only packed_trie_map implemented these operators. * added support for storing values that are only movable but not copyable. Note that when using move-only values, the copy constructors do not work. Also, due to this change, the trie_map::pack() method is no longer const; it now moves the stored values into the packed variant. If you need to preserve the original values stored in the non-packed variant, make a copy first before calling the trie_map::pack() method. * simplified the template parameters so that the first template parameter specifies the key type. * revised value storage in packed_trie_map so that the size of the unit value type of its internal buffer would not be forced to be the size of a pointer. The user can now optionally specify a different-sized unsigned integer type as the value type of the internal buffer. This will benefit mostly when the number of stored values is small so that a smaller-sized integer type can sufficiently store all values. In such cases, the size of the in-memory buffer as well as the size of a state file will become smaller. * implemented a method to allow traversal of the trie structure one node at a time. This can be done by first calling the root_node() method to retrieve the root node of the trie then traverse through its child nodes. * added overview section in the documentation. * segment_tree * significantly revised its API design to give it necessary polish in order to bring its usability to an acceptable level. * added boundary_keys() method that returns a sorted sequence of boundary keys. * re-implemented the equal and non-equal operators to work with move-only values. * added documentation with code examples. * sorted_string_map * EntryT template parameter has been removed which was previously used to optionally allow defining keys in the entry array as std::string_view. After the removal of the template parameter, keys in the entry array are always defined as std::string_view. * added find_key() method to perform reverse lookup of the key from a value, with two lookup algorithms to choose from - linear search and hash-based search. * added documentation with code examples. @ text @$NetBSD: patch-configure,v 1.4 2023/10/15 07:18:52 ryoon Exp $ * Do not conflict with older mdds. --- configure.orig 2023-04-29 13:07:54.000000000 +0000 +++ configure @@@@ -845,7 +845,7 @@@@ localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}-3.0' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' @ 1.4 log @mdds: Update to 2.1.1 Changelog: 2.1.1 flat_segment_tree * added a method that returns a segment range object compatible with ranged for loop. * added a move constructor and a move assignment operator. * added variants of search() and search_tree() that return a result data structure that contains the value, the start and end keys of the range. multi_type_vector * added a range adaptor for mdds::mtv::element_block compatible with ranged for loop. 2.1.0 general * switched to using ax_valgrind_check for running memory tests. This introduces additional build targets, such as check-valgrind to run the tests under valgrind. multi_type_vector * delayed_delete_vector has been introduced as the new default storage type for the element blocks. This storage type is optimized for use cases where elements get repeatedly erased from the front of the array, by delaying the actual deletion of the elements until much later. This reduces the amount of element shifting associated with the element deletions, which can be costly. * added an additional template parameter to the element block types in order to allow the underlying storage type to be specified per element type. This can be used to switch between std::vector, std::deque, delayed_delete_vector, or any other compatible custom container types. sorted_string_map * made the entry type a template parameter to allow optionally defining the keys in the entry values as std::string_view. 2.0.3 general * defined clang-format rules, and globally applied them to all active source files. multi_type_vector * revised the block position lookup implementation to avoid using the internal STL iterators. The new implementation should be able to handle invalid position hints more gracefully without potential process termination. 2.0.2 multi_type_vector * added optional trace function that gets called on every called public method. @ text @d1 1 a1 1 $NetBSD: patch-configure,v 1.3 2022/02/05 04:00:52 ryoon Exp $ d12 1 a12 1 +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}-2.1' @ 1.3 log @mdds: Update to 2.0.1 Changelog: mdds 2.0.1 (not released yet) * general * addressed various coverity issues. * multi_type_vector * fixed random compiler warnings. * fixed event handling in copy construction. In aos, the event object was not copied when the parent container was copied. In soa, the element_block_acquired() callback was not called for the cloned element blocks. * added move constructors and move assignment operators to both aos and soa variants. mdds 2.0.0 * general * set the baseline C++ version to C++17. * multi_type_vector * implemented structure-of-arrays (SoA) storage as its default storage layout for better CPU cache efficiency. * added multiple block position adjustment implementations with various loop-unrolling factors combined with SSE2 and AVX2 features. * added a tool called runtime-env to benchmark different block position adjustment implementations to determine the optimal loop-unrolling factor. * rectangle_set * permanently removed. * rtree * fixed a bug where the memory positions of invalidated child nodes were not properly updated after tree mutation. The problem manifested itself when using libc++ as stdlib with clang. mdds 1.7.0 * trie_map * added copy and move constructors. * added a variant of find() method that returns a mutable iterator object. The user can now update the value associated with a key directly via the iterator object. * packed_trie_map * added copy and move constructors. * added load_state() and save_state() methods to allow loading state from and saving state to binary files. @ text @d1 1 a1 1 $NetBSD: patch-configure,v 1.2 2020/08/11 16:03:49 ryoon Exp $ d3 1 a3 1 * POSIX shell portability d5 1 a5 1 --- configure.orig 2021-12-11 01:51:19.000000000 +0000 d7 9 a15 61 @@@@ -5607,7 +5607,7 @@@@ if test "${enable_debug_stdcxx+set}" = s fi -if test x"$debug_stdcxx" == "xyes"; then : +if test x"$debug_stdcxx" = "xyes"; then : CXXFLAGS="$CXXFLAGS -D_GLIBCXX_DEBUG" @@@@ -5619,7 +5619,7 @@@@ if test "${enable_release_tests+set}" = fi -if test x"$release_tests" == "xyes"; then : +if test x"$release_tests" = "xyes"; then : CXXFLAGS="$CXXFLAGS -DNDEBUG -O2" @@@@ -5643,13 +5643,13 @@@@ else fi -if test x"$enable_loop_unrolling" == "xno"; then : +if test x"$enable_loop_unrolling" = "xno"; then : CXXFLAGS="$CXXFLAGS -DMDDS_LOOP_UNROLLING=0" fi -if test x"$enable_gcov" == "xyes"; then : +if test x"$enable_gcov" = "xyes"; then : CXXFLAGS="$CXXFLAGS --coverage -O0" @@@@ -5664,7 +5664,7 @@@@ else fi -if test x"$enable_openmp" == "xyes"; then : +if test x"$enable_openmp" = "xyes"; then : CXXFLAGS="$CXXFLAGS -fopenmp -DMDDS_USE_OPENMP=1" LDFLAGS="$LDFLAGS -fopenmp" @@@@ -5680,7 +5680,7 @@@@ else fi -if test x"$enable_sanitizer_coverage" == "xyes"; then : +if test x"$enable_sanitizer_coverage" = "xyes"; then : CXXFLAGS="$CXXFLAGS -fprofile-instr-generate -fcoverage-mapping -O0" @@@@ -6374,7 +6374,7 @@@@ else fi -if test x"$enable_werror" == "xyes"; then : +if test x"$enable_werror" = "xyes"; then : CXXFLAGS="$CXXFLAGS -Werror" @ 1.2 log @mdds: Update to 1.6.0 Changelog: multi_type_vector switched to using binary search on block position lookup, which significantly improves element access performance in general, at the expense of slight performance degradation on block shifting. added support for lcov, to visualize test coverage. @ text @d1 1 a1 1 $NetBSD: patch-configure,v 1.1 2019/02/19 15:45:30 ryoon Exp $ d5 1 a5 1 --- configure.orig 2020-02-07 00:00:40.000000000 +0000 d7 1 a7 1 @@@@ -2509,7 +2509,7 @@@@ if test "${enable_debug_stdcxx+set}" = s d16 1 a16 1 @@@@ -2521,7 +2521,7 @@@@ if test "${enable_release_tests+set}" = d25 1 a25 1 @@@@ -2545,13 +2545,13 @@@@ else d41 1 a41 1 @@@@ -2566,7 +2566,7 @@@@ else d48 1 a48 1 CXXFLAGS="$CXXFLAGS -fopenmp" d50 1 a50 1 @@@@ -2582,7 +2582,7 @@@@ else d59 1 a59 1 @@@@ -3589,7 +3589,7 @@@@ else @ 1.1 log @Update to 1.4.3 Changelog: mdds 1.4.3 * documentation * added details on how to use two type of iterators with flat_segment_tree. * added new section to describe how to use mtv::collection to iterate through multiple multi_type_vector instances as a single collection in the direction orthogonal to the direction of the individual vectors. * added new page for R-tree. * flat_segment_tree * fixed invalid memory access issue related to the swap() method which previously did not swap the non-leaf node pool store. The invalid memory access may occur after the contents of two instances get swapped, one instance get destroyed then the caller calls search_tree() on the other instance still alive. mdds 1.4.2 * all * fixed CXXFLAGS incorrectly being overwritten. * addressed a number of Coverity issues. mdds 1.4.1 * all * fixed all warnings on shadowed variables. * multi_type_matrix * all of its walk() methods now return either a copied or moved instance of the function object passed in as an input argument. Previously these methods had no return values. mdds 1.4.0 * rtree (new) * new data structure designed for optimal storage and query performance on multi-dimensional spatial data. The structure allows storage of both point and extent-based boundaries as keys associated with values. * multi_type_vector * mtv::elemnt_block now has the following methods: data(), cbegin(), cend(), crbegin() and crend(). * multi_type_vector now has cbegin(), cend(), crbegin(), and crend() methods. * some unnecessary user-provided special members have been removed to avoid warnings with -Wdeprecated-copy with GCC 9. * multi_type_matrix * all of its walk() methods now allow in-line lambdas to be used, by not taking a reference of the function object parameters. mdds 1.3.1 * flat_segment_tree * fixed a bug that caused an assertion error when inserting a out-of-bound segment whose start value equals the max key value. mdds 1.3.0 * multi_type_vector * changed the primary block array storage to remove additional indirection, for improved memory locality. mdds 1.2.3 * all * changed the configure script to use --docdir unmodified. * flat_segment_tree * added a segment iterator whose node value consists of the start and end keys and the value associated with each segment. its start and end positions can be retrieved via begin_segment() and end_segment() methods. mdds 1.2.2 * flat_segment_tree * fixed a bug that would cause segmentation faults with the insert() method with out-of-bound segment value pair. mdds 1.2.1 * multi_type_vector * added size() method to the element block type, which returns the actual size of the element block, instead of the cached size value stored in the parent structure that stores the element block. * fixed a double-deletion bug in the swap() method which would triggered when used with a managed element block. * mtv::collection * fixed collection iterator's get() method to properly return values from the boolean element block. mdds 1.2.0 * packed_trie_map * added begin() and end() methods that return read-only iterators. * find() method now returns a const_iterator instance. * prefix_search() method now returns a search_results instance that can be iterated. * null value no longer needs to be passed to the constructor. * find() and prefix_search() now have a variant that can take a key value that is of key_type directly. * trie_map * added begin() and end() methods that return read-only iterators. * find() method now returns a const_iterator instance. * prefix_search() method now returns a search_results instance that can be iterated. * null value no longer needs to be passed to the constructor. * find(), insert, and prefix_search() now have a variant that can take a key value that is of key_type directly. * sorted_string_map * fix build failure with _GLIBCXX_DEBUG defined. * multi_type_vector * remove compiler warning about shadowed variable. * added a supplemental class mdds::mtv::collection which allows multiple multi_type_vector instances of the same length to be grouped together in order to iterate through their elements sideways. * a variant of advance_position() static method that takes const_position_type has been added. * const_position_type advance_position(const const_position_type& pos, int steps) * multi_type_matrix * matrix_position() is now a const method. * the sub-matrix variant of walk() method now throws size_error exception when invalid start and end positions are passed. * slight performance improvement with the sub-matrix variant of walk() method that involves multiple column traversal. * added 2 new variants of walk() methods that allow parallel walking with another matrix instance. * template void walk(_Func& func, const multi_type_matrix& right) const * template void walk(_Func& func, const multi_type_matrix& right, const size_pair_type& start, const size_pair_type& end) const * improved performance of copy() and resize() methods. * added a variant of copy() that takes an array of values. * template void copy(size_type rows, size_type cols, const _T& it_begin, const _T& it_end) * integer type has been added to the list of types the matrix can store. In conjunction with this change, what was formerly known as the string trait structure is now known as the matrix trait, which specifies the actual integer type the matrix stores. * point_quad_tree * search_result has been renamed to search_results. @ text @d1 1 a1 1 $NetBSD$ d5 1 a5 1 --- configure.orig 2018-10-31 00:58:03.000000000 +0000 d7 1 a7 1 @@@@ -2496,7 +2496,7 @@@@ if test "${enable_debug_stdcxx+set}" = s d16 1 a16 1 @@@@ -2508,7 +2508,7 @@@@ if test "${enable_release_tests+set}" = d23 1 a23 1 CXXFLAGS="$CXXFLAGS -DNDEBUG" d25 35 a59 1 @@@@ -3395,7 +3395,7 @@@@ else @