Implementations are currently required to *have* an AST (or else declare non compliance with that particular flag to compile). They're definitely not required to have the *same* AST, thus all AST manipulation, like bytecode manipulation, is necessarily implementation dependent.
We don't even guarantee AST compatibility between versions of CPython. I believe the appropriate warnings are already present in the ast module docs, but there may be misleading wording elsewhere that needs to be cleaned up. Regards, Nick. -- Sent from my phone, thus the relative brevity :) On Aug 14, 2012 5:03 AM, "Terry Reedy" <tjre...@udel.edu> wrote: > On 8/13/2012 10:45 AM, Guido van Rossum wrote: > >> Not so fast. If you make this a language feature you force all Python >> implementations to support an identical AST API. That's a big step. >> > > I have been wondering about this. One could think from the manuals that we > are there already. From the beginning of the ast chapter: > > "The ast module helps Python applications to process trees of *the* Python > abstract syntax grammar. ... An abstract syntax tree can be generated by > passing ast.PyCF_ONLY_AST as a flag to the compile() built-in function" > (emphasis on *the* added). > > and the entry for compile(): "Compile the source into a code or AST > object." > > I see nothing about ast possibly being CPython only. Should there be? > > -- > Terry Jan Reedy > > ______________________________**_________________ > Python-Dev mailing list > Python-Dev@python.org > http://mail.python.org/**mailman/listinfo/python-dev<http://mail.python.org/mailman/listinfo/python-dev> > Unsubscribe: http://mail.python.org/**mailman/options/python-dev/** > ncoghlan%40gmail.com<http://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com> >
_______________________________________________ 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