X-Git-Url: http://plrg.eecs.uci.edu/git/?p=libcds.git;a=blobdiff_plain;f=change.log;h=12d91f71c34f5cd39f33b61fa07496651d7f0654;hp=7488246fcb1aa20aa873289ed59ad4926a6bd4c6;hb=f94d7185c054778a365e04d33635b3f295cc04f9;hpb=1223f3c790581a0f741cffdd46fa20ed1a3da498 diff --git a/change.log b/change.log index 7488246f..12d91f71 100644 --- a/change.log +++ b/change.log @@ -1,34 +1,58 @@ -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. + - Fixed a bug in BronsonAVLTreeMap::extract_min()/extract_max()/clear(). + - 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