<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=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"MS Mincho";
        panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
        {font-family:"MS Mincho";
        panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@MS Mincho";
        panose-1:2 2 6 9 4 2 5 8 3 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
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;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</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-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal>Hello,<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>I’ve been following this discussion.  My thoughts
mostly reiterate what has already been said.  There’s no way to get
rid of the GIL without significantly effecting single threaded
performance.  IMO getting rid of the GIL would require writing a
mark-and-sweep algorithm.  To improve performance you can do incremental (threaded)
marking and detect page faults so that modified pages can be rescanned for
references. The Boehm garbage collector does this (I think) but Python would
need something much more custom.  This type of garbage collector is VERY
hard to write.  Worse yet, the current implementation of Python would need
a lot of rewriting.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>FYI: I tried using the Boehm collector in SlickEdit and it
leaked memory like crazy.  I never figured out why but I suspect it had to
do with it treating everything in memory as a potential pointer.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Ruby’s mark-and sweep garbage collector illustrates
the loss in single threaded performance and since it does its own thread
scheduling, the thread performance is bad too. <o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>As Python stands right now, its performance is excellent for
single threading, the implementation is simple, it works well for the typical
Python user, and using processes at least gives a work around.  I like to
be a perfectionist as much as the next guy but the pay back doesn’t
warrant the level of effort.  Where’s the easy button when you need
one<span style='font-family:Wingdings'>J</span><o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>I thought you Python enthusiasts (especially Guido) might
enjoy the article I just posted on the SlickEdit blog.  I’m the CTO
and founder of SlickEdit. I hate saying that because I’m a very humble
guy but I thought you would want to know.  The article is called “<span
style='color:#29303B'>Comparing Python to Perl and Ruby”, go to  <a
href="http://blog.slickedit.com/">http://blog.slickedit.com/</a>.   I
limited the article to a simple grammar comparison because I wanted to keep the
article short.  Hope you enjoy it.<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#29303B'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:#29303B'>Guido, I have another article
written which talks about Python as well but I have not yet posted it.  If
you give me an email address, I will send it to you to look over before I post
it.  Don’t give me your email address here.  Instead write to <a
href="mailto:support@slickedit.com">support@slickedit.com</a> and let them know
that I requested your email address.<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#29303B'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:#29303B'>Cheers<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#29303B'>Clark</span><o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

</div>

</body>

</html>