<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 <arigo@tunes.org><br> <b><span style="font-weight: bold;">To:</span></b> Andrew Francis <andrewfr_ice@yahoo.com> <br><b><span style="font-weight: bold;">Cc:</span></b> PyPy Developer Mailing List <pypy-dev@python.org> <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 <<a ymailto="mailto:andrewfr_ice@yahoo.com" href="mailto:andrewfr_ice@yahoo.com">andrewfr_ice@yahoo.com</a>> 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> I am familar with the AME papers. AME literature seems to taper<br>AF> off. Have you tried talking to the various authors? Or get your<br>AF> hands on an implementation.<br><br>>Indeed, and it was around 2007, so I expect the authors to have been<br>>involved in completely different things for quite some time now...<br>>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 :-) </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> STM is used under the hood to implement the channels and other<br>AF> associated constructs. Hopefully this would 1) lead to a smaller<br>AF> transactional footprint. 2) Totally hide STM from the programmer. 3)<br>AF> Use an already existing API.<br><br>>Yes for 2) and 3): that's precisely where I'm going.  Right now I'm<br>>focusing on Twisted instead of Stackless (with help from J.P.<br>>Calderone), </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">>but the idea is the same: hide it totally from the<br>>end programmer by using the existing API.  Only the one tweaking the<br>>Twisted internals needs to know about it.  The same would apply to<br>>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 sketchy but I am changing that.  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"> (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 threads interact with the
 Stackless </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 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. </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. </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  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 of the I/O automaton model is used to develop proofs for transactional algorithms. </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 transaction manager can be thought of as a synchroniser. I have a gut </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 and a transaction manager can be unified.  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>