junction.git
5 years agoFixes for C++98
Jeff Preshing [Wed, 18 May 2016 18:19:40 +0000 (14:19 -0400)]
Fixes for C++98

5 years agoRename set() to assign()
Jeff Preshing [Mon, 14 Mar 2016 15:53:08 +0000 (11:53 -0400)]
Rename set() to assign()

Will avoid ambiguity when ConcurrentSets are added to Junction, and more
consistent with C++17's insert_or_assign.

5 years agoAdd SingleMap_Leapfrog
Jeff Preshing [Mon, 29 Feb 2016 18:40:25 +0000 (13:40 -0500)]
Add SingleMap_Leapfrog

5 years agoRename LeapFrog to Leapfrog
Jeff Preshing [Mon, 29 Feb 2016 13:59:57 +0000 (08:59 -0500)]
Rename LeapFrog to Leapfrog

5 years agoRename insert() to set() to avoid confusion with std::map::insert()
Jeff Preshing [Sun, 21 Feb 2016 18:38:01 +0000 (13:38 -0500)]
Rename insert() to set() to avoid confusion with std::map::insert()

std::map::insert() will only store the value if the key doesn't already exist.
junction::ConcurrentMap_xxx::set() stores the value unconditionally.

5 years agoRename SimpleRelaxed to Crude
Jeff Preshing [Thu, 18 Feb 2016 14:01:51 +0000 (09:01 -0500)]
Rename SimpleRelaxed to Crude

5 years agoAdd Rules and Behavior section to README
Jeff Preshing [Wed, 17 Feb 2016 22:18:33 +0000 (17:18 -0500)]
Add Rules and Behavior section to README

5 years agoFix compile error in SimpleRelaxed using C++11 atomics
Jeff Preshing [Tue, 16 Feb 2016 21:19:41 +0000 (16:19 -0500)]
Fix compile error in SimpleRelaxed using C++11 atomics

5 years agoMapLinearizabilityTest now uses SimpleRelaxed map by default
Jeff Preshing [Tue, 16 Feb 2016 20:37:33 +0000 (15:37 -0500)]
MapLinearizabilityTest now uses SimpleRelaxed map by default

Also fix incorrect classification of an IRIW history as non-linearizable

5 years agoAdd ConcurrentMap_SimpleRelaxed
Jeff Preshing [Tue, 16 Feb 2016 14:42:32 +0000 (09:42 -0500)]
Add ConcurrentMap_SimpleRelaxed

Nearly identical to http://preshing.com/20130605/the-worlds-simplest-lock-free-hash-table/

5 years agoAdd MapLinearizabilityTest
Jeff Preshing [Tue, 16 Feb 2016 02:06:23 +0000 (21:06 -0500)]
Add MapLinearizabilityTest

5 years agoEliminate redundant load in insert constructors
Jeff Preshing [Tue, 16 Feb 2016 01:54:07 +0000 (20:54 -0500)]
Eliminate redundant load in insert constructors

5 years agoCheck that Redirect is not passed to exchange()
Jeff Preshing [Mon, 15 Feb 2016 23:46:26 +0000 (18:46 -0500)]
Check that Redirect is not passed to exchange()

5 years agoRevert unneeded changes to LeapFrog and Grampa
Jeff Preshing [Mon, 15 Feb 2016 20:23:00 +0000 (15:23 -0500)]
Revert unneeded changes to LeapFrog and Grampa

Fix was only needed for Linear.

5 years agoFix possible infinite loop
Jeff Preshing [Thu, 11 Feb 2016 19:27:32 +0000 (14:27 -0500)]
Fix possible infinite loop

If the keys are badly distributed, beginTableMigration's estimatedInUse
may be too low. In extreme cases, exchangeValue could loop infinitely
migrating to the same size. Encountered once while testing
ConcurrentMap_Linear after previous commit.

Fix is to force a doubling on second loop iteration.

5 years agoImprove ConcurrentMap_Linear scalability
Jeff Preshing [Thu, 11 Feb 2016 17:27:24 +0000 (12:27 -0500)]
Improve ConcurrentMap_Linear scalability

Removed shared variable Table::valuesRemaining. Instead, detect and
handle overflows during migration, like ConcurrentMap_LeapFrog.

Added #defines to force migration overflows during testing:
JUNCTION_LINEAR_FORCE_MIGRATION_OVERFLOWS

6 cores runs ~57% faster on Win32.

5 years agoFix MSVC warnings with u64 keys
Jeff Preshing [Wed, 10 Feb 2016 13:59:29 +0000 (08:59 -0500)]
Fix MSVC warnings with u64 keys

5 years agoFixes for clang without -std=c++11
Jeff Preshing [Tue, 9 Feb 2016 19:21:01 +0000 (14:21 -0500)]
Fixes for clang without -std=c++11

5 years agoDon't copy CMake scripts to install folder
Jeff Preshing [Tue, 9 Feb 2016 01:18:01 +0000 (20:18 -0500)]
Don't copy CMake scripts to install folder

5 years agoImprove integration steps in README
Jeff Preshing [Tue, 9 Feb 2016 01:08:18 +0000 (20:08 -0500)]
Improve integration steps in README

5 years agoSimplify CMake scripts
Jeff Preshing [Tue, 9 Feb 2016 00:46:59 +0000 (19:46 -0500)]
Simplify CMake scripts

Delete FindTurf.cmake as it was more complicated than necessary.

5 years agoAdd project description to license
Jeff Preshing [Tue, 9 Feb 2016 00:45:30 +0000 (19:45 -0500)]
Add project description to license

5 years agoRun clang-format
Jeff Preshing [Sat, 6 Feb 2016 17:55:15 +0000 (12:55 -0500)]
Run clang-format

5 years agoMake Junction installable
Jeff Preshing [Sat, 6 Feb 2016 16:51:52 +0000 (11:51 -0500)]
Make Junction installable

5 years agoDelete JunctionProjectDefs.cmake; simplify AddSample.cmake and move it to samples
Jeff Preshing [Sat, 6 Feb 2016 04:37:33 +0000 (23:37 -0500)]
Delete JunctionProjectDefs.cmake; simplify AddSample.cmake and move it to samples

5 years agoAdd libcuckoo to test suite
Jeff Preshing [Tue, 2 Feb 2016 22:15:02 +0000 (17:15 -0500)]
Add libcuckoo to test suite

5 years agoDelete unused junction/Averager.h
Jeff Preshing [Tue, 2 Feb 2016 21:24:53 +0000 (16:24 -0500)]
Delete unused junction/Averager.h

5 years agoMerge pull request #1 from richardkogelnig/patch-1
Jeff Preshing [Mon, 1 Feb 2016 15:33:35 +0000 (10:33 -0500)]
Merge pull request #1 from richardkogelnig/patch-1

Fix turf github link

5 years agoFix turf github link
Richard Kogelnig [Mon, 1 Feb 2016 13:59:15 +0000 (14:59 +0100)]
Fix turf github link

5 years agoFix image links in README.md
Jeff Preshing [Mon, 1 Feb 2016 13:13:15 +0000 (08:13 -0500)]
Fix image links in README.md

5 years agoInitial commit
Jeff Preshing [Mon, 1 Feb 2016 13:09:52 +0000 (08:09 -0500)]
Initial commit