<!-- 
RSS generated by JIRA (4.4#649-r158309) at Wed May 22 12:12:53 CDT 2013

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
For example:
http://dev.clojure.org/jira/si/jira.issueviews:issue-xml/CLJS-294/CLJS-294.xml?field=key&field=summary
-->
<rss version="0.92" >
<channel>
    <title>Clojure JIRA</title>
    <link>http://dev.clojure.org/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>4.4</version>
        <build-number>649</build-number>
        <build-date>25-07-2011</build-date>
    </build-info>

<item>
            <title>[CLJS-294] AST contains munged symbols</title>
                <link>http://dev.clojure.org/jira/browse/CLJS-294</link>
                <project id="10040" key="CLJS">ClojureScript</project>
                        <description>&lt;p&gt;All of the symbols in the abstract syntax tree are munged according for use in JavaScript. This is a problem because it means the AST is lossy and new compiler backends may have differing munging rules.&lt;/p&gt;

&lt;p&gt;The attached patch removes all munging from the analysis phase and moves it into the emit phase. The emit phase is backend specific, so it&apos;s an appropriate place for munging.&lt;/p&gt;</description>
                <environment></environment>
            <key id="15504">CLJS-294</key>
            <summary>AST contains munged symbols</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="3" iconUrl="http://dev.clojure.org/jira/images/icons/priority_major.gif">Major</priority>
                    <status id="5" iconUrl="http://dev.clojure.org/jira/images/icons/status_resolved.gif">Resolved</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="bbloom">Brandon Bloom</reporter>
                        <labels>
                        <label>patch</label>
                        <label>patch,</label>
                    </labels>
                <created>Sat, 2 Jun 2012 18:20:49 -0500</created>
                <updated>Sun, 3 Jun 2012 17:12:28 -0500</updated>
                    <resolved>Sun, 3 Jun 2012 17:12:28 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>2</watches>
                        <comments>
                    <comment id="28691" author="dnolen" created="Sun, 3 Jun 2012 09:55:45 -0500"  >&lt;p&gt;It may be better to formalize munging as there are some other bits different backend must do, Raphael Amiard has taken some notes on this here: &lt;a href=&quot;http://github.com/raph-amiard/clojurescript/wiki/How-to-modularize-parse-analyze-phases-in-the-compiler&quot;&gt;http://github.com/raph-amiard/clojurescript/wiki/How-to-modularize-parse-analyze-phases-in-the-compiler&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="28695" author="bbloom" created="Sun, 3 Jun 2012 11:33:16 -0500"  >&lt;p&gt;I agree that we&apos;ll eventually want to formalize munging. However, whenever that happens, it should still happen &lt;b&gt;after&lt;/b&gt; the AST is constructed. Munging shouldn&apos;t happen at all if you&apos;re doing refactoring or the like, where you query the AST. Munging is code generation concern.&lt;/p&gt;

&lt;p&gt;Prior to my patch, the AST needs to support both :name and :name-sym keys to get around the fact that the :name key loses fidelity of the original symbol. This complects the Clojure-specific parse phase with target-specific needs. The patch renames :name-sym to replace :name.&lt;/p&gt;

&lt;p&gt;I read Raphael&apos;s notes and he and I have a email thread going on too. With that in mind, this is a step towards untangling the architectural layers of the compiler. By better segregating parse from emit, it will be easier to break the analyzer out from the code generation backend.&lt;/p&gt;</comment>
                    <comment id="28700" author="dnolen" created="Sun, 3 Jun 2012 17:12:28 -0500"  >&lt;p&gt;fixed, &lt;a href=&quot;http://github.com/clojure/clojurescript/commit/a9d1dc6a043e8a6367492a2cf8622f73f2a947f9&quot;&gt;http://github.com/clojure/clojurescript/commit/a9d1dc6a043e8a6367492a2cf8622f73f2a947f9&lt;/a&gt;&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="11285" name="emit-munge.patch" size="24104" author="bbloom" created="Sat, 2 Jun 2012 18:20:49 -0500" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                            <customfield id="customfield_10000" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Patch</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10001">Code</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                        </customfields>
    </item>
</channel>
</rss>