pkgsrc/devel/mdds/Makefile

22 lines
609 B
Makefile
Raw Normal View History

# $NetBSD: Makefile,v 1.46 2020/08/11 16:03:49 ryoon Exp $
DISTNAME= mdds-1.6.0
CATEGORIES= devel
MASTER_SITES= http://kohei.us/files/mdds/src/
EXTRACT_SUFX= .tar.bz2
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://gitlab.com/mdds/mdds
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<typename _Func> void walk(_Func& func, const multi_type_matrix& right) const * template<typename _Func> 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<typename _T> 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.
2019-02-19 16:45:30 +01:00
COMMENT= Collection of multi-dimensional data structure and indexing algorithms
LICENSE= mit
GNU_CONFIGURE= yes
USE_LANGUAGES= c c++
USE_TOOLS+= gmake
Updated package to its latest version, 0.9.0. Changes (apart from bugfixes) include: * all * added .pc file for pkg-config. * multi_type_vector * added another block function template to make it easier to declare container with 3 custom element types. * added two variants of release(): * template<typename _T> iterator release(size_type pos, _T& value) * template<typename _T> iterator release(const iterator& pos_hint, size_type pos, _T& value) * added a variant of release() that takes no arguments. This one releases all elements and makes the container empty afterward. * added a new variant of position() that takes const_iterator as position hint. * std::pair<const_iterator, size_type> position(const const_iterator& pos_hint, size_type pos) const * added compile-time macro MDDS_MULTI_TYPE_VECTOR_USE_DEQUE to allow users to specify std::deque as the underlying data array. By default, multi_type_vector uses std::vector as the underlying data array container. * added a new variant of swap() that allows partial swapping of content with another container. * added static block type identifier so that the numeric block type ID can be deduced from the block type directly. * value_type (which is a type of object returned when dereferencing an iterator) now stores 'position' which is the logical position of the first element of a block. * added position_type and const_position_type which are typedefs to the return types of position() methods. * added char and unsigned char types to the standard types supported by default. * added position() member method that takes a logical element position and returns a pair of block iterator where the element resides and its offset within that block. * added at() static member method to the data block, which calls the at() method of the underlying std::vector container. * added release() member method to allow caller to release an object stored inside a managed block. * added two templates to ease creation of custom element block functions when using one or two custom element types. * added transfer() member method to allow elements in a specified range to be transferred from one container to another. When transferring elements stored in a managed element block, the ownership of those elements is also transferred. * add variants of set() methods (both single- and multi-value) insert(), set_empty() and insert_empty() methods that take an iterator as an additional position hint parameter for block lookup speed optimization. * add support for non-const iterators which allow the client code to modify values directly from the iterators. * set() methods (both single- and multi-parameter variants), set_empty(), insert() and insert_empty() methods now return iterator that references the block to which the values are set or inserted. * multi_type_matrix: * get_numeric(), get_boolean(), and get_string() are made more efficient. * added position() method that returns a reference object to an element (position object). * added variants of get_numeric(), get_boolean() and get_string() that retrieves elements from position objects. * added variants of set() that sets new element values via position objects. * add a variant of the position() method that takes an iterator as positional hint. Note that there is no variant of position() that takes const_iterator. * flat_segment_tree * changed the return type of search_tree from bool to std::pair<const_iterator,bool>, to make it consistent with the search() method. Note that this is an API-incompatible change.
2013-08-22 16:42:57 +02:00
PKGCONFIG_OVERRIDE+= misc/mdds.pc.in
BUILDLINK_DEPMETHOD.boost-headers?= build
.include "../../devel/boost-headers/buildlink3.mk"
.include "../../devel/boost-libs/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"