OVERVIEW:

TinySTM is a lightweight but efficient word-based STM implementation.
This distribution includes three versions of TinySTM: write-back
(updates are kept in thread-private memory until commit time),
write-through (updates are directly written to memory), and commit-time
locking (locks are only acquired upon commit).  The version can be
selected by editing the Makefile.

TinySTM compiles and runs on 32 or 64-bit architectures.  It was tested
on various flavors of Unix, on Mac OS X, and on Windows using cygwin.
It comes with a few test applications, notably a linked list and a
red-black tree.

INSTALLATION:

TinySTM requires the atomic_ops library, freely available from:
    http://www.hpl.hp.com/research/linux/atomic_ops/

The environment variable LIBAO_HOME must be set to the installation
directory of atomic_ops, if different from /usr/local.

To compile TinySTM libraries, execute `make' in the main directory. To
compile test applications, execute `make test'.

NOTES:

TinySTM includes wrappers for data types of various sizes.  These
wrappers naturally assume that loads and stores are aligned w.r.t. the
size of their respective data types (to access an n-bytes value, the
corresponding address must be a multiple of n).

CONTACT:

    E-mail : tinystm@tinystm.org
    Web    : http://tinystm.org
