implemented global-clock GV5 and added compile-time switches to choose the used global-clock
Added support for alternative implementations of GLOBAL-CLOCK
started testing global-clock GV5
UNFINISHED: updated ORELSE to better conform global-clock API
tested and debugged GLOBAL-CLOCK GV5. It halves STMX performance by causing a huge number of (rerun),
but hopefully it will behave better with hardware transactions - the default GLOBAL-CLOCK GV1 is not suitable for them
EXPERIMENTAL - adding hardware transactions support
EXPERIMENTAL - still adding hardware transactions support
EXPERIMENTAL added hardware transactions.
API is still rough, and software transactions are somewhat broken
More work needed...
fixed software transactions; improved compatibility with hardware transactions
TO DO: adaptive global clock, automatic expansion of $ into either $-tx or $-hwtx
(and analogously for user-defined functions)
updated TODO
BUG: with HW-TRANSACTIONS enabled, test suite hangs!
started adding adaptive global-clock GV6
BUGFIX: fixed test suite hangs, it was caused by experimental and incomplete code leaked into stable macro FAST-ATOMIC
updated TODO with new ideas (WITH-LOCK-ELISION) and caveats
continued work on HW-ATOMIC macro
HW-ATOMIC macro cleanup
First, unoptimized version of hybrid HW/SW transactions
since RETRY implementation is currently incompatible with hardware transactions,
modified it to alter the global-clock NOHW-COUNTER before and after sleeping
for TVARs to change, in order to abort all running HW transactions and switch
to SW-only mode while actually sleeping.

This fixes the test failures for ORELSE.
updated doc/benchmark.md with preliminary results of hybrid hw+sw transactions.
TODO: finish implementing adaptive global clock!
optimized TVAR reading and writing, i.e the functions $ and (setf $)
gives major speedup in hardware transactions
renamed $ and (SETF $) to $-SLOT and (SETF $-SLOT)
implemented adaptive global-clock GV6