NYC Python (http://www.nycpython.com/) (@NYCPythonMeetup (http://www.twitter.com/nycpythonmeetup)) and BuzzFeed (http://www.buzzfeed.com/) (@BuzzFeed (https://twitter.com/buzzfeed)) are hosting a CPython workshop this coming Tuesday, November 19th, at BuzzFeed's Manhattan HQ!
This will be a hands-on workshop, exploring the CPython run-time and internals.
We'll look at how to read the CPython source, how to contribute to the CPython project, and how to motivate a stronger understanding of the Python language via understanding of the reference implementation.
James Powell (@dontusethiscode (http://www.twitter.com/dontusethiscode)) will be instructing.
Julian Berman (@JulianWasTaken (https://www.twitter.com/JulianWasTaken)) will also give a short presentation on the PyPy project and PyPy internals.
Watch this space (& the comments) for more information!
This workshop is intended to be very hands on. We'll be posting some preparatory materials here shortly!
While we will have a number of remote virtual machines available for use during tomorrow's workshop, if you would prefer to work locally, a repository has been added to GitHub with a Vagrant setup for the event. Please download and install everything ahead of time so you can hit the ground running.
Those of you having trouble with the included `gdb` macros, here's the reason: http://bugs.python.org/issue19308
The `gdb` that ships with our VM (Ubuntu 13.10) uses Python 3:
$ gdb -v
GNU gdb (GDB) 7.6.1-ubuntu
$ ldd $(which gdb) | grep python
libpython3.3m.so.1.0 => /usr/lib/x86_64-linux-gnu/libpython3.3m.so.1.0 (0x00007f0f0c0e8000)
>from sys import version_info
>sys.version_info(major=3, minor=3, micro=2, releaselevel='final', serial=0)
When you try to load the helpers, it gives an error, because libpython.py is only Python 2 compatible!
(gdb) source Tools/gdb/libpython.py