

Unladen Swallow 2009Q3 Released with LLVM optimized Python - yarapavan
http://code.google.com/p/unladen-swallow/wiki/Release2009Q3

======
cool-RR
Firstly let me say I think this is a wonderful project and one of the most
important Python projects I know.

Something I noticed though, in the Project Plan page:

[http://code.google.com/p/unladen-
swallow/wiki/ProjectPlan#20...](http://code.google.com/p/unladen-
swallow/wiki/ProjectPlan#2009_Q3_and_Beyond)

They state that one of the goals for "2009Q3 and beyond" is "to remove the GIL
and fix the state of multithreading in Python." Which I think is an awesome
and ambitious goal that I would find very useful as will many others.

So I hoped the GIL thing would fall into the "2009Q3", but apparently it's in
the "beyond" category. Anyway, they need to update that project plan.

~~~
tlb
My big python app (the robot end of a telepresence connection) suffers from
GIL problems. Mostly, threads are used for C-only stuff like video compression
so they can easily release the GIL while running. But I gotta say, the
complexities of GIL correctness, thread performance, gtk/gobject, callbacks,
boost.python, GC-correctness of both Python and C++ objects, and polling make
my head hurt. Simplicity would be a find goal for the new system.

~~~
cheriot
Is there a good python message passing implementation? Some problems fit
message passing more naturally than threading.

~~~
scott_s
[http://docs.python.org/library/multiprocessing.html#module-m...](http://docs.python.org/library/multiprocessing.html#module-
multiprocessing)

It has a Queue interface for passing objects, but also allows shared state.

------
mbrubeck
_"2009Q3 uses up to 930% less memory than the 2009Q2 release."_

Does that math make sense in some way I'm not seeing?

~~~
sparky
It's unconventional, but 9.3x less memory can be seen in some sense as
1/9.3=10.7 percent as much memory. Not defending it, just trying to interpret
:P

~~~
sp332
You can't have 9.3x less memory, either. You can have (1/9.3)x as much memory,
or they could just say 10% as much or 90% less.

~~~
sparky
I agree that it is technically unsound, but the meaning of "Nx less of
something" is still relatively unambiguous when N>1.

------
simonw
Is it noticably faster than regular Python yet?

~~~
sparky
Their first release (2009Q1) consisted mostly of patches to mainlines CPython,
which improved performance for everybody by roughly 10%. They've added about
10-15% performance on each of the last 2 releases in Unladen Swallow-specific
code, but it's unclear (to me) how CPython performance has evolved over the
last 6 months. They haven't compared explicitly since 2009Q1, which may or may
not be revealing.

From the release notes:

Lowlights:

    
    
        * LLVM's JIT and other infrastructure needed more work than was expected. As a result, we did not have time to improve performance as much as we would have liked.
        * Memory usage is still 2-3x that of Python 2.6.1. However, there is more overhead that can be eliminated for the 2009Q4 release. 
    

The last 2 releases have been mostly building up infrastructure; hopefully
most of that is behind them and they can work on getting the 5x performance
they're after.

~~~
bobbyi
Do you know whether those Q1 changes have actually been merged into CPython?
Will they be coming in 2.7?

~~~
kingkilr
Yes, they have.

~~~
bobbyi
I don't see mention of them in the changelog:
<http://docs.python.org/dev/whatsnew/2.7.html>

~~~
kingkilr
Not all of them have been backported, but basically anything that says it's
been contributed by Collin Winter or Jeffrey Yaskinn is something that's been
backported.

------
clopey
Has anyone got this working on Windows?

~~~
rbanffy
I am considering giving it a try under Cygwin. If you get there first, please,
tell us.

~~~
clopey
I did try under cygwin, and failed with errors in llvm. Will let you know if
there's any more progress though.

------
maksimka
What's the plan for Unladen Swallow to support py3k?

