PEP 3146: Merge Unladen Swallow into CPython
svn.python.org
svn.python.org
Performance goals have not been met so far; it increases memory usage; PyPy is an alternative with more community support (if only because the typical Python programmer knows more Python than C++); and it makes the code much more complex, introducing lots of hard-to-debug problems, at a time when the developers already have trouble getting people to migrate to 3.x.
The 3.x branch does not need a reputation for instability.
(None of this is to say Unladen Swallow is a bad idea, or should be killed; but it should prove its worth first.)
I imagine that it would be politically desirable to show success by getting officially blessed, and it would also mean that the project wouldn't just stagnate if the people now working on it were told to do something else.
More optimistically, they acknowledge that more coders would be welcome, and hope that it's easier to find those after being included in the main repository. It would also give them an edge over PyPy, their sort-of-competitor.
Google is, of course, a big company with lots of very smart people, and they rely on Python (and probably want to rely on it more in the future). Given that they employ Guido and also the primary developers of Unladen, the chances are very good that they will continue to vigorously improve upon it until their performance goals are met.
As far as introducing C++ goes, it's going to stay roped off in LLVM land (see [the PEP](http://python.org/dev/peps/pep-3146/) for details).
As far as community support, LLVM has plenty of that.
By the developers' own admission, LLVM's JIT infrastructure is immature and integrating it with Python uncovered lots of issues. Sure, clang has pretty good community support, but that doesn't mean that the Python integration - or even the JIT stuff - is equally well-supported. And the Python community doesn't contain many LLVM experts, I'd wager.
Pypy, on the other hand, is a new implementation of Python (just like ironpython or jython), and it could eventually replace cpython in the future if it proves to be succesfull (although it would be a long way off).
In few words: Python, the language, have many implementations. Cpython is the current reference one. Unladen Swallow aims to improve it, not to replace it. Actually, even the US developers acknowledge that Pypy (or any other succesfull implementation that may come up) is the future, because it doesn't have to bear the burden imposed by the c platform.
I don't think Unladen Swallow should be merged into CPython until the benefits are proven. Currently it will just add an extra layer of complexity, worsen Python's greedy management of memory and add little benefits in perfomance.
Approval for the overall concept of adding a just-in-time compiler to CPython, following the design laid out below.
Permission to continue working on the just-in-time compiler in the CPython source tree.
Permission to eventually merge the just-in-time compiler into the py3k branch once all blocking issues have been addressed.
A pony."
I propose my own python implementation for acceptance into the source tree. Right now, it's a single empty file (but I've got lots of ideas!). I'll even consider it a blocking issue if it achieves less than 10x speedup using half as much memory.
Give 'em a chance. They're only just out of the gate. :)
On the other hand, performance so far is quite underwhelming. Certainly, as a PEP, this is by no means intended to be merged now, but to provide a roadmap for the future. Here's to hoping they can remove their remaining roadblocks.
Of course one day pypy will emerge too, so unladen swallow should hurry up!
(TBH I'd prefer pypy to become the canonical python in the end)