Friday, January 21, 2011

PyPy wants you!

If you ever considered contributing to PyPy, but never did so far, this is a
good moment to start! :-)

Recently, we merged the fast-forward branch which brings Python 2.7
compatibility, with the plan of releasing a new version of PyPy as soon as all
tests pass.

However, at the moment there are still quite a few of failing tests because
of new 2.7 features that have not been implemented yet: many of them are easy
to fix, and doing it represents a good way to get confidence with the code
base, for those who are interested in it. Michael Foord wrote a little howto
explaining the workflow for running lib-python tests.

Thus, if you are willing to join us in the effort of having a PyPy compatible
with Python 2.7, probably the most sensible option is to come on the #PyPy IRC
channel on Freenode, so we can coordinate each other not to fix the same test
twice.

Moreover, if you are a student and are considering participating in the next
Google Summer of Code this is a good time to get into pypy. You have the
opportunity to get a good understanding of pypy for when you decide what you
would like to work on over the summer.

If you ever considered contributing to PyPy, but never did so far, this is a
good moment to start! :-)

Recently, we merged the fast-forward branch which brings Python 2.7
compatibility, with the plan of releasing a new version of PyPy as soon as all
tests pass.

However, at the moment there are still quite a few of failing tests because
of new 2.7 features that have not been implemented yet: many of them are easy
to fix, and doing it represents a good way to get confidence with the code
base, for those who are interested in it. Michael Foord wrote a little howto
explaining the workflow for running lib-python tests.

Thus, if you are willing to join us in the effort of having a PyPy compatible
with Python 2.7, probably the most sensible option is to come on the #PyPy IRC
channel on Freenode, so we can coordinate each other not to fix the same test
twice.

Moreover, if you are a student and are considering participating in the next
Google Summer of Code this is a good time to get into pypy. You have the
opportunity to get a good understanding of pypy for when you decide what you
would like to work on over the summer.

8 comments:

Would you mind giving us a hint of what skills programmers would need to be actually useful? I know you don't want to scare anybody off, but PyPy is kind of the ultimate evolution of what you can do with the language, and I get the sense (perhaps wrongly!) that it goes places where desktop-and-web-app guys like me are a bit out of our depth and actually might waste time more than anything else.

I'm asking this here because I'm pretty sure that others are going to be thinking the same thing.

Nofrak: you ask good questions. I'd say you need to know your way around Python programming in general which you most certainly do if you have done desktop or Web apps in Python.

Secondly, it's important to know a bit about the basic structure of an Python interpreter. Reading some docs, among them Chapter 1 of http://codespeak.net/pypy/trunk/pypy/doc/coding-guide.html#overview-and-motivation should help.

Thirdly, methodology: PyPy is written in a test-driven way, and for the Python interpreter there are several places for tests: one is the (sometimes slightly modified) standard CPython tests in the lib-python/(modified-)2.7.0 directory, another is pypy/objspace/std/test. The implementation of the interpreter mainly is written down in pypy/objspace/std/*.py.

Hope that helps a bit. IRC is a good place to ask for further directions, of course.

@Anonymous: creating a new issue in the bug tracker is not necessary: you can just come on IRC or write to pypy-dev attaching your patch, or you can e.g. fork the project on bitbucket and send a pull request, or you can send us the mercurial bundle, etc. etc.

What's the story on PyPy for the Python 3 language? Python 3 is over 2 years old, and Python 2.x is looking older every day. I might consider getting involved, but I don't want to feel like I'm spending time contributing to a dead-end branch of the language.