On dev: vc
[libcds.git] / readme.md
index 07c4d811c7f5772a0d50c32bc85078a403394107..5093697bb75f0144faca23a9e6915de559a9cc0b 100644 (file)
--- a/readme.md
+++ b/readme.md
@@ -15,7 +15,8 @@ The coverity dataset is about 4G of size and about 1G in compressed state so it
 The Concurrent Data Structures (CDS) library is a collection of concurrent containers\r
 that don't require external (manual) synchronization for shared access, and safe memory reclamation (SMR) \r
 algorithms like [Hazard Pointer](http://en.wikipedia.org/wiki/Hazard_pointer) \r
-and user-space [RCU](http://en.wikipedia.org/wiki/Read-copy-update). \r
+and user-space [RCU](http://en.wikipedia.org/wiki/Read-copy-update) that is used as an epoch-based SMR.\r
+\r
 CDS is mostly header-only template library. Only SMR core implementation is segregated to .so/.dll file.\r
 \r
 The library contains the implementations of the following containers:\r
@@ -25,9 +26,12 @@ The library contains the implementations of the following containers:
   - several implementation of unordered set/map - lock-free and fine-grained lock-based\r
   - [flat-combining] (http://mcg.cs.tau.ac.il/projects/projects/flat-combining) technique\r
   - lock-free [skip-list](http://en.wikipedia.org/wiki/Skip_list)\r
+  - lock-free FeldmanHashMap/Set [Multi-Level Array Hash](http://samos-conference.com/Resources_Samos_Websites/Proceedings_Repository_SAMOS/2013/Files/2013-IC-20.pdf)\r
+    with thread-safe bidirectional iterator support\r
+  - Bronson's et al algorithm for fine-grained lock-based AVL tree\r
   \r
 Generally, each container has an intrusive and non-intrusive (STL-like) version belonging to \r
-*cds::intrusive* and *cds::container* namespace respectively.\r
+*cds::intrusive* and *cds::container* namespace respectively. \r
 \r
 Version 2.x of the library is written on C++11 and can be compiled by GCC 4.8+, clang 3.3+, Intel C++ 15+, \r
 and MS VC++ 12 (2013) Update 4.\r
@@ -36,6 +40,12 @@ Download the latest release from http://sourceforge.net/projects/libcds/files/
 \r
 See online doxygen-generated doc here: http://libcds.sourceforge.net/doc/cds-api/index.html\r
 \r
+Evolution of libcds (Gource visualization by Landon Wilkins): https://www.youtube.com/watch?v=FHaJvVdmJ0w\r
+\r
+**How to build**\r
+   - *nix: [use CMake](build/cmake/readme.md)\r
+   - Windows: use MS Visual C++ 2015 project\r
+\r
 **Pull request requirements**\r
 - Pull-request to *master* branch will be unconditionally rejected\r
 - *integration* branch is intended for pull-request. Usually, *integration* branch is the same as *master*\r