Quietly and imperceptibly, there was a desire to write another post about the Unladen Swallow and
again to begin it with the words "quietly and imperceptibly." And in this case, these words will be much more appropriate ...
We all miss the news about the "swallow". On the
main page of the project in the latest news reports about the release of the next quarterly release - 2009Q3, October last year. On Habré run news from the developers themselves,
raising doubts about the prospects of using Python inside Google, and, accordingly, Google’s interest in the swallow. Everything seems to be bad and bleak, it would seem that we don’t see a suitable JIT compiler in Python ...
But no. Today, having accidentally entered the #unladenswallow channel on OFTC, the
hat flew off from me : “
PEP 3146 approved! And this very
PEP 3146 is, by the way, a description of the Unladen Swallow integration plan with CPython, which now has Accepted / Standards Track status.
')
In other words, quietly and imperceptibly (yesss!), The Unladen Swallow team was given commit access to the official CPython repository, a special
py3k-jit branch was
made , and now the code base is gradually being transferred to the Python 3.x compatibility mode from the code base. Gradually, when all the problems will be settled (and there are quite a lot of them, for example, it is planned to work on the LLVM itself in order to improve its functioning in the shared linking mode; but understand, assembled with the statically linked LLVM Unladen Swallow, which occupies 12 megabytes, versus one and a half megabytes of CPython is somehow harsh), and judging by the Python-Version mark in the description of the standard, in the Python 3.3 area, a complete loss of this code to the main CPython branch will take place.
Interestingly, adding LLVM support will add C ++ code to CPython - before that CPython was developed, as its name implies, on pure C, but to use the LLVM functionality completely, it was decided to use LLVM in appropriate places in the code C ++. However, this issue was also resolved, and this did not become a problem for accepting Unladen Swallow code in CPython.
Obviously, for the time being it is exclusively a “game for the future” - Unladen Swallow still does not show the planned acceleration on average five times, for various tests giving a gain of the order of only (he-he) 30-50-100%. Nevertheless, it is clear from the tone of the developers that lately they have been mainly engaged in organizational and integration tasks, barely touching the real optimization capabilities of the LLVM (LLVM-based JIT). deliver). It is logical - the most delicious for later. We are waiting for an interesting future.