Microsoft's experiment with STM ended up not going so well [1] [2]. Does anyone know how the PyPy implementation differs, and if it might overcome these problems? Is it just laying the groundwork for leveraging hardware transactional memory support, or is the thesis that this will eventually become usable directly?<p>[1]<a href="http://www.infoq.com/news/2010/05/STM-Dropped" rel="nofollow">http://www.infoq.com/news/2010/05/STM-Dropped</a>
[2]<a href="http://www.bluebytesoftware.com/blog/2010/01/03/ABriefRetrospectiveOnTransactionalMemory.aspx" rel="nofollow">http://www.bluebytesoftware.com/blog/2010/01/03/ABriefRetros...</a>
While I think STM and Threading is cool, I think being able to run multiple python loops and message pass in the same process would be much cooler, and much faster akin to an Erlang like VM. Then again I'm pretty biased as I've done more Erlang this year than python!
What I don't get is how this is exposed to the programmer. I seem to remember that there was talk before of using an eventloop type model where events are handled in separate transactions. Is this still the case? If so, then how is livelock prevented?