<!--
RSS generated by JIRA (4.4#649-r158309) at Wed May 22 16:12:16 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/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=project+%3D+CLJS+AND+updated%3E%3D-1w+ORDER+BY+updated+DESC&tempMax=1000&field=key&field=summary
-->
<!-- If you wish to do custom client-side styling of RSS, uncomment this:
<?xml-stylesheet href="http://dev.clojure.org/jira/styles/jiraxml2html.xsl" type="text/xsl"?>
-->
<rss version="0.92">
    <channel>
        <title>Clojure JIRA</title>
        <link>http://dev.clojure.org/jira/secure/IssueNavigator.jspa?reset=true&amp;jqlQuery=project+%3D+CLJS+AND+updated%3E%3D-1w+ORDER+BY+updated+DESC</link>
        <description>An XML representation of a search request</description>
                <language>en-us</language>
                        <issue start="0" end="6" total="6"/>
                <build-info>
            <version>4.4</version>
            <build-number>649</build-number>
            <build-date>25-07-2011</build-date>
        </build-info>
<item>
            <title>[CLJS-480] *cljs-data-readers* is bound to *data-readers* inconsistently</title>
                <link>http://dev.clojure.org/jira/browse/CLJS-480</link>
                <project id="10040" key="CLJS">ClojureScript</project>
                        <description>&lt;p&gt;It looks like &lt;tt&gt;&amp;#42;cljs-data-readers&amp;#42;&lt;/tt&gt; is not being bound to &lt;tt&gt;&amp;#42;data-readers&amp;#42;&lt;/tt&gt; where it should be.&lt;/p&gt;

&lt;p&gt;At a minimum, &lt;tt&gt;cljs.repl/load-stream&lt;/tt&gt; does not.  The practical effect of this instance is that e.g. &lt;tt&gt;(load-file &quot;some/cljs/file.cljs&quot;)&lt;/tt&gt; will fail if that file or any other contains a user-defined literal tag.  Similar behaviour exists elsewhere, e.g. &lt;tt&gt;(load-namespace &apos;some.cljs.ns)&lt;/tt&gt; will not load a namespace that contains user-defined tags (I &lt;em&gt;think&lt;/em&gt; that one is due to &lt;tt&gt;&amp;#42;cljs-data-readers&amp;#42;&lt;/tt&gt; not being bound in the analyzer).&lt;/p&gt;

&lt;p&gt;This is related to &lt;a href=&quot;http://dev.clojure.org/jira/browse/CLJS-479&quot; title=&quot;load-file in REPL improperly qualifies current-namespace ::keywords&quot;&gt;CLJS-479&lt;/a&gt; insofar as it&apos;s another symptom of ClojureScript loading code in subtly different ways in multiple places.&lt;/p&gt;

&lt;p&gt;I&apos;m happy to do either of:&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;submit issues+patches fixing issues as I encounter them, or&lt;/li&gt;
	&lt;li&gt;attempt a more significant refactoring that sets up (hopefully) one and only one place where ClojureScript reads code (i.e. uses &lt;tt&gt;LispReader&lt;/tt&gt;) so that behaviour can be consistent&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;I&apos;m somewhat hesitant re: (2) insofar as the specific requirements of the compiler and analyzer and REPL may be divergent in ways that I&apos;m not yet aware of, but it seems like it&apos;s worth a shot.&lt;/p&gt;</description>
                <environment></environment>
            <key id="16036">CLJS-480</key>
            <summary>*cljs-data-readers* is bound to *data-readers* inconsistently</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="1" iconUrl="http://dev.clojure.org/jira/images/icons/status_open.gif">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="cemerick">Chas Emerick</reporter>
                        <labels>
                    </labels>
                <created>Fri, 1 Mar 2013 15:44:22 -0600</created>
                <updated>Tue, 21 May 2013 10:06:43 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="31103" author="bendlas" created="Fri, 17 May 2013 15:10:29 -0500"  >&lt;p&gt;Attached patch 0001 binds &lt;b&gt;data-readers&lt;/b&gt; in cljs.compiler/parse-ns.&lt;/p&gt;

&lt;p&gt;This allows the compiler to run, even if files with reader tags are already compiled.&lt;/p&gt;

&lt;p&gt;This in turn allows multiple test compilations to be brought back, which I&apos;ll submit as part of a patch for an additional debugging flag, if nobody beats me to it.&lt;/p&gt;

&lt;p&gt;I think this won&apos;t fix load-file &lt;img class=&quot;emoticon&quot; src=&quot;http://dev.clojure.org/jira/images/icons/emoticons/help_16.gif&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;, but after the hotfix we should probably look for the proper place in the compiler to bind &lt;b&gt;data-readers&lt;/b&gt;.&lt;/p&gt;</comment>
                    <comment id="31105" author="bendlas" created="Fri, 17 May 2013 17:25:23 -0500"  >&lt;p&gt;Patch 0002 is my overhaul for the test script.&lt;br/&gt;
Since it&apos;s a test case for patch 0001, I think it&apos;s justifiable on this ticket.&lt;/p&gt;

&lt;p&gt;Note: On my machine, with SpiderMonkey 185, the test case (not (integer? 1e+308)) fails. It probably doesn&apos;t have to do anything with the removed -n flag (there is no js -n omm), I just wanted to mention it.&lt;/p&gt;</comment>
                    <comment id="31126" author="dnolen" created="Tue, 21 May 2013 10:06:43 -0500"  >&lt;p&gt;Please move the test script patch to a different ticket. Thanks.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="11995" name="0001-CLJS-480-bind-data-readers-in-parse-ns.patch" size="883" author="bendlas" created="Fri, 17 May 2013 15:10:29 -0500" />
                    <attachment id="11996" name="0002-Bring-back-multiple-test-compilations-and-overhaul-o.patch" size="2798" author="bendlas" created="Fri, 17 May 2013 17:25:23 -0500" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CLJS-508] Missing IReduce implementations and typo in clojure.core.reducers/append!</title>
                <link>http://dev.clojure.org/jira/browse/CLJS-508</link>
                <project id="10040" key="CLJS">ClojureScript</project>
                        <description>&lt;p&gt;1) IReduce protocol is missing implementation for array and List.&lt;br/&gt;
2) append! uses (.add array), while the correct array method name is push&lt;/p&gt;

&lt;p&gt;Patch attached.&lt;/p&gt;

&lt;p&gt;Note: what is your experience with array.push performance? ClojureScript reducers/foldcat uses arrays for append! / cat implementation. My experience was that (into [] ...) using conj! and TransientVector was at least 5 times faster than reducers/foldcat using array and push. The reason is probably inefficient push implementation in Chrome/V8&lt;/p&gt;</description>
                <environment>Fresh CLJS checkout from github</environment>
            <key id="16195">CLJS-508</key>
            <summary>Missing IReduce implementations and typo in clojure.core.reducers/append!</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="4" iconUrl="http://dev.clojure.org/jira/images/icons/priority_minor.gif">Minor</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="skardan">Daniel Skarda</reporter>
                        <labels>
                    </labels>
                <created>Tue, 21 May 2013 05:51:11 -0500</created>
                <updated>Tue, 21 May 2013 10:03:02 -0500</updated>
                    <resolved>Tue, 21 May 2013 10:03:02 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="31124" author="dnolen" created="Tue, 21 May 2013 09:59:26 -0500"  >&lt;p&gt;Thanks for the patch. I doubt that array push is inefficient, but I imagine the regularity of TransientVector operations is something that V8 likes.&lt;/p&gt;</comment>
                    <comment id="31125" author="dnolen" created="Tue, 21 May 2013 10:03:02 -0500"  >&lt;p&gt;fixed, &lt;a href=&quot;http://github.com/clojure/clojurescript/commit/30bb0b9e55fb77cdfe952fbf5df763a25c4a25c5&quot;&gt;http://github.com/clojure/clojurescript/commit/30bb0b9e55fb77cdfe952fbf5df763a25c4a25c5&lt;/a&gt;&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="12000" name="reducers.patch" size="2281" author="skardan" created="Tue, 21 May 2013 05:51:11 -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="10002">Code and Test</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                        </customfields>
    </item>

<item>
            <title>[CLJS-509] Spurious warning about symbol not being a protocol</title>
                <link>http://dev.clojure.org/jira/browse/CLJS-509</link>
                <project id="10040" key="CLJS">ClojureScript</project>
                        <description>&lt;p&gt;&quot;lein cljsbuild&quot; generates &quot;Symbol X is not a protocol&quot; warning. The following code snippet reproduces the issue. Renaming &quot;my.foo&quot; namespace to &quot;foo&quot; compiles with no warning.&lt;/p&gt;

&lt;p&gt;;; &lt;a href=&quot;file::&quot;&gt;file::&lt;/a&gt; foo.cljs&lt;br/&gt;
(ns my.foo)&lt;/p&gt;

&lt;p&gt;(defprotocol IFoo&lt;br/&gt;
  (bar&lt;span class=&quot;error&quot;&gt;&amp;#91;this&amp;#93;&lt;/span&gt;))&lt;/p&gt;

&lt;p&gt;;; file: fubar.cljs&lt;br/&gt;
(ns fubar&lt;br/&gt;
  (:require&lt;br/&gt;
   &lt;span class=&quot;error&quot;&gt;&amp;#91;my.foo :as foo&amp;#93;&lt;/span&gt;))&lt;/p&gt;

&lt;p&gt;(deftype FuBar []&lt;br/&gt;
  foo/IFoo&lt;br/&gt;
  (bar &lt;span class=&quot;error&quot;&gt;&amp;#91;this&amp;#93;&lt;/span&gt;))&lt;/p&gt;

&lt;p&gt;cljs output:&lt;br/&gt;
WARNING: Symbol foo/IFoo is not a protocol at line 5 src/fubar.cljs&lt;/p&gt;
</description>
                <environment>Clojure 1.5.1, ClojureScript, cljsbuild 0.3.2</environment>
            <key id="16196">CLJS-509</key>
            <summary>Spurious warning about symbol not being a protocol</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="4" iconUrl="http://dev.clojure.org/jira/images/icons/priority_minor.gif">Minor</priority>
                    <status id="1" iconUrl="http://dev.clojure.org/jira/images/icons/status_open.gif">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="praki">Praki Prakash</reporter>
                        <labels>
                    </labels>
                <created>Tue, 21 May 2013 09:22:44 -0500</created>
                <updated>Tue, 21 May 2013 09:22:44 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                    <attachment id="12001" name="foo.cljs" size="46" author="praki" created="Tue, 21 May 2013 09:22:44 -0500" />
                    <attachment id="12002" name="fubar.cljs" size="90" author="praki" created="Tue, 21 May 2013 09:22:44 -0500" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CLJS-507] Persistent Data Structure Benchmark</title>
                <link>http://dev.clojure.org/jira/browse/CLJS-507</link>
                <project id="10040" key="CLJS">ClojureScript</project>
                        <description>&lt;p&gt;Put together an easy to run series of persistent data structure benchmarks that can be easily run. For example we would like to submit to this Mozilla ticket &lt;a href=&quot;http://bugzilla.mozilla.org/show_bug.cgi?id=874174&quot;&gt;http://bugzilla.mozilla.org/show_bug.cgi?id=874174&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
            <key id="16194">CLJS-507</key>
            <summary>Persistent Data Structure Benchmark</summary>
                <type id="3" iconUrl="http://dev.clojure.org/jira/images/icons/task.gif">Task</type>
                                <priority id="3" iconUrl="http://dev.clojure.org/jira/images/icons/priority_major.gif">Major</priority>
                    <status id="1" iconUrl="http://dev.clojure.org/jira/images/icons/status_open.gif">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="dnolen">David Nolen</reporter>
                        <labels>
                    </labels>
                <created>Mon, 20 May 2013 14:35:42 -0500</created>
                <updated>Mon, 20 May 2013 14:35:42 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                        </customfields>
    </item>

<item>
            <title>[CLJS-499] Reassess ObjectMap vs. PersistentArrayMap</title>
                <link>http://dev.clojure.org/jira/browse/CLJS-499</link>
                <project id="10040" key="CLJS">ClojureScript</project>
                        <description>&lt;p&gt;Here are some benchmarks after performance improvements have been applied to PersistentArrayMap in master:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;ObjMap vs PersistentArrayMap 1 entry -lookup, &lt;a href=&quot;http://jsperf.com/ojbmap-vs-persistentarraymap-lookup-1&quot;&gt;http://jsperf.com/ojbmap-vs-persistentarraymap-lookup-1&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;ObjMap vs PersistentArrayMap 3 entry -lookup, &lt;a href=&quot;http://jsperf.com/objectmap-vs-persistentarraymap-3-lookup&quot;&gt;http://jsperf.com/objectmap-vs-persistentarraymap-3-lookup&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;ObjMap vs PersistentArrayMap 7 entry -lookup, &lt;a href=&quot;http://jsperf.com/objmap-vs-persistentarraymap-7-lookup&quot;&gt;http://jsperf.com/objmap-vs-persistentarraymap-7-lookup&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;For the smallest sizes PAMs are nearly identical in performance to OMs, as we start nearing the PHM threshold PAMs are nearly 2X faster on WebKit Nightly, and nearly 3X faster on the latest Chrome. Only Firefox Nightly lags behind for lookup times at larger sizes.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;ObjMap vs PersistentArrayMap assoc empty, &lt;a href=&quot;http://jsperf.com/objmap-vs-persistentarraymap-assoc-empty&quot;&gt;http://jsperf.com/objmap-vs-persistentarraymap-assoc-empty&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;ObjMap vs PersistentArrayMap assoc 3kv, &lt;a href=&quot;http://jsperf.com/objmap-vs-persistentarraymap-assoc-3&quot;&gt;http://jsperf.com/objmap-vs-persistentarraymap-assoc-3&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;ObjMap vs PersistentArrayMap assoc 7kv, &lt;a href=&quot;http://jsperf.com/objmap-vs-persistentarraymap-assoc-7kv&quot;&gt;http://jsperf.com/objmap-vs-persistentarraymap-assoc-7kv&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Again we see nearly identical (or much better) performance at small sizes and much better performance for PAMs as we approach the PHM threshold.&lt;/p&gt;</description>
                <environment></environment>
            <key id="16160">CLJS-499</key>
            <summary>Reassess ObjectMap vs. PersistentArrayMap</summary>
                <type id="4" iconUrl="http://dev.clojure.org/jira/images/icons/improvement.gif">Enhancement</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="dnolen">David Nolen</reporter>
                        <labels>
                    </labels>
                <created>Thu, 25 Apr 2013 11:46:22 -0500</created>
                <updated>Mon, 20 May 2013 07:59:37 -0500</updated>
                    <resolved>Mon, 20 May 2013 07:59:37 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="31060" author="dspiteself@gmail.com" created="Tue, 7 May 2013 12:11:58 -0500"  >&lt;p&gt;When I try to run the jsprefs I get &quot;ReferenceError: cljs_perf is not defined.&quot;&lt;/p&gt;</comment>
                    <comment id="31118" author="dnolen" created="Mon, 20 May 2013 07:59:37 -0500"  >&lt;p&gt;fixed, &lt;a href=&quot;http://github.com/clojure/clojurescript/commit/08489f39060be1097fa23abc8d5042c86e68dd4d&quot;&gt;http://github.com/clojure/clojurescript/commit/08489f39060be1097fa23abc8d5042c86e68dd4d&lt;/a&gt;&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CLJS-506] Flag to disable minification in advanced mode</title>
                <link>http://dev.clojure.org/jira/browse/CLJS-506</link>
                <project id="10040" key="CLJS">ClojureScript</project>
                        <description>&lt;p&gt;Problem:&lt;br/&gt;
Some code has different semantics when compiled in advanced mode.&lt;br/&gt;
Clojurescript tries to minimize those cases, but examples are usage of aget or forgotten externs files.&lt;br/&gt;
There exits closure compiler options to generate names based on original expressions, even with advanced optimizations.&lt;br/&gt;
However, there exists no clojurescript compiler option for that.&lt;/p&gt;

&lt;p&gt;Proposal:&lt;br/&gt;
Add a :debug compiler option to clojurescript, which can be set to true to turn the following closure compiler options on:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;generatePseudoNames true&lt;/li&gt;
	&lt;li&gt;anonymousFunctionNaming AnonymousFunctionNamingPolicy/UNMAPPED&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Attached patch implements this, as a result the compiled test suite is indeed quite readable.&lt;/p&gt;</description>
                <environment></environment>
            <key id="16193">CLJS-506</key>
            <summary>Flag to disable minification in advanced mode</summary>
                <type id="4" iconUrl="http://dev.clojure.org/jira/images/icons/improvement.gif">Enhancement</type>
                                <priority id="3" iconUrl="http://dev.clojure.org/jira/images/icons/priority_major.gif">Major</priority>
                    <status id="1" iconUrl="http://dev.clojure.org/jira/images/icons/status_open.gif">Open</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="bendlas">Herwig Hochleitner</reporter>
                        <labels>
                    </labels>
                <created>Sun, 19 May 2013 10:09:08 -0500</created>
                <updated>Sun, 19 May 2013 10:11:15 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="31115" author="bendlas" created="Sun, 19 May 2013 10:11:15 -0500"  >&lt;p&gt;Patch 0001 depends on patches 0001 and 0002 from &lt;a href=&quot;http://dev.clojure.org/jira/browse/CLJS-480&quot; title=&quot;*cljs-data-readers* is bound to *data-readers* inconsistently&quot;&gt;CLJS-480&lt;/a&gt; because of changes to the test script.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="11998" name="0001-CLJS-506-Add-a-debug-flag-to-the-compiler-options.patch" size="2171" author="bendlas" created="Sun, 19 May 2013 10:11:15 -0500" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>
</channel>
</rss>