libcds.git
9 years agoTSan exam: fixed intrusive stack test
khizmax [Thu, 30 Apr 2015 18:23:12 +0000 (21:23 +0300)]
TSan exam: fixed intrusive stack test

9 years agoTSan exam: fixed flat combining data race; eliminated false positive warnings
khizmax [Wed, 29 Apr 2015 20:30:19 +0000 (23:30 +0300)]
TSan exam: fixed flat combining data race; eliminated false positive warnings

9 years agoTSan exam: fixed data race and the incorrect use of back-off strategy
khizmax [Wed, 29 Apr 2015 19:07:04 +0000 (22:07 +0300)]
TSan exam: fixed data race and the incorrect use of back-off strategy

9 years agoFixed TSan warnings in SplitList
khizmax [Tue, 28 Apr 2015 21:12:17 +0000 (00:12 +0300)]
Fixed TSan warnings in SplitList

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

9 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

9 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()

9 years agoMerge pull request #30 from krinkinmu/fix-typo
Max Khizhinsky [Mon, 27 Apr 2015 20:13:37 +0000 (23:13 +0300)]
Merge pull request #30 from krinkinmu/fix-typo

Fix typos, no functional changes

9 years agoMerge pull request #29 from krinkinmu/rational-resizing-policy
Max Khizhinsky [Mon, 27 Apr 2015 20:12:46 +0000 (23:12 +0300)]
Merge pull request #29 from krinkinmu/rational-resizing-policy

Rational resizing policy

9 years agoFix typos, no functional changes
Mike Krinkin [Sun, 26 Apr 2015 17:31:36 +0000 (20:31 +0300)]
Fix typos, no functional changes

9 years agoAdd tests for rational load factor resizing policy
Mike Krinkin [Sun, 26 Apr 2015 07:27:25 +0000 (10:27 +0300)]
Add tests for rational load factor resizing policy

This patch adds tests for striped and refinable sets with rational
load factor resizing policy. Set adapters expect denominator of
rational load factor, so test output (LoadFactor=i) can be a bit
misleading, for all tests with the 'rational' in the name it means
LoadFactor=1/i.

9 years agoAdd rational load factor resizing policy
Mike Krinkin [Sun, 26 Apr 2015 07:27:01 +0000 (10:27 +0300)]
Add rational load factor resizing policy

Add separate rational load factor resizing policy so that users
don't need to pay for additional multiplication if they don't need
it. The rational load factor resizing allows to exchange memory for
a bit of performance (about 5-10 %).

9 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

9 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++

9 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

9 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++

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

9 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

9 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

9 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

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

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

9 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

9 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

9 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)

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

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

9 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.

9 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

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

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

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

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

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

9 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

9 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

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

9 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.

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

9 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

9 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.

9 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.

9 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

9 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

9 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

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

9 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

9 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

9 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

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

9 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

9 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

9 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

9 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

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

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

9 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

9 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

9 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

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

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

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

9 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)

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

9 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.

9 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.

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

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

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

9 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

9 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

9 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

9 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

9 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

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

9 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.

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

9 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

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

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

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

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

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

9 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

9 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

9 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

9 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