As general-purpose computing moves into the age of pervasive parallelism forced upon us by multicore and then manycore architectures, programmability becomes the key hurdle limiting the effective use of available computing resources. Transactional memory (TM) holds great promise as a means to simplify parallel programming for application programmers, and it has been an extremely popular research topic in the programming languages computer architecture, and parallel programming communities in the last few years.