Not that the case isn't well argued, but to claim that GIL isn't a fundamental limitation and a bad thing is silly.
A few years from now it will be like, "Oh, yeah.. that".
Not that the case isn't well argued, but to claim that GIL isn't a fundamental limitation and a bad thing is silly.
A few years from now it will be like, "Oh, yeah.. that".
That's a quote. What more do you want?
The question is not and never has been "Does the GIL have undesirable characteristics?" It has always been "can someone produce an implementation that is missing the GIL and actually better, while meeting all the needs CPython has?" So far, the answer is no, despite rather a lot of smart people trying.
(Also note that many people have succeeded by dropping the second clause. Many non-CPython Python implementations don't have a GIL. But they aren't CPython, which in particular means that extensions written for CPython don't work in them, which is really the key thing that distinguishes CPython from just generic "Python".)
With PyPy the performance will get better, and they also have a GC, so that hinder is removed. I don't really know if PyPy has a GIL, I would guess that they don't.
PyPy still has GIL:
http://codespeak.net/pypy/dist/pypy/doc/faq.html#does-pypy-h...
For more information about it, check these sources:
Official PyPy Status Blog - http://morepypy.blogspot.com/2008/05/threads-and-gcs.html
Thinking about the GIL (read the whole thread, interesting stuff) - http://mail.python.org/pipermail/pypy-dev/2011-March/006991....
Is it really necessary for the GC to be re-entrant to run the interpreter in parallel? Couldn't you have the interpreter running in parallel and then when there is a need to run the GC you have a global GC lock that prevents all threads from running - a stop the world GC. The application runs for a longer time than the GC, right? So it would be a win and a step in the right direction? I believe the early Java mark and sweep GC was like that, and then later Sun developed several different kinds of concurrent and parallel GCs.
> Official PyPy Status Blog
Oh I read that every time they write something. :) But I started reading it in late 2010 and I haven't gone back to the archives, I guess it's time to do that. Thanks for the links.