Removed unused header
[libcds.git] / change.log
index 7488246fcb1aa20aa873289ed59ad4926a6bd4c6..e2dd7dc47ba20344589ea909f1f6f4144b5efbd6 100644 (file)
@@ -1,34 +1,57 @@
-2.2.0
+2.3.0
     General release
-    - Changed: CMake is used for build libcds. Ancient build.sh is removed
+    - Changed: cds::gc::HP is totally refactored:
+        - simplified internal structures;
+        - added ability to specify an external allocator for internal data;
+        - external API for gc::HP is slightly changed: now scan type
+          cannot be changed on the fly; it can be specified only in
+          construction time.
+    - Changed: cds::gc::DHP is totally refactored to overcome some internal
+      limitations. Now gc::DHP is fully adaptive variant of Hazard Pointer 
+      SMR, any dependencies on count of thread are removed, count of retired
+      data and hazard pointers per thread are increased automaticaly by perforce.
+      External API of gc::DHP class is changed: now only initial count 
+      of hazard pointers can be specified in the constructor. Like new gc::HP,
+      the new gc::DHP supports an external allocator.
+    - Added more flat-combining queue tests, thanks to Marsel Galimullin.
+    - Changed cmake scripts to support MacOS and ARMv7/ARMv8 (64 bit),
+      thanks to Michail Komarov (https://github.com/Nemo1369)
+
+2.2.0 04.01.2017
+    General release
+    - Changed: CMake is used for build libcds. Ancient build.sh has been removed
     - Changed: unit and stress tests are migrated to googletest framework
     - Added: IterableList - an implementation of ordered list with 
-      thread-safe iterator. MichaelSet/Map supports this type of
-      ordered list and thread-safe iterable too.
+      thread-safe iterator. MichaelSet/Map and SplitListSet/Map support 
+      this type of ordered list and thread-safe iterable too.
     - Added: wait strategies for flat combining technique. Based on
-      research of Marsel Galimullin and Nikolai Rapotkin.
+      research by Marsel Galimullin and Nikolai Rapotkin.
+    - Fixed: SkipList erase() and find() bugs that cause to infinite loop 
+      or to program crash in rare case.
     - Fixed: serious bug in MichaelSet::emplace() function
       New node was created twice from the arguments by move semantics. 
       However, move semantics may change internal state of the argument
-      that can lead to an incorrect element in the set and even
-      to an incorrect key that breaks the set logic.
+      that can lead to an incorrect element and even an incorrect key
+      that breaks the set logic.
     - Fixed: bug in FeldmanHashSet::erase_at( iterator ): due an error
-      in precondition checking the function can incorrectly return false.
+      in precondition checking the function may incorrectly return false.
     - Fixed: possible double-free case in flat combining algorithm. 
-      Thanks to Amila Jayasekara who points me to this problem
+      Thanks to Amila Jayasekara who pointed me to this problem
     - Changed: cds::opt::buffer option is divided to initialized
       (cds::opt::v::initialized_dynamic_buffer, cds::opt::v::initialized_static_buffer)
       and uninitialized (cds::opt::v::uninitialized_dynamic_buffer, cds::opt::v::uninitialized_static_buffer)
       ones. The old cds::opt::v::dynamic_buffer and cds::opt::v::static_buffer classes
       are removed.
+    - Removed: TsigasCysleQueue (due undecidable ABA-problem)
+    - Removed: Michael's allocator cds/memory/michael/allocator.h
     - Fixed: use-after-free bug in VyukovMPMCCycleQueue internal buffer.
       To prevent this bug the queue uses an uninitialized buffer now.
     - Fixed: rare priority inversion bug in MSPriorityQueue
     - Added: for minimizing runtime of stress test the detail level for some test is added.
       Command line argument --detail-level=N specifies what test should be ran: each
-      test with level not great than N will be ran. Instead of command line arg
-      the enviromnent variable CDSTEST_DETAIL_LEVEL=N can be used.
-      By default, the detail level is 0 that means only small set of the some test will be ran.
+      test with level not greater than N will be ran. Instead of command line arg
+      the enviromnent variable CDSTEST_DETAIL_LEVEL=N may be used.
+      By default, the detail level is 0 that means only limited set of the test will be ran.
 
 2.1.0 06.01.2016
     General release