<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; "><span>Hi Armin:</span></div><div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; "><br></div>  <div style="font-family: 'times new roman', 'new york', times, serif; "> <div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; "> <div dir="ltr"> <font size="2" face="Arial"> <hr size="1">  <b><span style="font-weight:bold;">From:</span></b> Armin Rigo <arigo@tunes.org><br> <b><span style="font-weight: bold;">To:</span></b> PyPy Developer Mailing List <pypy-dev@python.org> <br> <b><span style="font-weight: bold;">Sent:</span></b> Saturday, September 1, 2012 5:19 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> [pypy-dev] STM "version 2"<br> </font> </div>
 <br>>To keep you informed of the progress on STM:<br><br>>In the middle of August I found a potentially better approach to STM,<br>>which uses copies of objects more extensively (something which is<br>>neither natural nor easy to do in C/C++, which is probably why it was<br>>not researched before)</div><div style="font-size: 13px; font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; font-weight: bold; " class="yui_3_2_0_19_134686181187967"><br></div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal; " class="yui_3_2_0_19_134686181187967">>I ended up documenting it extensively there, in a very terse form so far:<br><br><span style="font-weight: bold;">>* </span><a href="https://bitbucket.org/pypy/extradoc/raw/extradoc/talk/stm2012/stmimpl.rst" target="_blank" style="font-weight: bold;
 ">https://bitbucket.org/pypy/extradoc/raw/extradoc/talk/stm2012/stmimpl.rst</a></div><div style="font-size: 13px; font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; font-weight: bold; " class="yui_3_2_0_19_134686181187967"><br></div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal; " class="yui_3_2_0_19_134686181187967"><span>I did an initial reading of the document. Wow!</span></div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal; " class="yui_3_2_0_19_134686181187967"><span><br></span></div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal; " class="yui_3_2_0_19_134686181187967">I will assume that this is the implementation section of  https://bitbucket.org/pypy/pypy/raw/stm-thread/pypy/doc/stm.rst?</div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal; "
 class="yui_3_2_0_19_134686181187967"><br></div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal; font-size: 16px; font-family: 'times new roman', 'new york', times, serif; " class="yui_3_2_0_19_134686181187967">I soon intend to start playing with CPython + atomic. I will re-read the STM document. Along the <span style="background-color: transparent; ">way I would like to see </span></div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal; font-size: 16px; font-family: 'times new roman', 'new york', times, serif; " class="yui_3_2_0_19_134686181187967"><span style="background-color: transparent; ">if I can make some diagrammes and categorise the techniques used (i.e., optimistic locking vs pessimistic, </span><span style="background-color: transparent; ">undo logs vs redo logs) </span></div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style:
 normal; font-size: 16px; font-family: 'times new roman', 'new york', times, serif; " class="yui_3_2_0_19_134686181187967"><span style="background-color: transparent; ">to see if I understand what is happening. Also I can ask questions along the way. </span></div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal; font-size: 16px; font-family: 'times new roman', 'new york', times, serif; " class="yui_3_2_0_19_134686181187967"><br></div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal; font-size: 16px; font-family: 'times new roman', 'new york', times, serif; " class="yui_3_2_0_19_134686181187967">Perhaps if I understand enough, I can give  a lightening talk (5 minutes) <span style="background-color: transparent; ">at the next Montreal Python User group metting. Again, this</span></div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal;
 font-size: 16px; font-family: 'times new roman', 'new york', times, serif; " class="yui_3_2_0_19_134686181187967"><span style="background-color: transparent; ">is great stuff!</span></div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal; font-size: 16px; font-family: 'times new roman', 'new york', times, serif; " class="yui_3_2_0_19_134686181187967"><span style="background-color: transparent; "><br></span></div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal; font-size: 16px; font-family: 'times new roman', 'new york', times, serif; " class="yui_3_2_0_19_134686181187967"><span style="background-color: transparent; ">Salut,</span></div><div style="color: rgb(0, 0, 0); background-color: transparent; font-style: normal; font-size: 16px; font-family: 'times new roman', 'new york', times, serif; " class="yui_3_2_0_19_134686181187967"><span style="background-color: transparent;
 ">Andrew</span></div><div style="font-size: 13px; font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; font-weight: bold; " class="yui_3_2_0_19_134686181187967"><br></div> </div>  </div></body></html>