1. A computer-implemented transactional memory (TM) method, implemented on a processor, comprising: determining a version of an object, the version indicating that the object is one of a definitive version wherein at most one definitive version exists for the object, a previously definitive version, or a speculative version created by a transaction writing to the object; automatically indicating the version of the object using pointers associated with the object, wherein automatically indicating comprises indicating the object version is definitive by modifying one of the pointers associated with the object to be a self-referential pointer that points to the object itself, indicating the object is a previously definitive version of the object by modifying the object's self-referential pointer to point to a definitive version of the object, and indicating the object version is speculative by modifying one of the pointers associated with the object to point to a transaction descriptor of the transaction that created the speculative object, the transaction descriptor describing at least the transaction state as active, aborted, or committed wherein any speculative object pointing to a transaction descriptor describing the state of the transaction as aborted is subject to reclamation by a memory manager; providing access to the object for a transaction T 1 by traversing the pointers associated with the object wherein when the object version is speculative, determining that the speculative version of the object includes a pointer to one of a transaction descriptor associated with T 1 and a transaction descriptor associated with another transaction T 2 , and executing a contention strategy for the speculative version of the object when it includes a pointer to the transaction descriptor associated with T 2 , wherein the speculative version of the object is modified to be a definitive version of the object.