<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="IS">Hi there.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="IS">I‘ve been working on stacklesslib for a bit now after PyCon.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="IS">Ive restructured it a bit and fixed it in many places.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="IS">it now contains an „app“ submodule which stackless aware applications should use to get stuff such as „sleep“ and „Event“.  The reason for this is that some modules may run either as standalone vanilla thingies, or co-operatively
 in stackless mode.  If we don‘t want to monkeypatch the whole environment (not alwasy a nice thing to do) then using the appropriate stuff from „app“ is a good thing.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="IS">The EventLoop has been moved into its own submodule and given an interface similar to the relevant parts of Guido‘s „tulip“ project.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="IS">There is a new and powerful feature in „util“ called „timeout“ which allows the timing out of arbitrary callstacks.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="IS">A bunch of problems in the asyncore/socket implementation were ironed out.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="IS"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="IS">Check it out at <a href="https://bitbucket.org/krisvale/stacklesslib">
https://bitbucket.org/krisvale/stacklesslib</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="IS"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="IS">Then there is the tealet lib.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="IS">This is code from Armin Rigo, basically a further factoring out from greenlets.  It is a pure C library that implements stack slicing without any reference to Python at all.  Use this to bring the magic of stack slicing
 to your stack based program.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="IS">I have been tinkering with Armin‘s code for some two years now.  I added some robustness features (error handling) and optimized the stack handling in various ways.  Tealets can now be duplicated and this used to create
 ‚stub‘ tealets for spawning new ones, rather than always spawning a new tealet off from the current stack position.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="IS">There is also a pytealet module that provides a (2.7) extension module, and a greenlet.py emulation module that re-implements greenlets on top of tealets.  <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="IS"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="IS">Check it out at <a href="https://bitbucket.org/krisvale/tealet">
https://bitbucket.org/krisvale/tealet</a>  (Ive forked this out of my „public“ repo, go to krisvale/public for the full revision history)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="IS"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="IS">K<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="IS"><o:p> </o:p></span></p>
</div>
</body>
</html>