[Python-Dev] Help on choosing a PEP to volunteer on it : 308, 328 or 343

Brett Cannon brett at python.org
Thu Feb 9 03:45:01 CET 2006

On 2/8/06, Thomas Wouters <thomas at xs4all.net> wrote:
> On Wed, Feb 08, 2006 at 01:39:34PM -0800, Brett Cannon wrote:
> > On 2/8/06, Joao Macaiba <joao.macaiba at gmail.com> wrote:
> > > 1. For a newbie in the Python core development, what is the best PEP to
> > > begin with ?
> > Wild guess?  308, but that still requires changing the grammar and
> > editing the AST compiler.  328 will need playing with the import code
> > which is known to be hairy.  343 has the same needs as 308, but I bet
> > would be more complicated.
> Joao brought up an interesting point on #python on freenode, though... Is
> there any documentation regarding the AST code? I started fiddling with it
> just to get to know it, adding some weird syntax just for the hell of it,
> and I *think* I understand how the AST is supposed to work. I haven't gotten
> around to actually coding it, though (just like I haven't gotten around to
> PEP 13 ;) so maybe I have it all wrong. A short description of the
> principles and design choices would be nice, maybe with a paragraph on how
> to add new syntax constructs. How tightly should the AST follow the grammar,
> for instance?

There is a Python/compile.txt that was originally started by Jeremy
that I subsequently picked up and heavily fleshed out at the last
PyCon sprint.  It didn't get checked in during the merge because
Jeremy was not sure where to put it.  But I just checked it in since I
realized I can delete it once PEP 339 is updated.  It is slightly out
of date, though, because of the lack of info on the arena API.

> (I pointed Joao to the augmented assignment patch for 2.0, which doesn't say
> anything about the AST but should be helpful hints in his quest to
> understand Python's internals. Lord knows that's how I learned it... By the
> time he groks it all, hopefully someone can help him with the AST parts ;)

Probably best way to read it is to follow how an 'if' statement gets
compiled.  That's how I picked it up.


More information about the Python-Dev mailing list