mcdb change log

mcdb v0.09 (2013.11.15)
- plasma_atomic:
  - C11/C++11 additions
  - Sun Studio and IBM xlC inline assembly for atomics in 32-bit compile
- plasma_stdtypes: C11/C++11 alignof and alignas
- plasma_attr: attribute additions
- plasma_membar.h: Linux kernel user helpers for ARM
- plasma/plasma_spin: plasma_spin_tktlock and plasma_spin_taglock
- New plasma/* components:
- plasma/plasma_endian.h   - byteorder endian conversion macros
- plasma/plasma_ident.h    - portability macros for ident string
- plasma/plasma_sysconf.h  - system configuration info
- plasma/plasma_test.h     - basic test framework support
- plasma/t/petersons_algo.c  - Peterson's algorithm for mutual exclusion
- plasma/t/plasma_atomic.t.c - plasma_atomic.[ch] tests

mcdb v0.08 (2013.06.08)
- plasma/* - portability macros for compiler and hardware micro operations
- plasma/plasma_atomic.h   - atomic operations
- plasma/plasma_attr.h     - code attributes
- plasma/plasma_feature.h  - OS and architecture features
- plasma/plasma_membar.h   - memory barriers
- plasma/plasma_spin.h     - spin loop components
- plasma/plasma_stdtypes.h - standard types
- mcdb.c - minimize critical sections; mark intermediate maps
- modifications for initial port to MacOSX (Darwin)

mcdb v0.07 (2013.03.31)
- plasma/* - portability macros for compiler and hardware micro operations
- mcdb.c, nss_mcdb.c - use plasma_membar.h memory barriers for thread safety
- mcdb.c - fix race in mcdb_mmap_thread_registration()

mcdb v0.06 (2012.11.18)
- mcdb_make - fix sign extension bug preventing creation of mcdb > 4 GB

mcdb v0.05 (2012.11.16)
- extension: allow user-provided (custom) hash function (C interface only)
  (mcdb creator and consumers must both use same hash function substitution)

mcdb v0.04 (2011.11.07)
- porting from Linux/glibc to other platforms (large set of changes)
- mcdb_make - mcdb_fallocate() emulates posix_fallocate()
- code_attributes.h - protect C++ from C99 restrict
- split struct spwd code to separate files nss_mcdb_authn*.[ch]

mcdb v0.03 (2011.10.23)
- extend struct mcdb to store klen, and vp (void *) for user extension data
  Note: struct change is incompatible with prior releases;
        do not mix code built against multiple versions of mcdb.h
- mcdb - add some sanity checks to attempt to detect incorrect API use
- mcdb_make - reliably detect No space left on device
- mcdbctl uniq - mode to remake mcdb with unique keys
- contrib/lua-mcdb    extension for Lua
- contrib/ruby-mcdb   extension for Ruby
- compiler and linker flags to optimize DSO (.so)
- build and test contrib/* extensions against static libmcdb.a

mcdb v0.02 (2011.09.23)
- mcdb_iter iterator interface
- mcdb_make - ~10% faster writing large mcdb on multi-core 64-bit
- mcdb_makefn - refactored some for code for reuse by extensions
- contrib/MCDB_File   extension for Perl
- contrib/python-mcdb extension for Python

mcdb v0.01 (2011.08.25)
- WFM: works-for-me! (alpha)
  Initial release for feedback and to get over the hurdle of initial release.
  More work needs to be done testing.
