<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><span>Hi Armin:</span></div><div><br></div>  <div style="font-size: 12pt; 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 &lt;arigo@tunes.org&gt;<br> <b><span style="font-weight: bold;">To:</span></b> Andrew Francis &lt;andrewfr_ice@yahoo.com&gt; <br><b><span style="font-weight: bold;">Cc:</span></b> PyPy Developer Mailing List &lt;pypy-dev@python.org&gt; <br> <b><span style="font-weight: bold;">Sent:</span></b> Wednesday, March 28, 2012 5:08 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: The Work Plan Re: [pypy-dev] STM proposal funding<br> </font> </div> <br>
Hi Andrew,<br><br>On Mon, Mar 26, 2012 at 17:28, Andrew Francis &lt;<a ymailto="mailto:andrewfr_ice@yahoo.com" href="mailto:andrewfr_ice@yahoo.com">andrewfr_ice@yahoo.com</a>&gt; wrote:<br><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">AF&gt; I am familar with the AME papers. AME literature seems to taper<br>AF&gt; off. Have you tried talking to the various authors? Or get your<br>AF&gt; hands on an implementation.<br><br>&gt;Indeed, and it was around 2007, so I expect the authors to have been<br>&gt;involved in completely different things for quite some time now...<br>&gt;But I could try to contact them anyway.<br><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">Communications is good :-)&nbsp;</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"
 class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">AF&gt; STM is used under the hood to implement the channels and other<br>AF&gt; associated constructs. Hopefully this would 1) lead to a smaller<br>AF&gt; transactional footprint. 2) Totally hide STM from the programmer. 3)<br>AF&gt; Use an already existing API.<br><br>&gt;Yes for 2) and 3): that's precisely where I'm going.&nbsp; Right now I'm<br>&gt;focusing on Twisted instead of Stackless (with help from J.P.<br>&gt;Calderone),&nbsp;</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">Cool. I use Twisted!</div><div style="font-family: times new roman, new york, times, serif;
 font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">&gt;but the idea is the same: hide it totally from the<br>&gt;end programmer by using the existing API.&nbsp; Only the one tweaking the<br>&gt;Twisted internals needs to know about it.&nbsp; The same would apply to<br>&gt;Stackless.<br> </div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">I don't know if Christian is following this conversation....</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"
 class="yui_3_2_0_17_133294993340261">My PyPy knowledge is still&nbsp;sketchy but I am changing that. &nbsp;I do understand the Twisted reactor model</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">&nbsp;(thanks to my 2008 Pycon Talk) so I could follow discussions in that area. Is this discussed on IRC?</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">I would *love* to engage in a similar effort on the Stackless side. At first things would be slow on my</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">side. One of the tasks I would need to do is better examine how&nbsp;threads interact with the
 Stackless&nbsp;</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">scheduler (an area I seldom look at but follow the&nbsp;discussions in the Stackless Mailing List. I may have</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">misconceptions that could readily be cleared up).</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">The low hanging fruit would be 1) rewriting some of the STAMP applications to use Stackless.&nbsp;</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">2) exposing some of the lock-free mechanisms - this would
 get me deeper in the FFI.&nbsp;</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">On the wild idea front, a while back, I took a graduate research course in Distributed Algorithms. There</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">I learnt about &nbsp;Nancy Lynch's I/O Automaton model and encountered synchronisers (not that I am an expert).</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">A modified version&nbsp;of the&nbsp;I/O automaton model is used to develop proofs for transactional algorithms.&nbsp;</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"
 class="yui_3_2_0_17_133294993340261">For this discussion, ascheduler and a&nbsp;transaction manager can be thought of as a synchroniser. I have a gut&nbsp;</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">feeling that somehow the scheduler&nbsp;and a transaction manager can be unified. &nbsp;I need to revisit the literature.</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">Cheers,</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261">Andrew</div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family:
 times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif;
 font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"
 class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div><div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class="yui_3_2_0_17_133294993340261"><br></div>
 </div>  </div></body></html>