<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>