<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 30.12.13 23:54, Kristján Valur
      Jónsson wrote:<br>
    </div>
    <blockquote
      cite="mid:EFE3877620384242A686D52278B7CCD3A523688C@rkv-it-exch103"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="GENERATOR" content="MSHTML 11.00.9600.16476">
      <style id="owaParaStyle">P {
        MARGIN-BOTTOM: 0px; MARGIN-TOP: 0px
}
</style>
      <div style="direction: ltr;font-family: Tahoma;color:
        #000000;font-size: 10pt;">
        <p>Alex Gaynor just blogged about the failed state of 3.x and
          the need to give in and produce a better 2.x</p>
        <p> </p>
        <p><a moz-do-not-send="true"
            href="http://alexgaynor.net/2013/dec/30/about-python-3/">http://alexgaynor.net/2013/dec/30/about-python-3/</a></p>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
    </blockquote>
    <br>
    Yes this is true, and very interesting reading.<br>
    <br>
    Anyway, I do not want to see anybody mentioning piton and "2.8" in
    the same<br>
    paragraph or subject line, before a revised PEP 0404 is available
    that allows it.<br>
    <br>
    We are in fact building a Stackless 2.8, which has a few back-ports.<br>
    It will go online in January.<br>
    <br>
    At the same time, I am really thinking of a slightly more drastical
    change<br>
    of Python, that is over-due, and not that hard to do as people might
    think:<br>
    <br>
    First attempt:<br>
    -----------<br>
    <br>
    I want to go for a GIL-Less Python.<br>
    That Python uses thread- (or better tasklet-) local storage instead
    of<br>
    the globals.<br>
    To make that possible, a completely new storage class needs to be
    installed,<br>
    probably with a new keyword. This storage class will be
    automatically used<br>
    by tasklets. They will use copy-on-write semantics to make all
    modifications<br>
    local.<br>
    <br>
    The namespace is named "non-shared".<br>
    <br>
    The idea is to let things by default happen only locally, in a
    sub-interpreter.<br>
    Objects that are not in the local namespace are installed
    copy-on-write,<br>
    creating a non-shared object after being touched.<br>
    <br>
    The info about being sharable or non-shared is a new attribute for
    every<br>
    object. The implementation is undecided, but may be implicit by
    using<br>
    the memory pool information.<br>
    <br>
    A tasklet that uses "non-shared" data can run without the GIL, until
    it<br>
    writes other data that it does not own privately.<br>
    <br>
    When a tasklet touches data that it does not own, then the regular<br>
    actions dig in - either locking, or actions of an STM
    implementation,<br>
    see the PyPy blogs.<br>
    <br>
    But the idea is to de-couple threads of python execution as much as
    possible,<br>
    without making Python an intractable beast.<br>
    <br>
    For "normal" applications, Stackless 2.9 should just work as
    expected.<br>
    But whenever the effect of an action should be globally visible, an
    extra<br>
    function call is needed that opens the hidden state to others.<br>
    <br>
    This is the rendevous case that we try to avoid, most of the time.<br>
    <br>
    The needed functionality can be folded into Python at some cost for
    the<br>
    general case. But I think it can become very effective on modern
    hardware<br>
    and current software paradigms. Simultaneous access to certain
    things<br>
    can be avoided in over 95 % of typical observations.<br>
    <br>
    Code Name<br>
    ----------<br>
    <br>
    As always, I am better at assigning a code name than creating a
    really one.<br>
    My suggestion is:<br>
    <br>
    - Gillespy<br>
    <br>
    This is not only a contribution to Dizzy Gillespie, but also a
    word-playing<br>
    game for those who wonder what a GIL-less Py should be.<br>
    <br>
    I want to regard this post as an undirected starter.<br>
    <br>
    Opinions?<br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Christian Tismer             :^)   <a class="moz-txt-link-rfc2396E" href="mailto:tismer@stackless.com"><mailto:tismer@stackless.com></a>
Software Consulting          :     Have a break! Take a ride on Python's
Karl-Liebknecht-Str. 121     :    *Starship* <a class="moz-txt-link-freetext" href="http://starship.python.net/">http://starship.python.net/</a>
14482 Potsdam                :     PGP key -> <a class="moz-txt-link-freetext" href="http://pgp.uni-mainz.de">http://pgp.uni-mainz.de</a>
phone +49 173 24 18 776  fax +49 (30) 700143-0023
PGP 0x57F3BF04       9064 F4E1 D754 C2FF 1619  305B C09C 5A3B 57F3 BF04
      whom do you want to sponsor today?   <a class="moz-txt-link-freetext" href="http://www.stackless.com/">http://www.stackless.com/</a></pre>
  </body>
</html>