<div dir="ltr">cc'ing Jeremy Hylton who made the decision to use Zephyr.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Sep 25, 2013 at 9:15 AM, Eli Bendersky <span dir="ltr"><<a href="mailto:eliben@gmail.com" target="_blank">eliben@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div>Hello,<br><br></div><div>Some history (as best as I could collect it) followed by a question:<br>
</div><div><br></div>Before Python 2.5, the ast stdlib module was auto generated by a script named astgen.py from a textual AST definition in Tools/compiler/ast.txt.<br>
<br></div>Since 2.5 (<a href="http://www.python.org/dev/peps/pep-0339/" target="_blank">http://www.python.org/dev/peps/pep-0339/</a>) ASTs are part of the normal compilation flow by the Python compiler itself, and the ast module uses the same ASTs generated from Parser/Python.asdl<br>
<br></div>My question is, when the switch was made in 2.5 - why didn't the existing AST-generating code was used and the path moved to ASDL instead? What advantages does ASDL have over the previous approach? One reason I could think of is that ASDL nodes are typed and that's maybe better for the generated C code to handle.<br>
<br></div>[My interest here is personal. One of my projects (pycparser) uses a astgen.py-like approach, and in a new project I'm considering the options again and remembered ASDL. ADSL's documentation it extremely scarce online - seems like CPython is one of its only somewhat-visible users these days]<br>
<br></div>Thanks in advance,<br></div>Eli<br><br></div>
</blockquote></div><br></div>