<p dir="ltr"><br>
On Aug 13, 2012 5:22 PM, &quot;<a href="mailto:fwierzbicki@gmail.com">fwierzbicki@gmail.com</a>&quot; &lt;<a href="mailto:fwierzbicki@gmail.com">fwierzbicki@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; On Mon, Aug 13, 2012 at 1:46 PM, Guido van Rossum &lt;<a href="mailto:guido@python.org">guido@python.org</a>&gt; wrote:<br>
&gt; &gt; On Mon, Aug 13, 2012 at 1:05 PM, <a href="mailto:fwierzbicki@gmail.com">fwierzbicki@gmail.com</a><br>
&gt; &gt; &lt;<a href="mailto:fwierzbicki@gmail.com">fwierzbicki@gmail.com</a>&gt; wrote:<br>
&gt; &gt;&gt; On Mon, Aug 13, 2012 at 12:06 PM, Brett Cannon &lt;<a href="mailto:brett@python.org">brett@python.org</a>&gt; wrote:<br>
&gt; &gt;&gt;&gt;&gt; I see nothing about ast possibly being CPython only. Should there be?<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; Time to ask the other VMs what they are currently doing (the ast module came<br>
&gt; &gt;&gt;&gt; into existence in Python 2.6 so all the VMs should be answer the question<br>
&gt; &gt;&gt;&gt; since Jython is in alpha for 2.7 compatibility).<br>
&gt; &gt;<br>
&gt; &gt; [Jython]<br>
&gt; &gt;&gt; 2.5+ contains an ast.py that I obsessively compared to CPython&#39;s 2.5<br>
&gt; &gt;&gt; ast.py.<br>
&gt; &gt;<br>
&gt; &gt; But CPython&#39;s ast.py contains very little code -- it&#39;s all done in ast.c.<br>
&gt; What I did was dump a pretty print of the ast from Jython and CPython<br>
&gt; for every file in Lib/* and diff the results with a script. I got the<br>
&gt; differences down to a small number of minor variations.<br>
&gt;<br>
&gt; &gt; Still, I&#39;m glad you are actually considering this a cross-language<br>
&gt; &gt; feature, and I will gladly retract my warning. (Still, I don&#39;t know if<br>
&gt; &gt; it is subject to the usual backward compatibility constraints.)<br>
&gt; I don&#39;t know if IronPython does the same though... we might want to<br>
&gt; wait for them to respond.<br>
&gt;<br>
&gt; &gt; It might be pure python for Jython, but it&#39;s not for CPython.<br>
&gt; It&#39;s actually Java for us :) -- in fact the internal AST uses the<br>
&gt; exact Java that is exposed from our _ast.py - which I&#39;ve come to<br>
&gt; regard as a mistake (though it was useful at the time). I want to do<br>
&gt; the same obsessive diff game with 3.x but then probably separate out<br>
&gt; our internal ast implementation (possibly making ast.py pure Python).<br>
&gt;<br>
&gt; BTW - is Python&#39;s internal AST exactly exposed by ast.py or is there a<br>
&gt; separate internal AST implementation?</p>
<p dir="ltr">Direct. There is an AST grammar file that gets compiled into C and Python objects which are used by the compiler (c version) or exposed to users (Python version).</p>
<p dir="ltr">&gt;<br>
&gt; -Frank<br>
</p>