<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:12pt"><div id="yiv0488769275"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;"><div id="yiv0488769275yui_3_13_0_ym1_8_1388505332863_8"><span id="yiv0488769275yui_3_13_0_ym1_8_1388505332863_14">Hi Christian and Folks:</span></div><div id="yiv0488769275yui_3_13_0_ym1_8_1388505332863_8"><span><br></span></div><div class="yiv0488769275yahoo_quoted" id="yiv0488769275yui_3_13_0_ym1_8_1388505332863_10" style="display: block;"><div class="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5733" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5788" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;"><div
 class="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5734" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5787" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;"><div class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786">Message: 2<br clear="none">Date: Tue, 31 Dec 2013 01:55:52 +0100<br clear="none">From: Christian Tismer <<a rel="nofollow" shape="rect" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_21439" ymailto="mailto:tismer@stackless.com" target="_blank" href="mailto:tismer@stackless.com">tismer@stackless.com</a>><br clear="none">To: The Stackless Python Mailing List <<a rel="nofollow" shape="rect" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_12607" ymailto="mailto:stackless@stackless.com" target="_blank" href="mailto:stackless@stackless.com">stackless@stackless.com</a>><br clear="none">Subject: Re: [Stackless] pi-ton 2.9 /
 Gillesspie<br clear="none">Message-ID: <<a rel="nofollow" shape="rect" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_12608" ymailto="mailto:52C21618.6070805@stackless.com" target="_blank" href="mailto:52C21618.6070805@stackless.com">52C21618.6070805@stackless.com</a>><br clear="none">Content-Type: text/plain; charset="utf-8"; Format="flowed"<br clear="none"><br clear="none"><br clear="none">>First attempt:<br clear="none">>-----------<br clear="none"><br clear="none">>I want to go for a GIL-Less Python.<br clear="none">>That Python uses thread- (or better tasklet-) local storage instead of<br clear="none">>the globals.</div><div class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786"><br clear="none"></div><div class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786">Would you be building this on top of CPython? Or PyPy? I don't believe the stackless features of
 PyPy have integrated with PyPy's STM yet. I believe getting PyPy's Stackless features and STM integrated will allow for rapid prototyping of approaches. I would like to help on this front.</div><div class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786"><br clear="none">>When a tasklet touches data that it does not own, then the regular<br clear="none">>actions dig in - either locking, or actions of an STM implementation,<br clear="none">>see the PyPy blogs.</div><div class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786"><br clear="none"></div><div class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786">My question is how do channels fit into this picture? </div><div class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786"><br clear="none"></div><div class="yiv0488769275y_msg_container"
 id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786">>The needed
 functionality can be folded into Python at some cost for the<br clear="none">>general case. But I think it can become very effective on modern hardware<br clear="none">>and current software paradigms. Simultaneous access to certain things<br clear="none">>can be avoided in over 95 % of typical observations.</div><div class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786"><br clear="none"></div><div class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786">Well I think in a well written Stackless Python programme, channels/message passing results in the avoidance of simultaneous access to data most of the time. This ought to be exploited. For better or worse, Go provides plenty of literature on the design philosophy and issues surrounding channels and concurrency.</div><div class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786"><br
 clear="none"></div><div class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786">Again, I have a hazy view but I suspect that an effective
 approach would be based on limiting STM/lock-free algorithms to the channel mechanism. A smaller transaction footprint would more readily allow one to exploit hardware based STM. Again, this is all conjuncture on my part. I am trying to figure out how best to explore some ideas.</div><div class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786"><div class="yiv0488769275yqt4660936838" id="yiv0488769275yqtfd57614"><br clear="none"><br clear="none">>- Gillespy<br clear="none"><br clear="none">>This is not only a contribution to Dizzy Gillespie, but also a word-playing<br clear="none">>game for those who wonder what a GIL-less Py should be.</div><br clear="none"><br clear="none"></div><div class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786">I think that is a cool code name. I think a lot of improvisation and virtuosity will be needed to for this project :-)</div><div
 class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786"><br clear="none"></div><div class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786">Happy New Year</div><div class="yiv0488769275y_msg_container" id="yiv0488769275yui_3_13_0_ym1_1_1388505332863_5786">Andrew</div><div class="yiv0488769275yqt4660936838" id="yiv0488769275yqtfd35791">  </div></div><div class="yiv0488769275yqt4660936838" id="yiv0488769275yqtfd76514"> </div></div><div class="yiv0488769275yqt4660936838" id="yiv0488769275yqtfd09521">  </div></div><div class="yiv0488769275yqt4660936838" id="yiv0488769275yqtfd32650"> </div></div></div></div></div></body></html>