On Sat, Aug 11, 2012 at 1:30 PM, Victor Stinner <victor.stin...@gmail.com> wrote:
> Hi, > > I started to implement an AST optimizer in Python. It's easy to create > a new AST tree, so I'm surprised that I didn't find any existing > project. > > https://bitbucket.org/haypo/misc/src/tip/python/ast_optimizer.py Very cool. > To test its peephole optimizations (by checking manually its final > bytecode), I wrote a patch for Python to disable Python internal > peephole optimizer (on bytecode): > https://bitbucket.org/haypo/misc/src/tip/python/compile_disable_peephole.patch > > -- > > There is BytecodeAssembler [1], but it seems to be specialized on > bytecode. There are (at least?) 3 different issues to implement an AST > optimizer, but in C, not in Python: > > http://bugs.python.org/issue1346238 > http://bugs.python.org/issue10399 > http://bugs.python.org/issue11549 I read through the issues a while back and each is interesting in its own right. However, each is a specific implementation that is somewhat general, but geared towards one optimization (folding, inlining, etc...). ISTM, that we need to step back a bit and define a what an AST optimizer for Python should look like (or even if it really makes any sense at all). I imagine having some facilities to manage and add new passes would be useful, for instance. I think this work probably merits a PEP (considering we essentially have four competing implementations for AST optimization now). This is an interesting project and I would happily volunteer to help flesh out the details of a prototype and working on a PEP. -- # Meador _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com