libcds.git
7 years agoMerge branch 'integration' into dev
khizmax [Mon, 27 Apr 2015 20:23:32 +0000 (23:23 +0300)]
Merge branch 'integration' into dev

Conflicts:
cds/intrusive/split_list.h
cds/intrusive/split_list_nogc.h
cds/intrusive/split_list_rcu.h

7 years agoFixed split-list inc_item_count()
khizmax [Mon, 27 Apr 2015 20:17:52 +0000 (23:17 +0300)]
Fixed split-list inc_item_count()

7 years agoFixed max bucket count error in SplitList
khizmax [Fri, 24 Apr 2015 19:57:13 +0000 (22:57 +0300)]
Fixed max bucket count error in SplitList

Conflicts:
cds/intrusive/split_list.h

7 years agoFixed min/max macro problem in MS VC++
khizmax [Fri, 24 Apr 2015 19:24:06 +0000 (22:24 +0300)]
Fixed min/max macro problem in MS VC++

7 years agoFixed max bucket count error in SplitList
khizmax [Fri, 24 Apr 2015 19:57:13 +0000 (22:57 +0300)]
Fixed max bucket count error in SplitList

7 years agoFixed min/max macro problem in MS VC++
khizmax [Fri, 24 Apr 2015 19:24:06 +0000 (22:24 +0300)]
Fixed min/max macro problem in MS VC++

7 years agochangelog
khizmax [Fri, 24 Apr 2015 08:36:04 +0000 (11:36 +0300)]
changelog

7 years agoGCC 5 compatibility: std::list::size() O(1) complexity
khizmax [Thu, 23 Apr 2015 19:31:58 +0000 (22:31 +0300)]
GCC 5 compatibility: std::list::size() O(1) complexity

7 years agoFixed data races found by tsan
khizmax [Wed, 22 Apr 2015 20:12:06 +0000 (23:12 +0300)]
Fixed data races found by tsan

7 years agoAdded CMakeList patching for distributive script
khizmax [Sun, 19 Apr 2015 17:48:04 +0000 (20:48 +0300)]
Added CMakeList patching for distributive script

7 years agoMerge branch 'integration' into dev
khizmax [Sun, 19 Apr 2015 17:35:42 +0000 (20:35 +0300)]
Merge branch 'integration' into dev

7 years agoFixed memor orderding (tsan)
khizmax [Sun, 19 Apr 2015 17:32:56 +0000 (20:32 +0300)]
Fixed memor orderding (tsan)

7 years agoMerge pull request #28 from Rapotkinnik/upstream
Max Khizhinsky [Sun, 19 Apr 2015 17:26:48 +0000 (20:26 +0300)]
Merge pull request #28 from Rapotkinnik/upstream

CMake bulid system

7 years agoMerge pull request #27 from krinkinmu/fastpath-opt
Max Khizhinsky [Sun, 19 Apr 2015 17:24:13 +0000 (20:24 +0300)]
Merge pull request #27 from krinkinmu/fastpath-opt

Optimize SplitList inc_item_count method fastpath

7 years agoCMake build system introduced (issue #9)
Eugeny Kalishenko [Sun, 19 Apr 2015 10:28:12 +0000 (13:28 +0300)]
CMake build system introduced (issue #9)

7 years agoBuilding only library with cmake
Eugeny Kalishenko [Sat, 4 Apr 2015 23:03:40 +0000 (02:03 +0300)]
Building only library with cmake

7 years agoRelax memory order constraints.
Mike Krinkin [Thu, 16 Apr 2015 21:52:41 +0000 (00:52 +0300)]
Relax memory order constraints.

7 years agoOptimize fast path in inc_item_count.
Mike Krinkin [Thu, 16 Apr 2015 21:44:07 +0000 (00:44 +0300)]
Optimize fast path in inc_item_count.

7 years agoCast constant to size_t before left shift
Mike Krinkin [Thu, 16 Apr 2015 14:22:48 +0000 (17:22 +0300)]
Cast constant to size_t before left shift

7 years agoFix spelling and spaces.
Mike Krinkin [Thu, 16 Apr 2015 14:20:49 +0000 (17:20 +0300)]
Fix spelling and spaces.

7 years agoFixed memory ordering (BronsonAVLTreeMap, tsan)
khizmax [Fri, 17 Apr 2015 06:44:02 +0000 (09:44 +0300)]
Fixed memory ordering (BronsonAVLTreeMap, tsan)

7 years agoAdded missing header
khizmax [Thu, 16 Apr 2015 18:37:08 +0000 (21:37 +0300)]
Added missing header

7 years agoRelaxed memory order in SplitList
khizmax [Wed, 15 Apr 2015 20:35:21 +0000 (23:35 +0300)]
Relaxed memory order in SplitList

7 years agoBronsonAVLTree: removed unused code
khizmax [Tue, 14 Apr 2015 18:47:53 +0000 (21:47 +0300)]
BronsonAVLTree: removed unused code

7 years agoOn integration: Added more stats to Bronson's tree
khizmax [Tue, 14 Apr 2015 15:04:27 +0000 (18:04 +0300)]
On integration: Added more stats to Bronson's tree

7 years agoindex on integration: f6e850d Merge branch 'integration' into dev
khizmax [Tue, 14 Apr 2015 15:04:26 +0000 (18:04 +0300)]
index on integration: f6e850d Merge branch 'integration' into dev

7 years agoMerge branch 'integration' into dev
khizmax [Sun, 12 Apr 2015 19:53:16 +0000 (22:53 +0300)]
Merge branch 'integration' into dev

7 years agoMerge pull request #26 from krinkinmu/build-script-wip
Max Khizhinsky [Sun, 12 Apr 2015 19:30:11 +0000 (22:30 +0300)]
Merge pull request #26 from krinkinmu/build-script-wip

Fix bug in build script and support -D option.

7 years agoFixed do typo
khizmax [Sat, 11 Apr 2015 18:28:20 +0000 (21:28 +0300)]
Fixed do typo

7 years agoIssue #23: replaced std::random_shuffle with std::random
khizmax [Sat, 11 Apr 2015 18:27:55 +0000 (21:27 +0300)]
Issue #23: replaced std::random_shuffle with std::random

7 years agoImplement -D option.
Mike Krinkin [Fri, 10 Apr 2015 20:22:13 +0000 (23:22 +0300)]
Implement -D option.

The buildscript help says that it has support of the -D option,
while it actually hasn't. This patch add support of the -D option.

7 years agoChange single quotes to double quotes.
Mike Krinkin [Fri, 10 Apr 2015 20:19:24 +0000 (23:19 +0300)]
Change single quotes to double quotes.

Bash doesn't expand variables inside single quotes, so double
quotes are required here actually.

7 years agoIssue #23: removed std::random_shuffle from tests
khizmax [Thu, 9 Apr 2015 20:18:24 +0000 (23:18 +0300)]
Issue #23: removed std::random_shuffle from tests

7 years agoIssue #23: removed std::random_shuffle from tests
khizmax [Thu, 9 Apr 2015 19:19:35 +0000 (22:19 +0300)]
Issue #23: removed std::random_shuffle from tests

7 years agoIssue #23: Added std::random_device to TestCase class
khizmax [Thu, 9 Apr 2015 17:47:04 +0000 (20:47 +0300)]
Issue #23: Added std::random_device to TestCase class

7 years agoChanged map_delodd test
khizmax [Tue, 7 Apr 2015 15:04:09 +0000 (18:04 +0300)]
Changed map_delodd test

7 years agoaligned allocator is raised std::bad_alloc when no memory
khizmax [Tue, 7 Apr 2015 13:57:49 +0000 (16:57 +0300)]
aligned allocator is raised std::bad_alloc when no memory

7 years agoReorganized map2 unit test to reduce compiling time and memory
khizmax [Tue, 7 Apr 2015 12:58:12 +0000 (15:58 +0300)]
Reorganized map2 unit test to reduce compiling time and memory

7 years agoset2 unit test: fixed GCC incompatibility
khizmax [Mon, 6 Apr 2015 16:56:19 +0000 (19:56 +0300)]
set2 unit test: fixed GCC incompatibility

7 years agoFixed missing memory order
khizmax [Mon, 6 Apr 2015 16:18:09 +0000 (19:18 +0300)]
Fixed missing memory order

7 years agoSplit up set2 unit test to reduce compiling time and memory
khizmax [Mon, 6 Apr 2015 15:29:49 +0000 (18:29 +0300)]
Split up set2 unit test to reduce compiling time and memory

7 years agoWin projects: disabled some noise warnings
khizmax [Mon, 6 Apr 2015 09:49:44 +0000 (12:49 +0300)]
Win projects: disabled some noise warnings

7 years agoWin projects: disabled some noise warnings
khizmax [Sun, 5 Apr 2015 20:24:18 +0000 (23:24 +0300)]
Win projects: disabled some noise warnings

7 years agoWin projects: disabled some noise warnings
khizmax [Sun, 5 Apr 2015 10:18:39 +0000 (13:18 +0300)]
Win projects: disabled some noise warnings

7 years agoImproved map unit test
khizmax [Sun, 5 Apr 2015 09:49:51 +0000 (12:49 +0300)]
Improved map unit test

7 years agoBronsonAVLTreeMap: removed recursion
khizmax [Sun, 5 Apr 2015 09:49:18 +0000 (12:49 +0300)]
BronsonAVLTreeMap: removed recursion

7 years agoWin projects: disabled some noise warnings
khizmax [Sun, 5 Apr 2015 08:25:52 +0000 (11:25 +0300)]
Win projects: disabled some noise warnings

7 years agoWin projects: disabled some noise warnings
khizmax [Sat, 4 Apr 2015 20:10:47 +0000 (23:10 +0300)]
Win projects: disabled some noise warnings

7 years agoSplit Win unit-test projects to reduce compiling time
khizmax [Sat, 4 Apr 2015 14:44:59 +0000 (17:44 +0300)]
Split Win unit-test projects to reduce compiling time

7 years agoBronsonAVLTreeMap: fixed update() bug
khizmax [Sat, 4 Apr 2015 13:46:47 +0000 (16:46 +0300)]
BronsonAVLTreeMap: fixed update() bug

7 years agoBronsonAVLTreeMap: fixed remove algorithm
khizmax [Sat, 4 Apr 2015 10:17:20 +0000 (13:17 +0300)]
BronsonAVLTreeMap: fixed remove algorithm

7 years agoBronsonAVLTreeMap: fixed memory ordering
khizmax [Sat, 4 Apr 2015 10:03:00 +0000 (13:03 +0300)]
BronsonAVLTreeMap: fixed memory ordering

7 years agoFixed BronsonAVLTree insert/update bug (incomplete)
khizmax [Fri, 3 Apr 2015 15:52:01 +0000 (18:52 +0300)]
Fixed BronsonAVLTree insert/update bug (incomplete)

7 years agoMerge branch 'integration' into dev
khizmax [Fri, 3 Apr 2015 13:04:34 +0000 (16:04 +0300)]
Merge branch 'integration' into dev

7 years agoMerge pull request #25 from krinkinmu/header-deps-wip
Max Khizhinsky [Fri, 3 Apr 2015 06:46:57 +0000 (09:46 +0300)]
Merge pull request #25 from krinkinmu/header-deps-wip

Add header file dependencies to build script.

7 years agoAdd header file dependencies to build script.
Mike Krinkin [Thu, 2 Apr 2015 21:22:46 +0000 (00:22 +0300)]
Add header file dependencies to build script.

After changing header files there are two options to rebuild
library:
 - rebuild library from scratch (using --clean flag)
 - manually delete affected object files and rebuild them.
This patch adds dependencies on header files to Makefile, for this
puporse option -MMD is used. The patch is tested with gcc and clang
compilers.

7 years agoRemoved trailing spaces
khizmax [Thu, 2 Apr 2015 19:56:54 +0000 (22:56 +0300)]
Removed trailing spaces

7 years agoFixed docs
khizmax [Thu, 2 Apr 2015 19:52:05 +0000 (22:52 +0300)]
Fixed docs

7 years agoBronsonAVLTreeMap: minor changes
khizmax [Thu, 2 Apr 2015 19:22:52 +0000 (22:22 +0300)]
BronsonAVLTreeMap: minor changes

7 years agoFixed error in BronsonAVLTreeMap::find()
khizmax [Tue, 31 Mar 2015 10:29:23 +0000 (13:29 +0300)]
Fixed error in BronsonAVLTreeMap::find()
Loops refactored

7 years agoAdded MichaelMap based on unordered LazyList<nogc> to map unit tests
khizmax [Mon, 30 Mar 2015 19:01:45 +0000 (22:01 +0300)]
Added MichaelMap based on unordered LazyList<nogc> to map unit tests

7 years agoRemoved test-hdr/unordered_list dir
khizmax [Mon, 30 Mar 2015 15:48:17 +0000 (18:48 +0300)]
Removed test-hdr/unordered_list dir
Fixed build script

7 years agoRenamed test-hdr/ordered_list dir to test-hdr/list, added unordered LazyList<nogc...
khizmax [Mon, 30 Mar 2015 15:38:06 +0000 (18:38 +0300)]
Renamed test-hdr/ordered_list dir to test-hdr/list, added unordered LazyList<nogc> tests

7 years agoRefactored LazyList<nogc> with ordering option
khizmax [Mon, 30 Mar 2015 13:30:28 +0000 (16:30 +0300)]
Refactored LazyList<nogc> with ordering option

7 years agoMerge branch 'integration' into dev
khizmax [Mon, 30 Mar 2015 11:38:59 +0000 (14:38 +0300)]
Merge branch 'integration' into dev

7 years agoMerge pull request #24 from krinkinmu/unordered-list-wip
Max Khizhinsky [Mon, 30 Mar 2015 11:34:35 +0000 (14:34 +0300)]
Merge pull request #24 from krinkinmu/unordered-list-wip

Unordered nogc lazy list implementation.

7 years agoRemoved unused parameter
khizmax [Sun, 29 Mar 2015 14:00:42 +0000 (17:00 +0300)]
Removed unused parameter

7 years agoAdded more statistics, improved memory ordering
khizmax [Sun, 29 Mar 2015 07:50:05 +0000 (10:50 +0300)]
Added more statistics, improved memory ordering

7 years agoAdd michael set test with unordered lazy list.
Mike Krinkin [Sat, 28 Mar 2015 13:14:51 +0000 (16:14 +0300)]
Add michael set test with unordered lazy list.

7 years agoAdd michael map test with unordered lazy list.
Mike Krinkin [Sat, 28 Mar 2015 13:14:16 +0000 (16:14 +0300)]
Add michael map test with unordered lazy list.

7 years agoAdd find_with tests for nonintrusive and k/v lists.
Mike Krinkin [Sat, 28 Mar 2015 12:07:20 +0000 (15:07 +0300)]
Add find_with tests for nonintrusive and k/v lists.

It is just a fixed version of tests for ordered nonintrusive and
key/value lists.

7 years agoImplement find_with in nonintrusive and k/v lists.
Mike Krinkin [Sat, 28 Mar 2015 12:03:04 +0000 (15:03 +0300)]
Implement find_with in nonintrusive and k/v lists.

Implementation is pretty straightforward.

7 years agoAdd find_with calls to intrusive lazy list test.
Mike Krinkin [Sat, 28 Mar 2015 11:43:12 +0000 (14:43 +0300)]
Add find_with calls to intrusive lazy list test.

Similar to ordered intrusive lazy list tests.

7 years agoAdd find_with to unordered intrusive list.
Mike Krinkin [Sat, 28 Mar 2015 11:38:07 +0000 (14:38 +0300)]
Add find_with to unordered intrusive list.

Ordered intrusive lazy list has find_with method, that allows to
lookup items using custom less-like functor, find_with for
unordered is similar, but it uses equal_to-like functor.

7 years agoAdd tests for unordered nonintrusive and kv lists.
Mike Krinkin [Sat, 28 Mar 2015 10:04:02 +0000 (13:04 +0300)]
Add tests for unordered nonintrusive and kv lists.

These tests just rewritten version of similar test for ordered
nonintrusive and key-value lists.

7 years agoSupport sort option in nonintrusive and kv lists.
Mike Krinkin [Sat, 28 Mar 2015 10:02:13 +0000 (13:02 +0300)]
Support sort option in nonintrusive and kv lists.

Nonintrusive lazy list and key-value list use intrusive lazy list
as backend, so implementation is pretty simple.

7 years agoAdd header tests for unordered intrusive list.
Mike Krinkin [Sat, 28 Mar 2015 09:59:09 +0000 (12:59 +0300)]
Add header tests for unordered intrusive list.

This tests just a fixed version of header tests for ordered lazy
list.

7 years agoImplement unordered intrusive lazy list.
Mike Krinkin [Sat, 28 Mar 2015 09:53:52 +0000 (12:53 +0300)]
Implement unordered intrusive lazy list.

Add implementation of unordered policy for intrusive lazy list.
Implementation uses tratis::sort bool flag and std::enable_if
to choose appropriate ordered/unordered implementation of search
and equal functions.

Also this fix disables find_with function for unordered list for
simplicity. find_with is a part of public interface, so providing
alternative implementation with same name and different semantic
is arguable.

7 years agoDerive equal_to from compare/less functors.
Mike Krinkin [Sat, 28 Mar 2015 06:58:27 +0000 (09:58 +0300)]
Derive equal_to from compare/less functors.

For unordered lists it is possible to derive equal_to from compare
or less functors. This patch fixes make_equal_to so that it
returns equal_to if it is specified, else if compare is specified
it derives equal_to from compare functor, otherwise it derives
equal_to from less functor.

7 years agoAdd equal_to/sort options to nonintrusive trait.
Mike Krinkin [Sat, 28 Mar 2015 06:43:31 +0000 (09:43 +0300)]
Add equal_to/sort options to nonintrusive trait.

Nonintrusive list uses intrusive list as backend, so it is
required to not break the build.

7 years agoAdd sort policy to intrusive lazy list trait.
Mike Krinkin [Sat, 28 Mar 2015 06:36:41 +0000 (09:36 +0300)]
Add sort policy to intrusive lazy list trait.

Boolean sort flag indicates whether list is ordered or unordered.
Default value is false, so, by default, intrusive lazy list is
unordered.

7 years agoAdd equal_to option to intrusive lazy list trait.
Mike Krinkin [Sat, 28 Mar 2015 06:28:33 +0000 (09:28 +0300)]
Add equal_to option to intrusive lazy list trait.

Equal functor will be used for unordered lazy list. As comment says,
it would be possible to derive equal_to from comparator or less
functors.

7 years agoMerge branch 'dev'
khizmax [Fri, 27 Mar 2015 14:14:50 +0000 (17:14 +0300)]
Merge branch 'dev'

7 years agoFixed build script
khizmax [Fri, 27 Mar 2015 14:11:39 +0000 (17:11 +0300)]
Fixed build script

7 years agoFixed build script
khizmax [Fri, 27 Mar 2015 13:13:00 +0000 (16:13 +0300)]
Fixed build script

7 years agoSplitted up set_insdelfind test
khizmax [Fri, 27 Mar 2015 12:40:02 +0000 (15:40 +0300)]
Splitted up set_insdelfind test

7 years agoSplitted up set_insdel_string test
khizmax [Fri, 27 Mar 2015 12:23:51 +0000 (15:23 +0300)]
Splitted up set_insdel_string test

7 years agoSplitted up set_delodd test
khizmax [Fri, 27 Mar 2015 09:29:58 +0000 (12:29 +0300)]
Splitted up set_delodd test
Renamed set_insdel_func files

7 years agoSplitted up map_insdel_item_string test
khizmax [Fri, 27 Mar 2015 08:45:48 +0000 (11:45 +0300)]
Splitted up map_insdel_item_string test

7 years agoSplitted up map_insdel_item_int test
khizmax [Fri, 27 Mar 2015 08:32:42 +0000 (11:32 +0300)]
Splitted up map_insdel_item_int test

7 years agoSplitted up map_insdelfind test to reduce compiling time and memory requirements
khizmax [Wed, 25 Mar 2015 12:59:05 +0000 (15:59 +0300)]
Splitted up map_insdelfind test to reduce compiling time and memory requirements

7 years agoSplitted up map_insdel_string test to reduce compiling time and memory requirements
khizmax [Wed, 25 Mar 2015 12:16:47 +0000 (15:16 +0300)]
Splitted up map_insdel_string test to reduce compiling time and memory requirements

7 years agoSplitted up map_insdel_int test to reduce compiling time and memory requirements
khizmax [Wed, 25 Mar 2015 11:55:46 +0000 (14:55 +0300)]
Splitted up map_insdel_int test to reduce compiling time and memory requirements

7 years agoSplitted up map_find_string test to reduce compiling time and memory requirements
khizmax [Tue, 24 Mar 2015 20:24:42 +0000 (23:24 +0300)]
Splitted up map_find_string test to reduce compiling time and memory requirements

7 years agoSplitted up map_find_int test to reduce compiling time and memory requirements
khizmax [Mon, 23 Mar 2015 20:10:57 +0000 (23:10 +0300)]
Splitted up map_find_int test to reduce compiling time and memory requirements

7 years agoSplitted up map_insfind_int test to reduce compiling time and memory requirements
khizmax [Mon, 23 Mar 2015 19:24:27 +0000 (22:24 +0300)]
Splitted up map_insfind_int test to reduce compiling time and memory requirements

7 years agoRemoved redundant locking from lazy-list
khizmax [Mon, 23 Mar 2015 18:09:30 +0000 (21:09 +0300)]
Removed redundant locking from lazy-list

7 years agoRemoved redundant locking from lazy-list
khizmax [Mon, 23 Mar 2015 18:09:30 +0000 (21:09 +0300)]
Removed redundant locking from lazy-list

7 years agoMerge branch 'integration' into dev
khizmax [Mon, 23 Mar 2015 18:01:59 +0000 (21:01 +0300)]
Merge branch 'integration' into dev

7 years agoMerge pull request #22 from krinkinmu/remove-unneeded-lock
Max Khizhinsky [Mon, 23 Mar 2015 17:59:04 +0000 (20:59 +0300)]
Merge pull request #22 from krinkinmu/remove-unneeded-lock

Remote unneeded lock in nogc lazy list find_at_()