+2013-11-12 Userspace RCU 0.8.1
+ * tls-compat: fix comment typo
+ * Keep ABI compatible with already compiled LGPL applications
+ * Fix: tls-compat multi-lib conflict
+ * Use cross compiler for doc examples
+ * gcc warning fixes: -Wsign-compare and -Wextra
+ * Fix: urcu-qsbr: reversed logic on RCU_DEBUG
+ * Fix: urcu-bp segfault in glibc pthread_kill()
+ * Fix urcu-bp: don't move registry
+ * Fix: compat futex duplicated lock and completion
+ * Fix: i386 compat code duplicated mutex instances
+ * Fix: urcu-bp: Bulletproof RCU arena resize bug
+ * Fix: test_mutex.c uninitialized mutex
+
+2013-09-06 Userspace RCU 0.8.0
+ * Fix: hash table growth (for small tables) should be limited
+ * Fix: doc/examples cross-build
+ * Introduce URCU_INLINE_SMALL_FUNCTIONS
+ * Add missing tests/common/Makefile.am
+ * README: document make check/regtest/bench
+ * tests: split in check, regtest and bench targets
+ * Cleanup: doc/examples makefile
+ * Fix: doc/examples VPATH build
+ * doc/examples: Move the LIBS after the OBJECTS in the Makefile
+ * Document build work-around on MacOS X
+ * Fix tests: use of uninitialized variables
+ * test_urcu_hash*: initialize TLS seeds
+ * doc/examples: cds_lfht_for_each_entry_duplicate
+ * doc/examples: cds_lfht_lookup
+ * doc/examples: cds_lfht_destroy
+ * doc/examples: cds_lfht_add_replace
+ * doc/examples: cds_lfht_add_unique
+ * doc/examples: cds_lfht_add/cds_lfht_del
+ * doc/examples: add rculfqueue example
+ * doc/examples: add synchronize_rcu()
+ * doc/examples: add bp flavor
+ * doc/examples: add dist toplevel makefile
+ * doc/examples: add membarrier flavor
+ * doc/examples: document call_rcu()
+ * doc/examples: update qsbr example
+ * urcu signal: remove assertion on exit
+ * doc/examples: signal flavor
+ * doc/examples: add mb flavor
+ * doc/examples: update qsbr
+ * doc/examples: introduce urcu-flavors examples directory
+ * doc/examples: enhance rcu-flavor-qsbr example
+ * doc/examples: rename qsbr-minimal to rcu-flavor-qsbr
+ * doc/examples: automake stop on error
+ * doc/examples: hlist
+ * hlist/rcuhlist update
+ * doc/examples: fix typo in list example
+ * rcuhlist: make pointer stores atomic
+ * hlist, rcuhlist: cleanup coding style
+ * doc/examples: lfstack
+ * doc/examples: update cds_wfs_pop_all_blocking
+ * doc/examples: cds_wfs_pop_all_blocking
+ * doc/examples: cds_wfs_pop
+ * doc/examples: add missing Makefile
+ * doc/examples: cds_wfs_push
+ * doc/wfcqueue: cds_wfcq_splice
+ * doc/examples: add cds_wfcq_dequeue
+ * doc/examples: wfcq needs to link against urcu-common
+ * doc/examples: update queue comment
+ * doc/examples: fix make clean
+ * gitignore: add qsbr-minimal
+ * doc/examples: cds_wfcq_enqueue
+ * doc/examples: Move LIBS to each makefile
+ * doc/examples: cds_list_for_each_rcu
+ * doc/examples: cds_list_for_each_entry_rcu
+ * doc/examples: cds_list_replace_rcu
+ * doc/examples: cds_list_add_tail_rcu
+ * doc/examples: cds_list_del_rcu
+ * doc/examples: cds_list_add_rcu
+ * rculist: ensure atomic updates of next pointers
+ * rculist: implement cds_list_add_tail_rcu
+ * rculist.h and list.h style cleanup
+ * example makefile: add missing cd ..
+ * Update gitignore
+ * Fix: examples Makefile on FreeBSD
+ * hash table test: don't redefine CACHE_LINE_SIZE
+ * tests: use thread-id.h wrapper
+ * Implement thread-id.h wrapper
+ * tests: add missing unsigned long casts to pthread_self()
+ * Fix: don't build examples in static builds
+ * Add QSBR minimal example
+ * compiler.h: implement CAA_ARRAY_SIZE()
+ * document rcu barrier
+ * rcu barrier: handle OOM die urcu_die
+ * Implement rcu_barrier()
+ * rculfhash: document destroy context limitations
+ * Add MIPS to README
+ * Update README
+ * Update README testing info about FreeBSD
+ * test: fix api.h missing if brackets
+ * tests: fix incorrect counter
+ * Fix: membarrier fallback symbol conflict
+ * Fix: Use a filled signal mask to disable all signals
+ * urcu-bp: introduce struct urcu_gp
+ * Fix: struct urcu_gp broke multiflavor
+ * Cleanup test usage printout
+ * wfstack tests: use pop "last" state info
+ * wfstack: return whether pop is popping the last element
+ * wfcqueue tests: use dequeue empty state
+ * wfcqueue: return whether dequeue is dequeuing last element
+ * urcu: avoid false sharing for rcu_gp_ctr
+ * urcu: make the code of urcu-qsbr as normal urcu
+ * rculfhash: detect if resize/destroy are called within RCU read-side C.S.
+ * Documentation: rculfhash: cds_lfht_resize not within read-side C.S.
+ * fix: rculfhash don't change qsbr online state
+ * Add rcu_read_ongoing() API to each urcu flavor
+ * Add "sparc" host cpu to configure.ac
+ * futex: include syscall.h instead of sys/syscall.h
+ * Add tab to output in order to allow easy nesting of tables.
+ * Remove urcu-api-list.sh from dist tarball
+ * Add urcu-api-list.sh script
+ * list: implement cds_list_for_each_safe()
+ * Fix: tests/api.h use cpuset.h
+ * Fix hurd-i386: move cpuset tests outside of sched_setaffinity conditional
+ * Fix tests: finer-grained use of CPU_SET, CPU_ZERO and cpu_set_t
+ * Test for CPU_SET
+ * Fix build on architectures with HAVE_SCHED_GETCPU but without HAVE_SYSCONF
+ * README: document that Clang 3.0 (based on LLVM 3.0) is supported
+ * clang: silence "unused expression result" warning
+ * rculfhash: add assertions on node alignment
+ * Spelling cleanups within comments and documentation
+ * Fix configure checks for Tile
+ * uatomic: style fix
+ * doc/cds-api.txt: expand documentation
+ * README: document each API file
+ * README: reorganize
+ * Add compilation support for the TileGX architecture
+ * wfstack: add nonblocking to _LGPL_SOURCE API
+ * Discourage use of pthread_atfork() for call_rcu handlers
+ * Fix call_rcu fork handling
+ * test: fork handling
+ * rculfhash: add cds_lfht_replace to the write operations in the comments
+ * urcu: fix comments for cds_list_for_each_prev()
+ * documentation: fix rcu-api.txt duplicates
+ * test wfcq: remove unneeded urcu.h include
+ * test wfs: remove unneeded urcu.h include
+ * urcu: declare test_urcu_multiflavor functions
+ * urcu: remove the wrong comma
+ * wfstack: implement nonblocking pop and next
+ * wfcqueue: document first/next return values
+ * wfstack: update comments about cds_wfs_empty/first being wait-free
+ * wfstack API: rename cds_wfs_first_blocking to cds_wfs_first
+ * wfstack test: test if number of push to empty vs pop_all match
+ * wfstack: document first/next return values
+ * test wfstack: enforce external mutex if needed by default
+ * test wfcqueue: enforce external mutex if needed by default
+ * urcu-mb/signal/membarrier: batch concurrent synchronize_rcu()
+ * urcu-wait: move queue management code into urcu-wait.h
+ * urcu-wait: move wait code into separate file
+ * urcu-qsbr: batch concurrent synchronize_rcu()
+ * tests: use standard malloc/free for synchronize_rcu()
+ * urcu-bp: move quiescent threads to separate list
+ * urcu-mb/signal/membarrier: move quiescent threads to separate list
+ * urcu-qsbr: move offline threads to separate list
+ * urcu-bp: improve 2-phase wait scheme
+ * urcu-mb/signal/membarrier: improve 2-phase wait scheme
+ * urcu-qsbr: improve 2-phase wait scheme
+ * wfcqueue: implement mutex-free splice
+ * wfcqueue: document empty criterion
+ * urcu-call-rcu: use wait-free splice return value
+ * test wfcqueue: add tests for queue state return value
+ * wfcqueue: enqueue and splice return queue state
+ * Fix: wfcqueue nonblocking dequeue
+ * wfcqueue: Fix lock and unlock functions
+ * runtests: Make path of time binary configurable
+ * urcu-qsbr: skip Q.S. reporting if already reported
+ * Fix TLS detection: test with linker, add --disable-compiler-tls
+ * Cleanup: cast pthread_self() return value to unsigned long
+ * Fallback mechanism not working on platform where TLS is unsupported
+ * Revert "Fix: cross-build: configure.ac should use --target, not --host"
+ * Fix: cross-build: configure.ac should use --target, not --host
+ * test_urcu_wfcq: add splice and nosync tests
+ * test_urcu_wfs: cleanup
+ * test_urcu_lfs: cleanup
+ * Fix static linking: add missing static for _defer_rcu
+ * tests: report error value for make check
+ * Add multiflavor test program
+ * Fix static linking: fix symbol name namespaces
+ * Fix static linking: add missing static to thr_defer
+ * Fix static linking: add missing static
+ * deprecation: fix build with gcc < 4.5
+ * wfstack.c: update copyright notice
+ * Update wfstack copyright notice
+ * Comment fix: update associated LGPL header name
+ * Update cds-api.txt following API deprecations
+ * Deprecate wfqueue
+ * Deprecate rculfstack
+ * wfcqueue: introduce nonblocking API
+ * lfstack: test pop_all and pop
+ * lfstack: implement empty, pop_all and iterators, document API
+ * lfstack: implement test
+ * lfstack: implement lock-free stack
+ * wfstack: implement pop_all and iteration tests
+ * wfstack: implement cds_wfs_pop_all and iterators, document API
+ * rculfhash test: fix trivial memleak and return node leak and errors
+ * rculfhash: add missing extern
+ * Cleanup: fix cppcheck errors
+ * wfcqueue: remove ancient comment
+ * test_urcu_lfq: remove rcu_defer_register_thread() from test_urcu_lfq
+ * test_urcu_lfq: test for the proper pointer
+ * test_urcu_lfs: remove rcu_defer_register_thread() from test_urcu_lfs
+ * test_urcu_lfs: test for the proper pointer
+ * wfcqueue: clarify locking usage
+ * Document APIs in README
+ * Test cleanup: replace "l" parameter by "loops"
+ * Add wfcqueue header to cds.h
+ * Fix: urcu-bp, urcu, urcu-qsbr should include wfcqueue
+ * Fix: call_rcu list corruption on teardown (documentation)
+ * call_rcu: remove head field alignement, explain wfcqueue motivation
+ * wfcqueue: update credits in patch documentation
+ * wfcqueue documentation: hint at for_each iterators
+ * Fix urcu-call-rcu-impl.h: false-sharing
+ * call_rcu: use wfcqueue, eliminate false-sharing
+ * wfcqueue test
+ * wfcqueue: implement concurrency-efficient queue
+ * Ensure that read-side functions meet 10-line LGPL criterion
+ * tls-compat.h: document sigaltstack(2) limitation
+ * urcu: add notice to URCU_TLS() for it is not strictly async-signal-safe
+ * Document sigaltstack(2) limitation
+ * Documentation: update LICENSE file
+
+2012-08-27 Userspace RCU 0.7.4
+ * rculfhash API documentation: document destroy RCU read-lock constraint
+ * Fix: rculfhash should be offline while waiting for resize to complete
+ * Add missing entry to gitignore
+ * urcu: move busy-wait code and name it ___cds_wfq_node_sync_next()
+ * urcu: fix compat_futex_noasync()
+ * urcu: add hint to DEFINE_URCU_TLS() for compound types
+ * Fix: CAA_BUILD_BUG_ON should refer to CAA_BUILD_BUG_ON_ZERO
+ * Add MIPS support
+ * Compatibility: remove bash-ismsm from test scripts
+ * Fix inappropriate lib behavior: don't call exit()
+ * Fix: re-enable compatibility with autoconf < 2.64
+ * Fix c99 compatibility: use __asm__ and __volatile__ in public headers
+ * Fix c99 compatibility: use __typeof__ instead of typeof in public headers
+ * warning fix: tests urcutorture for NetBSD 5
+
+2012-06-01 Userspace RCU 0.7.3
+ * Fix tests: make dist lib dependency
+ * Update README for OS supported, tests dependency
+ * Add CodingStyle to tarball
+ * Add coding style document
+ * Test fix: test_perthreadlock uninitialized mutex
+ * tests: support FreeBSD short "time" args
+ * freebsd 8.2 fix: define MAP_ANONYMOUS for compatibility
+
+2012-05-24 Userspace RCU 0.7.2
+ * Fix library compatibility
+
+2012-05-24 Userspace RCU 0.7.1
+ * fix: uatomic_set return value compile fix for non-x86 arch.
+
+2012-05-21 Userspace RCU 0.7.0
+ * Cleanup: header comments coding style
+ * Document uatomic operations
+ * Update return value of "set" operations
+ * Fix mremap wrapper for NetBSD 5
+ * Use urcu/tls-compat.h
+ * Implement urcu/tls-compat.h
+ * Add TLS detection m4 macro
+ * document concurrent data structures
+ * documentation: refer to rcu-api.txt
+ * Move API.txt to doc/rcu-api.txt, install in system doc/
+ * rculfhash: document implied memory barriers
+ * rculfhash: Ensure future-proof memory barrier semantic consistency
+ * API cleanup: use "uatomic_*" in cmm_smp_mb__ API
+ * uatomic: add memory barrier API for and/or/add/sub/inc/sub
+ * rculfhash: add runhash.sh test script
+ * rculfhash tests: add missing check
+ * rculfhash: fix: race between replace and del operations
+ * rculfhash: replace unneeded rcu_dereference by CMM_LOAD_SHARED
+ * rculfhash: use do {} while (0) for dbg_printf()
+ * rculfhash: cleanup typo
+ * rculfhash: update API comments
+ * rculfhash: update comments in implementation
+ * rculfhash tests: add long hash chains tests
+ * rculfhash tests: add uniqueness test
+ * rculfhash test: print test name
+ * rculfhash: stress requirement in documentation
+ * rculfhash: fix typo
+ * rculfhash tests: use array of callbacks to modularize
+ * rculfhash tests: modularize tests
+ * rculfhash: document ordering guarantees
+ * rculfhash: document linearizability guarantees
+ * rculfhash: update removal comment
+ * Add missing files to .gitignore
+ * Fix out-of-tree build
+ * rculfhash: check malloc NULL pointer
+ * Fix uatomic sign cast
+ * Remove unused jhash.h file
+ * Fix: use known license text, fix incorrect FSF address
+ * Fix: add missing sched.h include in rculfhash.c
+ * Allow tests to run on architectures without per-cpu call_rcu support
+ * Hash table test: FreeBSD compatibility fix
+ * tests: define _GNU_SOURCE instead of __USE_GNU
+ * RCU lock-free hash table: implement cds_lfht_is_node_deleted()
+ * Define _GNU_SOURCE to access CPU_ZERO() macro in uClibc
+ * Install ChangeLog and README into system's doc
+ * Fix AC_LANG_SOURCE usage: only takes one parameter
+ * Fix autoconf futex check
+ * configure.ac: Use AC_LANG_SOURCE for if else macros
+ * Refresh autoconf files
+ * Update gitignore
+ * rculfhash: add comment about hash seed randomness within test program
+ * readme: state correct GCC dependency for ARM
+ * rculfhash: remove an invocation of bit_reverse_ulong() when adding
+ * rculfhash: remove unneeded conversion
+ * rculfhash: remove unneeded clear_flag()
+ * cds_lfht_replace: add checks for old/new node hash/value match
+ * rculfhash: use node instead of iter argument for deletion
+ * rculfhash: number of logically removed nodes should not appear in API
+ * Document that flags could be represented on 2 bits
+ * Add missing REMOVAL_OWNER_FLAG comment to cds_lfht_node comment
+ * _cds_lfht_del is not used for buckets anymore, remove parameter
+ * rculfhash: Relax atomicity guarantees required by removal operation
+ * remove unneeded "return;"
+ * simplify the deletion for bucket node
+ * Remove unneeded code
+ * Cleanup DEFINE_RCU_FLAVOR()
+ * Add cds_lfht_ prefix to fls_ulong, get_count_order_ulong, get_count_order_u32
+ * Merge RCU Lock-Free Resizable Hash Table
+
+2011-12-12 Userspace RCU 0.6.7
+ * Add compat file for test urcu wfs
+ * Add missing compat file for wfq test
+ * hlist.h: Add missing stddef.h include for NULL
+ * call_rcu: Add missing call_rcu_before_fork and
+ call_rcu_after_fork_parent declarations
+ * Describe autotools/libtool/automake version dependency
+ * Remove m4_ifdef for AC_PROG_LIBTOOL (deprecated)
+ * Support older autotools
+ * Apply autoupdate to configure.ac
+ * Fix build for amd64 environment (for FreeBSD 8.2)
+ * Add missing rcu_dereference_sym_bp
+ * Install test scripts in the dist tarball
+
+2011-11-03 Userspace RCU 0.6.6
+ * qsbr vs call_rcu : remove exit assertion
+ * Rename likely/unlikely to caa_likely/caa_unlikely
+ * Reinsert missing test_urcu_*.c files (missing in rename)
+ * rename test_qsbr to test_urcu_qsbr
+ * urcu-pointer: fix rcu_set_pointer unset return value
+ * Enhance API.txt documentation, add to Makefile as EXTRA_DIST
+
+2011-09-29 Userspace RCU 0.6.5
+ * call_rcu: Document call_rcu requirements
+ * call_rcu: fix error handling of malloc error
+ * urcu call_rcu: Use RCU read-side protection for per-cpu call_rcu data
+ * urcu,call_rcu: Cleanup call_rcu_data pointers before use in child
+ * urcu,call_rcu: avoid create call_rcu_data for child when unneed
+ * urcu,defer_rcu: Make defer_rcu encoding more compact for marker
+ * urcu_defer: Use cancellation flag instead of pthread_cancel()
+ * urcu,call_rcu: protects call_rcu_data_list when remove node
+ * Create default call rcu data upon per-cpu call-rcu teardown
+ * powerpc: use __NO_LWSYNC__ check to use appropriate lwsync/sync opcode
+ * cmm: provide lightweight smp_rmb/smp_wmb on PPC
+ * atomic: provide seq_cst semantics on powerpc
+ * avoid leaking crdp for failed path
+ * Return -EEXIST when the old cpu call_rcu_data has not been removed
+ * protect writing to per_cpu_call_rcu_data[*]
+ * wake up default call_rcu thread after we move the leftover callbacks
+ * avoid memory leak in call_rcu_data_free()
+ * urcu call_rcu: fix use after free()
+ * use get_cpu_call_rcu_data() for get_call_rcu_data()
+ * init maxcpus before use
+ * call_rcu implementation: add missing static
+ * Document QSBR interaction with mutexes
+ * urcu-pointer: implement URCU_FORCE_CAST for C++ compatibility of urcu-pointer.h
+ * urcu-qsbr: use rcu_thread_offline/rcu_thread_online instead of inlining them
+ * Pair all_cpu call_rcu create with free
+ * QSBR: add missing wakeups in synchronize_rcu code
+ * cmm: do not generate code for smp_rmb/smp_wmb on x86_64
+ * cmm: let per-arch files provide cmm_smp_* barriers
+ * Optimize caa_get_cycles() for PowerPC64
+ * lfq/lfs tests: use call_rcu
+ * list: Add cds_list_first_entry
+ * rculfstack/queue: define _LGPL_SOURCE around static header include
+ * Add __rcu annotation (unimplemented)
+ * Fix incorrect fsf address in header files
+ * wfstack: push returns prior stack emptiness state
+ * Make lf stack push return if the stack was empty
+ * Document caa_container_of
+ * urcu-bp: do not call munmap for NULL registry at exit
+ * urcu libraries can directly use the _LGPL_SOURCE wfqueue
+ * rculfstack: document "push"
+ * Add runall.sh to tarball
+ * Fix build order of liburcu-cds-common
+ * Fix missing check for SYS_membarrier in map header
+ * urcu-qsbr: avoid useless futex wakeups and burning CPU for long grace periods
+ * api: reimplement BUILD_BUG_ON in compiler.h
+ * test api cleanup: remove unused primitives
+ * put thread offline while waiting for the init flag
+ * urcu: move private definitions to .c file
+ * urcu-bp: move private definitions to .c file
+ * urcu-qsbr: move private definitions to .c file
+ * rcutorture: fix rcutorture-qsbr
+ * wfqueue: fix type-incorrect assignment
+ * Fix tests Makefile EXTRA_DIST to use api.h
+ * Fix choice of default flavour in urcu/map/urcu.h
+ * api: remove list/hlist
+ * api: remove arch-specific files
+ * api: make api_gcc.h a superset of the other headers
+ * tests api: remove atomics
+ * put thread offline while waiting for the init flag
+ * urcu: move private definitions to .c file
+ * urcu-bp: move private definitions to .c file
+ * urcu-qsbr: move private definitions to .c file
+ * rcutorture: fix rcutorture-qsbr
+ * wfqueue: fix type-incorrect assignment
+ * Use caa_ prefix for min() and max()
+