<!--
RSS generated by JIRA (4.4#649-r158309) at Fri May 24 05:41:27 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+CONTRIB+ORDER+BY+updated+DESC%2C+priority+DESC%2C+created+ASC&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+CONTRIB+ORDER+BY+updated+DESC%2C+priority+DESC%2C+created+ASC</link>
        <description>An XML representation of a search request</description>
                <language>en-us</language>
                        <issue start="0" end="115" total="115"/>
                <build-info>
            <version>4.4</version>
            <build-number>649</build-number>
            <build-date>25-07-2011</build-date>
        </build-info>
<item>
            <title>[CONTRIB-112] clojure.java.classpath/system-classpath is incorrect when running in a classloader other than the application classloader</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-112</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Because system-classpath uses java.class.path, it doesn&apos;t work when running in a classloader other than the application classloader.&lt;/p&gt;

&lt;p&gt;This happens when running in any container that uses a custom classloader (e.g. Jetty, Cake, TomCat).&lt;/p&gt;

&lt;p&gt;The fix is to use (.getURLs (.getClassLoader clojure.lang.RT)) instead of (System/getProperty &quot;java.class.path&quot;). A patch is attached.&lt;/p&gt;
</description>
                <environment></environment>
            <key id="14482">CONTRIB-112</key>
            <summary>clojure.java.classpath/system-classpath is incorrect when running in a classloader other than the application classloader</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="3">Duplicate</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="justin.balthrop">Justin Balthrop</reporter>
                        <labels>
                    </labels>
                <created>Thu, 7 Jul 2011 13:43:05 -0500</created>
                <updated>Fri, 27 Jan 2012 09:45:18 -0600</updated>
                    <resolved>Fri, 27 Jan 2012 09:45:18 -0600</resolved>
                                                                    <due></due>
                    <votes>1</votes>
                        <watches>1</watches>
                        <comments>
                    <comment id="26555" author="justin.balthrop" created="Thu, 7 Jul 2011 13:52:34 -0500"  >&lt;p&gt;Here is an updated patch with a fix for the system-classpath docstring as well.&lt;/p&gt;</comment>
                    <comment id="26800" author="justin.balthrop" created="Tue, 13 Sep 2011 16:02:26 -0500"  >&lt;p&gt;Any update on this?&lt;/p&gt;</comment>
                    <comment id="26801" author="justin.balthrop" created="Tue, 13 Sep 2011 19:04:13 -0500"  >&lt;p&gt;There is now a ticket in the CLASSPATH project for this (&lt;a href=&quot;http://dev.clojure.org/jira/browse/CLASSPATH-1&quot;&gt;http://dev.clojure.org/jira/browse/CLASSPATH-1&lt;/a&gt;).&lt;/p&gt;</comment>
                    <comment id="27629" author="stuart.sierra" created="Fri, 27 Jan 2012 09:45:18 -0600"  >&lt;p&gt;&lt;a href=&quot;http://dev.clojure.org/jira/browse/CLASSPATH-1&quot; title=&quot;clojure.java.classpath/system-classpath is incorrect when running in a classloader other than the application classloader&quot;&gt;&lt;del&gt;CLASSPATH-1&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="10274" name="system-classpath2.diff" size="2852" author="justin.balthrop" created="Thu, 7 Jul 2011 13:52:34 -0500" />
                    <attachment id="10273" name="system-classpath.diff" size="2782" author="justin.balthrop" created="Thu, 7 Jul 2011 13:43:05 -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>

<item>
            <title>[CONTRIB-35] clojure.contrib.trace/deftrace does not work with function definitions with doc-strings</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-35</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Apparently, defttrace does not support functions with doc-strings. I tried replacing defn with deftrace in a function of mine (as the docs indicated) and I got the following error -&lt;/p&gt;


&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;java.lang.IllegalArgumentException: Don&apos;t know how to create ISeq from: Symbol
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

Sample code to reproduce the error - 

&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;(deftrace fact
  &lt;span class=&quot;code-quote&quot;&gt;&quot;Calculate the factorial of x&quot;&lt;/span&gt;
  [x]
  (&lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (&amp;lt; x 1)
    1
    (* x (fact (- x 1)))))&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Would be great if this bug is fixed, all my functions have doc-strings &lt;img class=&quot;emoticon&quot; src=&quot;http://dev.clojure.org/jira/images/icons/emoticons/smile.gif&quot; height=&quot;20&quot; width=&quot;20&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</description>
                <environment></environment>
            <key id="14195">CONTRIB-35</key>
            <summary>clojure.contrib.trace/deftrace does not work with function definitions with doc-strings</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="3" iconUrl="http://dev.clojure.org/jira/images/icons/status_inprogress.gif">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Fri, 9 Oct 2009 22:22:00 -0500</created>
                <updated>Fri, 30 Sep 2011 13:36:40 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25632" author="importer" created="Thu, 28 Oct 2010 05:08:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/35&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/35&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-Allow-deftrace-to-work-with-docstrings-and-metadata-.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/bns8Fu4Jqr37_9eJe5cbCb/download/bns8Fu4Jqr37_9eJe5cbCb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/bns8Fu4Jqr37_9eJe5cbCb/download/bns8Fu4Jqr37_9eJe5cbCb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25633" author="importer" created="Thu, 28 Oct 2010 05:08:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25634" author="importer" created="Thu, 28 Oct 2010 05:08:00 -0500"  >&lt;p&gt;trptcolin said: [&lt;a href=&quot;file:bns8Fu4Jqr37_9eJe5cbCb&quot;&gt;file:bns8Fu4Jqr37_9eJe5cbCb&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25635" author="importer" created="Thu, 28 Oct 2010 05:08:00 -0500"  >&lt;p&gt;trptcolin said: This patch adds support and tests for both docstrings and metadata, and also fixes the regex in the existing test to correctly identify errors.  The current regex has unescaped characters: | ( ) that were almost certainly typos, as matching (for instance) only the last line of output would pass the test.  The docstring/metadata support is a simplified version of what&apos;s in the source of defn.&lt;/p&gt;</comment>
                    <comment id="26880" author="lprefontaine" created="Fri, 30 Sep 2011 13:36:40 -0500"  >&lt;p&gt;Issue fixed in tools.trace 1.0 which is compatible for both Clojure 1.2.x and 1.3.&lt;br/&gt;
The macro now verifies if the first argument is a doc string and adapts accordingly.&lt;br/&gt;
This ticket can be closed.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10013">Test</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CONTRIB-117] POM file for math.combinatorics</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-117</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;I noticed that math.combinatorics isn&apos;t being built or released yet. Here is the pom file needed to get it into CI builds.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14617">CONTRIB-117</key>
            <summary>POM file for math.combinatorics</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="mtnygard">Michael Nygard</reporter>
                        <labels>
                    </labels>
                <created>Fri, 9 Sep 2011 11:39:20 -0500</created>
                <updated>Fri, 9 Sep 2011 11:39:20 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                    <attachment id="10335" name="pom.xml" size="901" author="mtnygard" created="Fri, 9 Sep 2011 11:39:20 -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>

<item>
            <title>[CONTRIB-114] java.jmx build failure due to missing JAR</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-114</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Appears to be a problem with parent POM:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; ------------------------------------------------------------------------&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; BUILD FAILURE&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; ------------------------------------------------------------------------&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; Total time: 3.663s&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; Finished at: Fri Aug 19 14:58:52 EDT 2011&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; Final Memory: 6M/81M&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; ------------------------------------------------------------------------&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.7.2:test (default-test) on project java.jmx: Error to resolving surefire provider dependency: Missing:&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; ----------&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; 1) org.apache.maven.surefire:surefire-junit3:jar:2.7.2&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; Try downloading the file manually from the project website.&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; Then, install it using the command:&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; mvn install:install-file -DgroupId=org.apache.maven.surefire -DartifactId=surefire-junit3 -Dversion=2.7.2 -Dpackaging=jar -Dfile=/path/to/file&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; Alternatively, if you host your own repository you can deploy the file there:&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; mvn deploy:deploy-file -DgroupId=org.apache.maven.surefire -DartifactId=surefire-junit3 -Dversion=2.7.2 -Dpackaging=jar -Dfile=/path/to/file -Durl=&lt;span class=&quot;error&quot;&gt;&amp;#91;url&amp;#93;&lt;/span&gt; -DrepositoryId=&lt;span class=&quot;error&quot;&gt;&amp;#91;id&amp;#93;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; Path to dependency:&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; 1) dummy:dummy:jar:1.0&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; 2) org.apache.maven.surefire:surefire-junit3:jar:2.7.2&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; ----------&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; 1 required artifact is missing.&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; for artifact:&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; dummy:dummy:jar:1.0&lt;/p&gt;</description>
                <environment>Mac OS X Lion, Maven 3.0.3, JDK 1.6.0_26</environment>
            <key id="14577">CONTRIB-114</key>
            <summary>java.jmx build failure due to missing JAR</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="2" iconUrl="http://dev.clojure.org/jira/images/icons/priority_critical.gif">Critical</priority>
                    <status id="5" iconUrl="http://dev.clojure.org/jira/images/icons/status_resolved.gif">Resolved</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="mtnygard">Michael Nygard</reporter>
                        <labels>
                    </labels>
                <created>Fri, 19 Aug 2011 14:04:20 -0500</created>
                <updated>Fri, 19 Aug 2011 16:54:17 -0500</updated>
                    <resolved>Fri, 19 Aug 2011 16:54:16 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="26727" author="mtnygard" created="Fri, 19 Aug 2011 14:14:39 -0500"  >&lt;p&gt;Please disregard. Stale &amp;lt;repositories&amp;gt; in my own ~/.m2/settings.xml appear to have been the cause.&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>[CONTRIB-113] There needs to be a way to collect regular arguments in tools.cli</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-113</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;In clojure.contrib.command-line, you could specify a &apos;catch-all&apos; argument at the end of your spec and all arguments after the ones that were parsed would be collected in. In tools.cli, nothing like this seems to exist.&lt;/p&gt;

&lt;p&gt;For example, with tools.cli, there is no way to handle stuff like this: &quot;myapp --foo bar --baz foo a b c&quot;. The last three arguments, a, b, and c will all be discarded with no way to retrieve them.&lt;/p&gt;

&lt;p&gt;Finally, if this wasn&apos;t the right place to put this issue, I apologize. tools.cli doesn&apos;t seem to be listed as a project and you guys don&apos;t accept issues on Github, so I wasn&apos;t sure what else to do.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14492">CONTRIB-113</key>
            <summary>There needs to be a way to collect regular arguments in tools.cli</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="anthonysimpson">Anthony Simpson</reporter>
                        <labels>
                    </labels>
                <created>Mon, 18 Jul 2011 18:07:59 -0500</created>
                <updated>Mon, 18 Jul 2011 18:07:59 -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>[CONTRIB-1] Move Clojure Contrib issues from GC to Assembla</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-1</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Sorry, Rich, taking over #1 here. &lt;img class=&quot;emoticon&quot; src=&quot;http://dev.clojure.org/jira/images/icons/emoticons/smile.gif&quot; height=&quot;20&quot; width=&quot;20&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;All issues (even closed ones!) from Contrib&apos;s Google Code issue tracker need to be moved over to assembla.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/clojure-contrib/issues/list?can=1&quot;&gt;Full list of issues at GC&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Take a look at the &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets&quot;&gt;Clojure space tickets&lt;/a&gt; for an example of how it was done there&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; The tickets should be moved in order; also, please leave them unassigned to anyone or to any milestone&lt;/p&gt;

&lt;p&gt;Hint: You can add the tickets all as  &quot;new&quot; at first and then use the batch update feature to change their attributes&lt;br/&gt;
to match Google Code.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14161">CONTRIB-1</key>
            <summary>Move Clojure Contrib issues from GC to Assembla</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 10 Jun 2009 11:34:00 -0500</created>
                <updated>Fri, 17 Jun 2011 20:42:18 -0500</updated>
                    <resolved>Fri, 17 Jun 2011 20:42:17 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25492" author="importer" created="Tue, 24 Aug 2010 03:41:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/1&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/1&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25493" author="importer" created="Tue, 24 Aug 2010 03:41:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="26513" author="cemerick" created="Fri, 17 Jun 2011 20:42:17 -0500"  >&lt;p&gt;We&apos;re on JIRA now, so this is surely irrelevant at this point.&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>[CONTRIB-111] Build failure against edge clojure</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-111</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Build failure&lt;/p&gt;

&lt;p&gt;ashee:clojure-contrib amitava$ mvn assembly:assembly -Dclojure.jar=/Users/amitava/opt/clojure/clojure.jar &lt;/p&gt;

&lt;p&gt;....Lots of output elided....&lt;/p&gt;

&lt;p&gt;Testing clojure.contrib.test-logging&lt;br/&gt;
Exception in thread &quot;main&quot; java.lang.IllegalStateException: Can&apos;t dynamically bind non-dynamic var: clojure.contrib.logging/&lt;b&gt;log-factory&lt;/b&gt;&lt;br/&gt;
	at clojure.lang.Var.pushThreadBindings(Var.java:339)&lt;br/&gt;
	at clojure.core$push_thread_bindings.invoke(core.clj:1716)&lt;br/&gt;
	at clojure.contrib.test_logging$eval248$fn__249.invoke(test_logging.clj:19)&lt;br/&gt;
	at clojure.test$compose_fixtures$fn_&lt;em&gt;6529$fn&lt;/em&gt;_6530.invoke(test.clj:670)&lt;br/&gt;
	at clojure.test$default_fixture.invoke(test.clj:663)&lt;br/&gt;
	at clojure.test$compose_fixtures$fn__6529.invoke(test.clj:670)&lt;br/&gt;
	at clojure.test$test_all_vars.invoke(test.clj:705)&lt;br/&gt;
	at clojure.test$test_ns.invoke(test.clj:728)&lt;br/&gt;
	at clojure.core$map$fn__3840.invoke(core.clj:2433)&lt;br/&gt;
	at clojure.lang.LazySeq.sval(LazySeq.java:42)&lt;br/&gt;
	at clojure.lang.LazySeq.seq(LazySeq.java:60)&lt;br/&gt;
	at clojure.lang.Cons.next(Cons.java:39)&lt;br/&gt;
	at clojure.lang.RT.boundedLength(RT.java:1607)&lt;br/&gt;
	at clojure.lang.RestFn.applyTo(RestFn.java:130)&lt;br/&gt;
	at clojure.core$apply.invoke(core.clj:602)&lt;br/&gt;
	at clojure.test$run_tests.doInvoke(test.clj:743)&lt;br/&gt;
	at clojure.lang.RestFn.invoke(RestFn.java:408)&lt;br/&gt;
	at user$eval488$fn__491.invoke(run-test8724407867004279179.clj:9)&lt;br/&gt;
	at user$eval488.invoke(run-test8724407867004279179.clj:7)&lt;br/&gt;
	at clojure.lang.Compiler.eval(Compiler.java:6406)&lt;br/&gt;
	at clojure.lang.Compiler.load(Compiler.java:6843)&lt;br/&gt;
	at clojure.lang.Compiler.loadFile(Compiler.java:6804)&lt;br/&gt;
	at clojure.main$load_script.invoke(main.clj:282)&lt;br/&gt;
	at clojure.main$script_opt.invoke(main.clj:342)&lt;br/&gt;
	at clojure.main$main.doInvoke(main.clj:426)&lt;br/&gt;
	at clojure.lang.RestFn.invoke(RestFn.java:408)&lt;br/&gt;
	at clojure.lang.Var.invoke(Var.java:401)&lt;br/&gt;
	at clojure.lang.AFn.applyToHelper(AFn.java:161)&lt;br/&gt;
	at clojure.lang.Var.applyTo(Var.java:518)&lt;br/&gt;
	at clojure.main.main(main.java:37)&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; ------------------------------------------------------------------------&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; Reactor Summary:&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; Clojure Contrib parent module ..................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; def ............................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; types ............................................. SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; generic ........................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; accumulators ...................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; agent-utils ....................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; base64 ............................................ SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; jar ............................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; classpath ......................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; combinatorics ..................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; command-line ...................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; complex-numbers ................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; cond .............................................. SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; seq ............................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; condition ......................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; core .............................................. SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; graph ............................................. SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; except ............................................ SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; dataflow .......................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; datalog ........................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; error-kit ......................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; fcase ............................................. SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; find-namespaces ................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; fnmap ............................................. SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; prxml ............................................. SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; gen-html-docs ..................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; greatest-least .................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; import-static ..................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; java-utils ........................................ SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; jmx ............................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; json .............................................. SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; lazy-seqs ......................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; lazy-xml .......................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; logging ........................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; macro-utils ....................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; macros ............................................ SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; map-utils ......................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; math .............................................. SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; miglayout ......................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; mmap .............................................. SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; ns-utils .......................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; mock .............................................. SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; monads ............................................ SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; monadic-io-streams ................................ SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; priority-map ...................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; stream-utils ...................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; probabilities ..................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; profile ........................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; reflect ........................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; repl-ln ........................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; repl-utils ........................................ SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; server-socket ..................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; set ............................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; singleton ......................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; sql ............................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; with-ns ........................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; strint ............................................ SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; swing-utils ....................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; trace ............................................. SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; zip-filter ........................................ SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; complete .......................................... SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; standalone ........................................ SKIPPED&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; Clojure Contrib ................................... FAILURE &lt;span class=&quot;error&quot;&gt;&amp;#91;2:34.296s&amp;#93;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; ------------------------------------------------------------------------&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; BUILD FAILURE&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; ------------------------------------------------------------------------&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; Total time: 2:35.348s&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; Finished at: Wed Jun 01 21:48:18 EDT 2011&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; Final Memory: 10M/81M&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;INFO&amp;#93;&lt;/span&gt; ------------------------------------------------------------------------&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; Failed to execute goal com.theoryinpractise:clojure-maven-plugin:1.3.3:test (test-clojure) on project logging: Clojure failed. -&amp;gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;Help 1&amp;#93;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; To see the full stack trace of the errors, re-run Maven with the -e switch.&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; Re-run Maven using the -X switch to enable full debug logging.&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; For more information about the errors and possible solutions, please read the following articles:&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;Help 1&amp;#93;&lt;/span&gt; &lt;a href=&quot;http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException&quot;&gt;http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException&lt;/a&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt; After correcting the problems, you can resume the build with the command&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;ERROR&amp;#93;&lt;/span&gt;   mvn &amp;lt;goals&amp;gt; -rf :logging&lt;/p&gt;</description>
                <environment>clojure tip - commit 66a88de9408e93cf2b0d73382e662624a54c6c86&lt;br/&gt;
clojure-contrib tip - commit 4b562d9d110f169ea37c320edf96ad78c2fb2618</environment>
            <key id="14452">CONTRIB-111</key>
            <summary>Build failure against edge clojure</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="amitava">Amitava Shee</reporter>
                        <labels>
                    </labels>
                <created>Wed, 1 Jun 2011 21:05:59 -0500</created>
                <updated>Wed, 1 Jun 2011 21:05:59 -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>[CONTRIB-110] clojure.contrib.json does not parse JSON strings containing back slashes on Windows</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-110</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;This bug does not seem to occur on my Linux box, but when run under Windows I get the following:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;user&amp;gt; (read-json &lt;span class=&quot;code-quote&quot;&gt;&quot;\&quot;&lt;/span&gt;C:\\Users\&quot;&quot;)

&lt;span class=&quot;code-quote&quot;&gt;&quot;C:nullsers&quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;On Linux I get what I would expect: &lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;user&amp;gt; (read-json &lt;span class=&quot;code-quote&quot;&gt;&quot;\&quot;&lt;/span&gt;C:\\Users\&quot;&quot;)

&lt;span class=&quot;code-quote&quot;&gt;&quot;C:\Users&quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment>Clojure 1.2.1 and Clojure contrib 1.2.0 on Windows 7 with Sun JVM 1.6.0_22-b04</environment>
            <key id="14444">CONTRIB-110</key>
            <summary>clojure.contrib.json does not parse JSON strings containing back slashes on Windows</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="rickmoynihan">Rick Moynihan</reporter>
                        <labels>
                    </labels>
                <created>Fri, 27 May 2011 08:19:35 -0500</created>
                <updated>Fri, 27 May 2011 08:19:35 -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>[CONTRIB-109] Incorrect line separator handling in spy macro</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-109</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;The spy macro removes a trailing newline added by pprint, but windows systems have two-character line separators.&lt;/p&gt;

&lt;p&gt;Also applies to clojure.tools.logging.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14436">CONTRIB-109</key>
            <summary>Incorrect line separator handling in spy macro</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="5" iconUrl="http://dev.clojure.org/jira/images/icons/priority_trivial.gif">Trivial</priority>
                    <status id="5" iconUrl="http://dev.clojure.org/jira/images/icons/status_resolved.gif">Resolved</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="ataggart">Alexander Taggart</assignee>
                                <reporter username="ataggart">Alexander Taggart</reporter>
                        <labels>
                    </labels>
                <created>Wed, 18 May 2011 11:32:44 -0500</created>
                <updated>Wed, 18 May 2011 11:45:01 -0500</updated>
                    <resolved>Wed, 18 May 2011 11:42:51 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="26445" author="ataggart" created="Wed, 18 May 2011 11:42:51 -0500"  >&lt;p&gt;Now uses clojure.string.trim-newline.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/clojure/clojure-contrib/commit/c4810ab19657bd82ad94efe5551db1d338aad23c&quot;&gt;https://github.com/clojure/clojure-contrib/commit/c4810ab19657bd82ad94efe5551db1d338aad23c&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://github.com/clojure/tools.logging/commit/623c6df079835f15ae8b1e885eda397c2e32a5e6&quot;&gt;https://github.com/clojure/tools.logging/commit/623c6df079835f15ae8b1e885eda397c2e32a5e6&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>[CONTRIB-108] c.c.pprint pprint-logical-block macro using private var</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-108</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;pprint-logical-block macro can&apos;t be used from the outside:&lt;br/&gt;
java.lang.IllegalStateException: var: clojure.contrib.pprint/&lt;b&gt;current-level&lt;/b&gt; is not public&lt;/p&gt;</description>
                <environment></environment>
            <key id="14415">CONTRIB-108</key>
            <summary>c.c.pprint pprint-logical-block macro using private var</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="nevenavv">Nevena Vidojevic</reporter>
                        <labels>
                    </labels>
                <created>Thu, 5 May 2011 17:30:07 -0500</created>
                <updated>Thu, 5 May 2011 17:30:07 -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>[CONTRIB-55] clojure.contrib.sql expects *err* to be a PrintWriter</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-55</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;The problem is that c.c.sql.internal calls `.println` on a &quot;stream&quot; to print update counts and errors. That method only exists on a `PrintWriter`. This isn&apos;t true within Slime, where it&apos;s a `StringWriter`.&lt;/p&gt;

&lt;p&gt;The attached patch binds `&lt;b&gt;out&lt;/b&gt;` and uses `println` instead, which does the right thing. I&apos;ve augmented the docstrings to request a `Writer` as the value of `stream`, which aligns with the docstring for `print`.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14215">CONTRIB-55</key>
            <summary>clojure.contrib.sql expects *err* to be a PrintWriter</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="3" iconUrl="http://dev.clojure.org/jira/images/icons/status_inprogress.gif">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="scgilardi">Stephen C. Gilardi</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 31 Dec 2009 18:21:00 -0600</created>
                <updated>Sun, 24 Apr 2011 22:49:44 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25729" author="importer" created="Tue, 24 Aug 2010 08:43:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/55&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/55&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
sql-internal.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/btl6lW9Mmr3OPceJe5aVNr/download/btl6lW9Mmr3OPceJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/btl6lW9Mmr3OPceJe5aVNr/download/btl6lW9Mmr3OPceJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25730" author="importer" created="Tue, 24 Aug 2010 08:43:00 -0500"  >&lt;p&gt;rnewman said: [&lt;a href=&quot;file:btl6lW9Mmr3OPceJe5aVNr&quot;&gt;file:btl6lW9Mmr3OPceJe5aVNr&lt;/a&gt;]: Diff against current head.&lt;/p&gt;</comment>
                    <comment id="25731" author="importer" created="Tue, 24 Aug 2010 08:43:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25732" author="importer" created="Tue, 24 Aug 2010 08:43:00 -0500"  >&lt;p&gt;scgilardi said: Following the discussion in the developer group and as suggested by Stuart Halloway, I&apos;m planning to make these changes:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; adopt the substance of Richard Newman&apos;s patch, changes to sql.internal&apos;s print-sql-exception, print-sql-exception-chain, print-update-counts functions&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt; remove the automatic printing to &lt;b&gt;err&lt;/b&gt; on exceptions. It will be up to the caller to handle the exceptions as he desires: eating, logging, or printing, etc.&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;3&amp;#93;&lt;/span&gt; move the print* functions to c.c.sql proper as they will now be &quot;public&quot;.&lt;/p&gt;</comment>
                    <comment id="26391" author="seancorfield" created="Sun, 24 Apr 2011 22:49:44 -0500"  >&lt;p&gt;This will be addressed in clojure.java.jdbc and needs to be migrated to the new JIRA project for it once that is created (I don&apos;t have permission to do anything beyond comment / clone this issue).&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>[CONTRIB-105] c.c.logging tests rely on hardcoded line-terminator</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-105</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;See &lt;a href=&quot;https://github.com/clojure/clojure-contrib/commit/330807c6d93f9a3c2bad4c8f4dd6295b6cf2053e#commitcomment-286017&quot;&gt;https://github.com/clojure/clojure-contrib/commit/330807c6d93f9a3c2bad4c8f4dd6295b6cf2053e#commitcomment-286017&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
            <key id="14361">CONTRIB-105</key>
            <summary>c.c.logging tests rely on hardcoded line-terminator</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="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="ataggart">Alexander Taggart</reporter>
                        <labels>
                    </labels>
                <created>Mon, 28 Feb 2011 13:09:51 -0600</created>
                <updated>Wed, 20 Apr 2011 03:29:32 -0500</updated>
                    <resolved>Wed, 20 Apr 2011 03:29:31 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="26248" author="ataggart" created="Mon, 28 Feb 2011 13:30:39 -0600"  >&lt;p&gt;Fix committed:&lt;br/&gt;
&lt;a href=&quot;https://github.com/clojure/clojure-contrib/commit/1a88c88daa87cd61aa7c1c08d538487b55efd97d&quot;&gt;https://github.com/clojure/clojure-contrib/commit/1a88c88daa87cd61aa7c1c08d538487b55efd97d&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>[CONTRIB-107] Build Broken since April 8th</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-107</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Since the April 8th commit to no longer recognize &quot;earmuff&quot; variables as dynamic by default, clojure-contrib/logging and clojure-contrib/trace are broken.&lt;/p&gt;</description>
                <environment>All</environment>
            <key id="14400">CONTRIB-107</key>
            <summary>Build Broken since April 8th</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                <priority id="1" iconUrl="http://dev.clojure.org/jira/images/icons/priority_blocker.gif">Blocker</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="pmbauer">Paul Michael Bauer</reporter>
                        <labels>
                    </labels>
                <created>Fri, 15 Apr 2011 23:00:30 -0500</created>
                <updated>Sun, 17 Apr 2011 08:38:00 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="26374" author="pmbauer" created="Fri, 15 Apr 2011 23:01:14 -0500"  >&lt;p&gt;There is a pending pull request to fix logging and trace.&lt;/p&gt;</comment>
                    <comment id="26375" author="pmbauer" created="Sun, 17 Apr 2011 08:38:00 -0500"  >&lt;p&gt;I posted this after observing the broken build and not realising clojure-contrib was recently deprecated.&lt;br/&gt;
Apologies.  I would close this, but my perms don&apos;t allow it?&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="10190" name="0001-Changes-to-clojure-1.3-alpha-break-the-build-logging.patch" size="1451" author="pmbauer" created="Fri, 15 Apr 2011 23:14:38 -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="10009">Fixed</customfieldvalue>

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

<item>
            <title>[CONTRIB-106] variable name colision in java-utils/set-system-properties</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-106</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>
&lt;p&gt;(defn set-system-properties&lt;br/&gt;
  &quot;Set some system properties. Nil clears a property.&quot;&lt;br/&gt;
  &lt;span class=&quot;error&quot;&gt;&amp;#91;settings&amp;#93;&lt;/span&gt;&lt;br/&gt;
  (doseq [&lt;span class=&quot;error&quot;&gt;&amp;#91;name val&amp;#93;&lt;/span&gt; settings]&lt;br/&gt;
    (if val&lt;br/&gt;
      (System/setProperty (name name) (name val))&lt;br/&gt;
      (System/clearProperty (name name)))))&lt;/p&gt;

&lt;p&gt;Somebody did a find/replace as-str -&amp;gt; name and created fn/variable colision with &quot;name&quot;&lt;/p&gt;</description>
                <environment>1.3.0-SNAPSHOT</environment>
            <key id="14367">CONTRIB-106</key>
            <summary>variable name colision in java-utils/set-system-properties</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="lolownia">Marcin Kozey</reporter>
                        <labels>
                    </labels>
                <created>Wed, 9 Mar 2011 09:45:50 -0600</created>
                <updated>Wed, 9 Mar 2011 09:45:50 -0600</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>[CONTRIB-104] prxml attribute value to support internal entity reference</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-104</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Now there is no way to support internal entities in xml, as value of attribute is always beings xml-escaped and &apos;&amp;amp;&apos; (used as part of entity reference) is being replaced with &apos;&amp;amp;&apos;.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14350">CONTRIB-104</key>
            <summary>prxml attribute value to support internal entity reference</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="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="nevenavv">Nevena Vidojevic</reporter>
                        <labels>
                    </labels>
                <created>Sat, 12 Feb 2011 19:02:12 -0600</created>
                <updated>Fri, 18 Feb 2011 17:15:34 -0600</updated>
                    <resolved>Fri, 18 Feb 2011 09:32:43 -0600</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="26219" author="stuart.sierra" created="Fri, 18 Feb 2011 09:32:44 -0600"  >&lt;p&gt;The special tag &lt;tt&gt;:raw!&lt;/tt&gt; is available for unescaped output.&lt;/p&gt;</comment>
                    <comment id="26220" author="nevenavv" created="Fri, 18 Feb 2011 12:40:51 -0600"  >&lt;p&gt;Special tags are not considered for attribute value (prxml-attribute fn), just for xml tags (print-xml-tag multimethod), and when used string &quot;&lt;span class=&quot;error&quot;&gt;&amp;#91;:raw! ...&amp;#93;&lt;/span&gt;&quot; is printed as attribute value.&lt;/p&gt;</comment>
                    <comment id="26221" author="stuart.sierra" created="Fri, 18 Feb 2011 13:05:27 -0600"  >&lt;p&gt;Yes. You must put the actual XML tag inside a &lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;:raw! ...&amp;#93;&lt;/span&gt;&lt;/tt&gt; block if you want to use XML entities in attributes.&lt;/p&gt;</comment>
                    <comment id="26222" author="nevenavv" created="Fri, 18 Feb 2011 16:55:29 -0600"  >&lt;p&gt;I&apos;ll be more specific...&lt;br/&gt;
I made entity declaration in DOCTYPE like this:&lt;/p&gt;

&lt;p&gt;&amp;lt;!DOCTYPE rdf:RDF [&lt;br/&gt;
  &amp;lt;!ENTITY owl &quot;http://www.w3.org/2002/07/owl#&quot;&amp;gt;&lt;br/&gt;
]&amp;gt;&lt;/p&gt;

&lt;p&gt;so I would be able to use reference to content of this named entity, using &quot;&amp;owl;&quot; (XML syntax), for example:&lt;/p&gt;

&lt;p&gt;&amp;lt;owl:onDatatype rdf:resource=&quot;&amp;xsd;string&quot;&amp;gt;&lt;/p&gt;

&lt;p&gt;I don&apos;t see a way to achieve this. My first thought was to use:&lt;/p&gt;

&lt;p&gt;[:owl:onDatatype {:rdf:resource &lt;span class=&quot;error&quot;&gt;&amp;#91;:raw! &amp;quot;&amp;xsd;string&amp;quot;&amp;#93;&lt;/span&gt;}]&lt;/p&gt;

&lt;p&gt;Am I missing something?&lt;/p&gt;




</comment>
                    <comment id="26223" author="nevenavv" created="Fri, 18 Feb 2011 17:15:34 -0600"  >&lt;p&gt;Ah, ok, I can use:&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;:raw! &amp;quot;&amp;lt;owl:onDatatype rdf:resource=\&amp;quot;&amp;xsd;string\&amp;quot;&amp;gt;&amp;quot;&amp;#93;&lt;/span&gt;&lt;br/&gt;
That seems a bit like a workaround.. I think more idiomatic way isn&apos;t so hard to achieve, but no need obviously..  &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>[CONTRIB-99] Bug in clojure.contrib.json/read-json</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-99</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;&lt;b&gt;Pulled this from clojure assembla ticket #436 to clojure-contrib&lt;/b&gt;&lt;br/&gt;
See &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/436-bug-in-clojure-contrib-json-read-json&quot;&gt;clojure-436&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;What (small set of) steps will reproduce the problem?&lt;/b&gt;&lt;br/&gt;
$ java -cp lib/clojure-1.2.0.jar:lib/clojure-contrib-1.2.0.jar clojure.main&lt;br/&gt;
Clojure 1.2.0&lt;br/&gt;
user=&amp;gt; (require &apos;clojure.contrib.json)&lt;br/&gt;
nil&lt;br/&gt;
user=&amp;gt; (clojure.contrib.json/read-json &quot;&quot;)&lt;br/&gt;
java.lang.IllegalArgumentException: Value out of range for char: -1 (NO_SOURCE_FILE:0)&lt;br/&gt;
user=&amp;gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;What is the expected output? What do you see instead?&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Expected:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(&lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; eof-error?
  (&lt;span class=&quot;code-keyword&quot;&gt;throw&lt;/span&gt; (EOFException. &lt;span class=&quot;code-quote&quot;&gt;&quot;JSON error (end-of-file)&quot;&lt;/span&gt;))
  eof-value)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;b&gt;What version are you using?&lt;/b&gt;&lt;br/&gt;
1.2&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Was this discussed on the group? If so, please provide a link to the discussion&lt;/b&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;13:51&amp;#93;&lt;/span&gt; &amp;lt;&lt;em&gt;na_ka_na&lt;/em&gt;&amp;gt; Hey guys I think there&apos;s a bug in clojure.contrib.json at line 116&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;13:51&amp;#93;&lt;/span&gt; &amp;lt;&lt;em&gt;na_ka_na&lt;/em&gt;&amp;gt; in clojure 1.2&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;13:52&amp;#93;&lt;/span&gt; &amp;lt;&lt;em&gt;na_ka_na&lt;/em&gt;&amp;gt; it has a (char i) and then checks for (= i -1)  ... but (char -1) fails&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;13:52&amp;#93;&lt;/span&gt; &amp;lt;&lt;em&gt;na_ka_na&lt;/em&gt;&amp;gt; where can I report it ?&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;13:53&amp;#93;&lt;/span&gt; &amp;lt;LauJensen&amp;gt; &lt;em&gt;na_ka_na&lt;/em&gt;: assembla/support&lt;/p&gt;</description>
                <environment></environment>
            <key id="14259">CONTRIB-99</key>
            <summary>Bug in clojure.contrib.json/read-json</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="3" iconUrl="http://dev.clojure.org/jira/images/icons/status_inprogress.gif">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="anthonysimpson">Anthony Simpson</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Fri, 1 Oct 2010 16:30:00 -0500</created>
                <updated>Wed, 26 Jan 2011 06:26:09 -0600</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25879" author="importer" created="Tue, 19 Oct 2010 00:20:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/99&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/99&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="26095" author="anthonysimpson" created="Thu, 6 Jan 2011 19:05:05 -0600"  >&lt;p&gt;This appears to no longer be applicable. &lt;/p&gt;


&lt;p&gt;Clojure 1.3.0-master-SNAPSHOT&lt;br/&gt;
user=&amp;gt; (require &apos;clojure.contrib.json)&lt;br/&gt;
nil&lt;br/&gt;
user=&amp;gt; (clojure.contrib.json/read-json &quot;&quot;)&lt;br/&gt;
EOFException JSON error (end-of-file)  clojure.contrib.json/read-json-reader (json.clj:115)&lt;/p&gt;</comment>
                    <comment id="26172" author="raek" created="Wed, 26 Jan 2011 06:26:09 -0600"  >&lt;p&gt;Could this be a duplicate of &lt;a href=&quot;http://dev.clojure.org/jira/browse/CONTRIB-91&quot;&gt;http://dev.clojure.org/jira/browse/CONTRIB-91&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>[CONTRIB-34] Add zip and unzip functions to java-utils</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-34</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Talked with Stuart Sierra on IRC; he agreed these would be helpful functions to have since the JDK bizarrely omits them.&lt;/p&gt;

&lt;p&gt;I have a test for this, but it depends on #33, so I&apos;ll wait to submit it until that patch is applied.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14194">CONTRIB-34</key>
            <summary>Add zip and unzip functions to java-utils</summary>
                <type id="4" iconUrl="http://dev.clojure.org/jira/images/icons/improvement.gif">Enhancement</type>
                                <priority id="4" iconUrl="http://dev.clojure.org/jira/images/icons/priority_minor.gif">Minor</priority>
                    <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="stuart.sierra">Stuart Sierra</reporter>
                        <labels>
                    </labels>
                <created>Thu, 8 Oct 2009 21:41:00 -0500</created>
                <updated>Tue, 25 Jan 2011 14:53:07 -0600</updated>
                    <resolved>Tue, 25 Jan 2011 14:53:07 -0600</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25629" author="importer" created="Tue, 24 Aug 2010 04:46:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/34&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/34&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-Add-zip-and-unzip-functions-to-java-utils.clj.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/d2a-EiTi0r3Oz7eJe5afGb/download/d2a-EiTi0r3Oz7eJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/d2a-EiTi0r3Oz7eJe5afGb/download/d2a-EiTi0r3Oz7eJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25630" author="importer" created="Tue, 24 Aug 2010 04:46:00 -0500"  >&lt;p&gt;technomancy said: [&lt;a href=&quot;file:d2a-EiTi0r3Oz7eJe5afGb&quot;&gt;file:d2a-EiTi0r3Oz7eJe5afGb&lt;/a&gt;]: zip and unzip implementation&lt;/p&gt;</comment>
                    <comment id="25631" author="importer" created="Tue, 24 Aug 2010 04:46:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="26170" author="stuart.sierra" created="Tue, 25 Jan 2011 14:52:17 -0600"  >&lt;p&gt;java-utils in &quot;old&quot; clojure-contrib is basically deprecated. This may be revived later.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10013">Test</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CONTRIB-102] clojure.contrib.core/-?&gt;  (and perhaps others?) have a quoting bug</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-102</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;See: &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://groups.google.com/group/clojure/browse_frm/thread/cc88ca26352bc604?hl=en#&quot;&gt;https://groups.google.com/group/clojure/browse_frm/thread/cc88ca26352bc604?hl=en#&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When called via a namespace-qualified symbol and given three or more arguments, -?&amp;gt; gives the error:&lt;/p&gt;

&lt;p&gt;user=&amp;gt; (clojure.contrib.core/-?&amp;gt; 1 inc inc)&lt;br/&gt;
CompilerException java.lang.Exception: Unable to resolve symbol: -?&amp;gt;&lt;br/&gt;
in this context, compiling:(NO_SOURCE_PATH:3)  &lt;/p&gt;</description>
                <environment>1.2 and 1.3</environment>
            <key id="14296">CONTRIB-102</key>
            <summary>clojure.contrib.core/-?&gt;  (and perhaps others?) have a quoting bug</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="laurentpetit">Laurent Petit</assignee>
                                <reporter username="jawolfe">Jason Wolfe</reporter>
                        <labels>
                    </labels>
                <created>Tue, 7 Dec 2010 14:04:25 -0600</created>
                <updated>Sun, 9 Jan 2011 04:23:48 -0600</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                        <comments>
                    <comment id="26009" author="amalloy" created="Tue, 7 Dec 2010 23:27:10 -0600"  >&lt;p&gt;Root cause is in clojure.contrib.core/defnilsafe, so similar functions like .?. will have the same problem. I futzed around for a while to try and figure it out, but defnilsafe is a little too meta for me. The problem is, predictably enough once you&apos;ve glanced at the code, with ~&apos;~nil-safe-name.&lt;/p&gt;

&lt;p&gt;The general solution ought to look like&lt;br/&gt;
(let &lt;span class=&quot;error&quot;&gt;&amp;#91;qname (symbol (name (ns-name *ns*)) (str nil-safe-name))&amp;#93;&lt;/span&gt;&lt;br/&gt;
  `(existing body...&lt;br/&gt;
     (more stuff using ~qname instead of ~&apos;~nil-safe-name...)))&lt;/p&gt;

&lt;p&gt;But I couldn&apos;t make it quite work.&lt;/p&gt;</comment>
                    <comment id="26011" author="laurentpetit" created="Wed, 8 Dec 2010 02:14:30 -0600"  >&lt;p&gt;Patch added.&lt;/p&gt;

&lt;p&gt;Simple patch where I specifically use fully qualified names when calling defnilsafe.&lt;/p&gt;</comment>
                    <comment id="26111" author="amalloy" created="Sun, 9 Jan 2011 04:23:47 -0600"  >&lt;p&gt;What about this patch instead? It makes sure to resolve the symbols supplied to defnilsafe while still within the c.c.core namespace.&lt;/p&gt;

&lt;p&gt;I also made the arglists a bit less ugly.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="10047" name="fix-CONTRIB-102.diff" size="1622" author="laurentpetit" created="Wed, 8 Dec 2010 02:11:53 -0600" />
                    <attachment id="10075" name="patch.diff" size="1095" author="amalloy" created="Sun, 9 Jan 2011 04:23:47 -0600" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10013">Test</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <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>

<item>
            <title>[CONTRIB-83] clojure.contrib.shell broken with clojure commit 37d8f7a</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-83</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;clojure.core/byte was modified a couple weeks ago as follows:&lt;/p&gt;

&lt;p&gt; (defn byte&lt;br/&gt;
  &quot;Coerce to byte&quot;&lt;br/&gt;
  {:tag Byte&lt;br/&gt;
   :inline (fn  &lt;span class=&quot;error&quot;&gt;&amp;#91;x&amp;#93;&lt;/span&gt; `(. clojure.lang.RT (byteCast ~x)))}&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;^Number x&amp;#93;&lt;/span&gt; (. x (byteValue)))&lt;br/&gt;
+  &lt;span class=&quot;error&quot;&gt;&amp;#91;^Number x&amp;#93;&lt;/span&gt; (clojure.lang.RT/byteCast x))&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;byteValue and byteCast behave differently with values outside the&lt;br/&gt;
range of byte values:&lt;br/&gt;
user=&amp;gt; (. 255 (byteValue))&lt;br/&gt;
-1&lt;br/&gt;
user=&amp;gt; (clojure.lang.RT/byteCast 255)&lt;br/&gt;
java.lang.IllegalArgumentException: Value out of range for byte: 255&lt;br/&gt;
(NO_SOURCE_FILE:0)&lt;/p&gt;

&lt;p&gt;The new version breaks clojure.contrib.shell/sh&apos;s :out :bytes mode (mapping byte over values returned by InputStream.read in shell.clj, line 125).&lt;br/&gt;
Perhaps have sh use #(.byteValue %) instead of byte? (untested)&lt;/p&gt;</description>
                <environment></environment>
            <key id="14243">CONTRIB-83</key>
            <summary>clojure.contrib.shell broken with clojure commit 37d8f7a</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="importer">Assembla Importer</reporter>
                        <labels>
                    </labels>
                <created>Wed, 12 May 2010 09:36:00 -0500</created>
                <updated>Sat, 8 Jan 2011 13:58:47 -0600</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25818" author="importer" created="Tue, 24 Aug 2010 11:01:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/83&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/83&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="26109" author="arohner" created="Sat, 8 Jan 2011 13:58:47 -0600"  >&lt;p&gt;I&apos;ve tested that using #(.byteValue %) rather than byte? fixes the problem.&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>[CONTRIB-103] type hinting for clojure.contrib.condition</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-103</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;I ran into the situation where reflection in clojure.contrib.condition was taking up much more time than I would have liked it too.  I added the needed type hints to avoid reflection and the changes have solved the problem for me.&lt;/p&gt;

&lt;p&gt;I&apos;ve attached the patch.  It is also available on github if you prefer:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/bmabey/clojure-contrib/commit/acf0017e4b8c4259a03fba03a90050b0e9cb0890&quot;&gt;https://github.com/bmabey/clojure-contrib/commit/acf0017e4b8c4259a03fba03a90050b0e9cb0890&lt;/a&gt;&lt;/p&gt;
</description>
                <environment></environment>
            <key id="14287">CONTRIB-103</key>
            <summary>type hinting for clojure.contrib.condition</summary>
                <type id="4" iconUrl="http://dev.clojure.org/jira/images/icons/improvement.gif">Enhancement</type>
                                <priority id="5" iconUrl="http://dev.clojure.org/jira/images/icons/priority_trivial.gif">Trivial</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="bmabey">Ben Mabey</reporter>
                        <labels>
                    </labels>
                <created>Mon, 22 Nov 2010 16:07:26 -0600</created>
                <updated>Mon, 27 Dec 2010 09:57:38 -0600</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                                <attachments>
                    <attachment id="10026" name="0001-adds-type-hinting-to-Condition.patch" size="1863" author="bmabey" created="Mon, 22 Nov 2010 16:07:28 -0600" />
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10003">Vetted</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <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>

<item>
            <title>[CONTRIB-100] Control output of non-ASCII characters in clojure-contrib.json</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-100</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Current version of JSON output functions perform escaping of non-ASCII characters into \uXXXX sequences, although json allows to use any Unicode character in strings.  When working with non-Latin-1 based texts, this lead to additional traffic.&lt;/p&gt;

&lt;p&gt;Given patch fixes this problem, leaving old behavior by default, but adding new option to output functions, that now accept :escape-chars option, that control how non-ASCII characters in string will output.  When this option has value &apos;true&apos; (default), then hex sequences are used for these characters, and when &apos;false&apos;, then characters are output as-is&lt;/p&gt;

&lt;p&gt;P.S. I sent CA at start of June, so Rich should already have it&lt;/p&gt;</description>
                <environment></environment>
            <key id="14268">CONTRIB-100</key>
            <summary>Control output of non-ASCII characters in clojure-contrib.json</summary>
                <type id="4" iconUrl="http://dev.clojure.org/jira/images/icons/improvement.gif">Enhancement</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="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="alexott">Alex Ott</reporter>
                        <labels>
                    </labels>
                <created>Sun, 31 Oct 2010 10:09:56 -0500</created>
                <updated>Tue, 30 Nov 2010 14:34:03 -0600</updated>
                    <resolved>Tue, 30 Nov 2010 14:34:02 -0600</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                        <comments>
                    <comment id="25911" author="alexott" created="Sun, 31 Oct 2010 10:10:49 -0500"  >&lt;p&gt;Or you can merge from my clojure-contrib repo from &apos;unquoted-json&apos; branch - &lt;a href=&quot;http://github.com/alexott/clojure-contrib/commit/c22da330f1f5b64a5789bde2bbb958cd9fdc31fa&quot;&gt;http://github.com/alexott/clojure-contrib/commit/c22da330f1f5b64a5789bde2bbb958cd9fdc31fa&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25981" author="stuart.sierra" created="Tue, 30 Nov 2010 11:32:52 -0600"  >&lt;p&gt;I&apos;m happy with the idea. Not sure about the implementation.&lt;/p&gt;

&lt;p&gt;For other configuration options (keywordizing object fields) I used local arguments, assuming it would be faster than Var lookups.  With recent enhancements to Var lookup, that may no longer be true.  Need to investigate.&lt;/p&gt;</comment>
                    <comment id="25982" author="stuart.sierra" created="Tue, 30 Nov 2010 11:34:10 -0600"  >&lt;p&gt;Patch file submitted 31/Oct/10 does not work.  &quot;git am -s&quot; returns &quot;Patch does not have a valid e-mail address.&quot;  &lt;a href=&quot;http://clojure.org/patches&quot;&gt;http://clojure.org/patches&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25983" author="stuart.sierra" created="Tue, 30 Nov 2010 11:54:14 -0600"  >&lt;p&gt;Alternate implementation &lt;a href=&quot;https://github.com/clojure/clojure-contrib/commit/5380552375c8b074d979cb1d1b8a8382bdf8a999&quot;&gt;committed&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25984" author="stuart.sierra" created="Tue, 30 Nov 2010 14:34:03 -0600"  >&lt;p&gt;Enhancement committed.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="10009" name="cc.json-escape-chars.patch" size="7581" author="alexott" created="Sun, 31 Oct 2010 10:09:56 -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>[CONTRIB-98] c.c.json/json-str handles maps with keys containing quotes incorrectly</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-98</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Consider:&lt;/p&gt;

&lt;p&gt;&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;&amp;gt; (println (json-str {&lt;span class=&quot;code-quote&quot;&gt;&quot;\&quot;&lt;/span&gt;&quot; 1})) 
{&quot;&quot;&quot;:1} 
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

...&lt;span class=&quot;code-keyword&quot;&gt;while&lt;/span&gt; I (and my parsers) would expect &amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;{&lt;span class=&quot;code-quote&quot;&gt;&quot;\&quot;&lt;/span&gt;&quot;:1}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;. &lt;/p&gt;

&lt;p&gt;This happens in both contrib 1.2.0 and 1.3-alpha1.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14258">CONTRIB-98</key>
            <summary>c.c.json/json-str handles maps with keys containing quotes incorrectly</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="5" iconUrl="http://dev.clojure.org/jira/images/icons/status_resolved.gif">Resolved</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 30 Sep 2010 20:58:00 -0500</created>
                <updated>Fri, 26 Nov 2010 16:17:26 -0600</updated>
                    <resolved>Fri, 26 Nov 2010 09:11:04 -0600</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>1</watches>
                        <comments>
                    <comment id="25878" author="importer" created="Thu, 28 Oct 2010 15:05:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/98&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/98&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25882" author="jwr" created="Fri, 29 Oct 2010 02:37:50 -0500"  >&lt;p&gt;The enclosed patch escapes object keys. It passes all tests. I&apos;ve added a test that fails without the fix and passes with it.&lt;/p&gt;</comment>
                    <comment id="25917" author="jwr" created="Thu, 4 Nov 2010 11:18:42 -0500"  >&lt;p&gt;I&apos;ve been told that issues are marked as &quot;resolved&quot; only after the patch gets applied. I&apos;m reopening the issue, then, hoping that someone will pick it up from here.&lt;/p&gt;</comment>
                    <comment id="25946" author="stuart.sierra" created="Thu, 18 Nov 2010 17:11:47 -0600"  >&lt;p&gt;Patch does not apply, appears to be formatted for contrib pre-modularization.&lt;/p&gt;</comment>
                    <comment id="25959" author="stuart.sierra" created="Fri, 26 Nov 2010 09:11:04 -0600"  >&lt;p&gt;Rewrote patch to work with modularized contrib; applied in &lt;a href=&quot;https://github.com/clojure/clojure-contrib/commit/d6f6ccfaeac03e35b1f9dbfa04424866cd9b2a41&quot;&gt;d6f6ccfaeac03e35b1f9dbfa04424866cd9b2a41&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25963" author="danieljanus" created="Fri, 26 Nov 2010 16:17:26 -0600"  >&lt;p&gt;Is this going to be backported to 1.2 branch? It would be greatly appreciated.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                    <attachment id="10004" name="clojure-contrib-json-98.patch" size="1486" author="jwr" created="Fri, 29 Oct 2010 02:37:50 -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>[CONTRIB-96] Cartesian product with nil args</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-96</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/clojure-dev/browse_thread/thread/ac3582cd1698be1&quot;&gt;http://groups.google.com/group/clojure-dev/browse_thread/thread/ac3582cd1698be1&lt;/a&gt;&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;user&amp;gt; (cartesian-product [1 2] [&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;] ) 
((1 &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;) (1 &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;) (2 &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;) (2 &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;)) 
user&amp;gt; (cartesian-product [1 2] [&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;]) 
nil 
user&amp;gt; (cartesian-product [1 2] [nil 4]) 
nil 
&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;/nil in first position seems to cause failure.&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
            <key id="14256">CONTRIB-96</key>
            <summary>Cartesian product with nil args</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="5" iconUrl="http://dev.clojure.org/jira/images/icons/status_resolved.gif">Resolved</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Fri, 24 Sep 2010 15:01:00 -0500</created>
                <updated>Fri, 26 Nov 2010 08:58:19 -0600</updated>
                    <resolved>Fri, 26 Nov 2010 08:58:19 -0600</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25874" author="importer" created="Fri, 24 Sep 2010 15:01:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/96&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/96&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25875" author="importer" created="Fri, 24 Sep 2010 15:01:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/499b9c02d1932ba0c0651e04b627c25f7f04f0c8&quot;&gt;revision:499b9c02d1932ba0c0651e04b627c25f7f04f0c8&lt;/a&gt;) cartesian-product nil-arg fix; refs #96&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25958" author="stuart.sierra" created="Fri, 26 Nov 2010 08:58:19 -0600"  >&lt;p&gt;Fixed in repository commit &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/499b9c02d1932ba0c0651e04b627c25f7f04f0c8&quot;&gt;499b9c02d1932ba0c0651e04b627c25f7f04f0c8&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>[CONTRIB-101] eof-value not working in clojure.contrib.json</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-101</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;The docs of read-json-from promise eof-error? and eof-value, but these fail to work. This is caused by lines 116-121: &lt;a href=&quot;https://github.com/richhickey/clojure-contrib/blob/master/src/main/clojure/clojure/contrib/json.clj#L116-121&quot;&gt;https://github.com/richhickey/clojure-contrib/blob/master/src/main/clojure/clojure/contrib/json.clj#L116-121&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At EOF read returns -1, but evaluating (char -1) on the repl reveals that this does not work, and thus an exception is raised before eof-value could be returned.&lt;/p&gt;

&lt;p&gt;This is easily fixed by checking if i is in a valid range, or at least not -1, by doing something like (and (not= i -1) (char i))&lt;/p&gt;</description>
                <environment>1.2 on Snow Leopard</environment>
            <key id="14283">CONTRIB-101</key>
            <summary>eof-value not working in clojure.contrib.json</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="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="pepijndevos">Pepijn de Vos</reporter>
                        <labels>
                    </labels>
                <created>Tue, 16 Nov 2010 12:22:48 -0600</created>
                <updated>Thu, 18 Nov 2010 17:07:04 -0600</updated>
                    <resolved>Thu, 18 Nov 2010 17:07:04 -0600</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25944" author="stuart.sierra" created="Thu, 18 Nov 2010 17:05:15 -0600"  >&lt;p&gt;You&apos;re using an old repository. This has been fixed. &lt;a href=&quot;https://github.com/clojure/clojure-contrib&quot;&gt;https://github.com/clojure/clojure-contrib&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25945" author="stuart.sierra" created="Thu, 18 Nov 2010 17:07:04 -0600"  >&lt;p&gt;References old github.com/richhickey repository; this has already been fixed.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10008">Not Approved</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CONTRIB-75] tests for c.c.io</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-75</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;c.c.io has few tests, despite being on the most used libraries in contrib. Be a clojure here and write some unit tests for this module. Code review comments would be welcome too!&lt;/p&gt;</description>
                <environment></environment>
            <key id="14235">CONTRIB-75</key>
            <summary>tests for c.c.io</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="3" iconUrl="http://dev.clojure.org/jira/images/icons/status_inprogress.gif">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="dsg">Daniel Solano G&#243;mez</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 14 Apr 2010 21:43:00 -0500</created>
                <updated>Wed, 10 Nov 2010 09:54:31 -0600</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25801" author="importer" created="Tue, 24 Aug 2010 10:30:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/75&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/75&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25929" author="trptcolin" created="Wed, 10 Nov 2010 09:54:31 -0600"  >&lt;p&gt;c.c.io no longer exists, as of &lt;a href=&quot;https://github.com/clojure/clojure-contrib/commit/2c6c9e3&quot;&gt;2c6c9e3&lt;/a&gt;. So this ticket should likely move to Clojure proper (for clojure.java.io).&lt;/p&gt;

&lt;p&gt;A cursory look through the clojure.java.io tests shows that most public functions are covered, but there&apos;s probably still room for more tests there. Needs more investigation.&lt;/p&gt;

&lt;p&gt;The real link to the Assembla ticket is &lt;a href=&quot;http://www.assembla.com/spaces/clojure-contrib/tickets/75&quot;&gt;http://www.assembla.com/spaces/clojure-contrib/tickets/75&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>[CONTRIB-72] Replace references to duck-streams with io in clojurescript</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-72</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;duck-streams was renamed to io back in February 1st, but clojure-script still references duck-streams. Attached is a very simple patch that fixes this.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14232">CONTRIB-72</key>
            <summary>Replace references to duck-streams with io in clojurescript</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="5" iconUrl="http://dev.clojure.org/jira/images/icons/status_resolved.gif">Resolved</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="chouser@n01se.net">Chouser</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Mon, 15 Mar 2010 06:14:00 -0500</created>
                <updated>Fri, 29 Oct 2010 00:47:29 -0500</updated>
                    <resolved>Fri, 29 Oct 2010 00:47:28 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25796" author="importer" created="Tue, 24 Aug 2010 14:51:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/72&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/72&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-Fixed-references-to-duck-streams-in-clojurescript.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/ajeN44l_Or34IreJe5avMc/download/ajeN44l_Or34IreJe5avMc&quot;&gt;https://www.assembla.com/spaces/clojure/documents/ajeN44l_Or34IreJe5avMc/download/ajeN44l_Or34IreJe5avMc&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25881" author="chouser@n01se.net" created="Fri, 29 Oct 2010 00:46:14 -0500"  >&lt;p&gt;Clojurescript is wildly outdated.  To use it, it would be best to use contrib and clojure from approximately Clojure 1.0.  Thanks for patch, but I think forcing Clojurescript to use a recent version of Clojure would actually complicate the situation for anyone desperate enough to try to use it.&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>[CONTRIB-97] Add zero-arity body to comp function</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-97</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;The comp function should return the identity function should it be called with zero args.  Currently there is no zero-arity form.  I talked a little more about this at &lt;a href=&quot;http://blog.fogus.me/2010/08/18/monkeying-with-clojures-comp-function/&quot;&gt;http://blog.fogus.me/2010/08/18/monkeying-with-clojures-comp-function/&lt;/a&gt;.  Patch attached.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14257">CONTRIB-97</key>
            <summary>Add zero-arity body to comp function</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Tue, 28 Sep 2010 19:14:00 -0500</created>
                <updated>Tue, 28 Sep 2010 19:22:00 -0500</updated>
                    <resolved>Tue, 28 Sep 2010 19:22:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25876" author="importer" created="Tue, 28 Sep 2010 19:22:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/97&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/97&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
comp0.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/aoMbWYYXmr37tPeJe5cbLr/download/aoMbWYYXmr37tPeJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/aoMbWYYXmr37tPeJe5cbLr/download/aoMbWYYXmr37tPeJe5cbLr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25877" author="importer" created="Tue, 28 Sep 2010 19:22:00 -0500"  >&lt;p&gt;fogus said: Sigh.  I posted this in contrib when it should have been in core.  I apologize.&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>[CONTRIB-77] Refactor c.c.io/writer, reader, etc as a protocol; stop returning PrintWriters</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-77</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;As discussed here:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/clojure-dev/browse_frm/thread/3e39e9b3982f542b&quot;&gt;http://groups.google.com/group/clojure-dev/browse_frm/thread/3e39e9b3982f542b&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
            <key id="14237">CONTRIB-77</key>
            <summary>Refactor c.c.io/writer, reader, etc as a protocol; stop returning PrintWriters</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="cemerick">Chas Emerick</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Mon, 26 Apr 2010 09:30:00 -0500</created>
                <updated>Sat, 18 Sep 2010 01:53:00 -0500</updated>
                    <resolved>Sat, 18 Sep 2010 01:53:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25804" author="importer" created="Sat, 18 Sep 2010 01:53:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/77&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/77&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
77-refactor-c.c.io.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/b9K9uwuu4r37NTeJe5d-aX/download/b9K9uwuu4r37NTeJe5d-aX&quot;&gt;https://www.assembla.com/spaces/clojure/documents/b9K9uwuu4r37NTeJe5d-aX/download/b9K9uwuu4r37NTeJe5d-aX&lt;/a&gt;&lt;br/&gt;
77-refactor-c.c.io2.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/cGY9s2vRir37QQeJe5cbCb/download/cGY9s2vRir37QQeJe5cbCb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/cGY9s2vRir37QQeJe5cbCb/download/cGY9s2vRir37QQeJe5cbCb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25805" author="importer" created="Sat, 18 Sep 2010 01:53:00 -0500"  >&lt;p&gt;cemerick said: [&lt;a href=&quot;file:b9K9uwuu4r37NTeJe5d-aX&quot;&gt;file:b9K9uwuu4r37NTeJe5d-aX&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25806" author="importer" created="Sat, 18 Sep 2010 01:53:00 -0500"  >&lt;p&gt;cemerick said: Based on discussion on the &lt;a href=&quot;http://groups.google.com/group/clojure-dev/browse_frm/thread/3e39e9b3982f542b&quot;&gt;clojure-dev list&lt;/a&gt;, I&apos;ve eliminated the &lt;b&gt;buffer-streams&lt;/b&gt; var and the associated usage.  We can revisit buffering control strategies / APIs at some future point without any API incompatibilities.&lt;/p&gt;

&lt;p&gt;Modified patch attached (#2).&lt;/p&gt;</comment>
                    <comment id="25807" author="importer" created="Sat, 18 Sep 2010 01:53:00 -0500"  >&lt;p&gt;cemerick said: [&lt;a href=&quot;file:cGY9s2vRir37QQeJe5cbCb&quot;&gt;file:cGY9s2vRir37QQeJe5cbCb&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25808" author="importer" created="Sat, 18 Sep 2010 01:53:00 -0500"  >&lt;p&gt;stuart.sierra said: This has been completed in the new Clojure namespace clojure.java.io&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>[CONTRIB-91] json end-of-file handling broken</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-91</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;When read-json encounters an end-of-file, an IllegalArgumentException is thrown regardless of the user&apos;s eof preferences. This can easily be reproduced by running:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(read-json &quot;&quot;)
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;
which &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; the exception
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;java.lang.IllegalArgumentException: Value out of range &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt;: -1
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;
This is caused by the .read method of the Reader returning -1 when the end is reached. (.read returns an &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;.) This value is then passed to &apos;&lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt;&apos;, which tries to make the corresponding character from the code point number. However, -1 is not a valid code point, so it &lt;span class=&quot;code-keyword&quot;&gt;throws&lt;/span&gt; an exception.

A solution is to check &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; equality to -1 before trying to convert to a character. I also have an idea &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; a helper function that could be used:
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;(defn- read-&lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt;
  &lt;span class=&quot;code-quote&quot;&gt;&quot;Reads a character from a Reader. Returns nil &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; the end of the stream is reached&quot;&lt;/span&gt;
  [stream]
  (let [x (.read stream)]
    (&lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (not= x -1)
      (&lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt; x))))&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;This function will always return either a Character or nil. Using it would make it possible to have the eof case along the other cases in the existing cond forms.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14251">CONTRIB-91</key>
            <summary>json end-of-file handling broken</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="rasmus.svensson">rasmus.svensson</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sun, 15 Aug 2010 00:51:00 -0500</created>
                <updated>Fri, 17 Sep 2010 18:53:00 -0500</updated>
                    <resolved>Fri, 17 Sep 2010 18:53:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25845" author="importer" created="Fri, 17 Sep 2010 18:53:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/91&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/91&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
fix91-1.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/bYSqjYRuWr37WWeJe5cbCb/download/bYSqjYRuWr37WWeJe5cbCb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/bYSqjYRuWr37WWeJe5cbCb/download/bYSqjYRuWr37WWeJe5cbCb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25846" author="importer" created="Fri, 17 Sep 2010 18:53:00 -0500"  >&lt;p&gt;stuart.sierra said: [&lt;a href=&quot;file:bYSqjYRuWr37WWeJe5cbCb&quot;&gt;file:bYSqjYRuWr37WWeJe5cbCb&lt;/a&gt;]: fix, without auxiliary function&lt;/p&gt;</comment>
                    <comment id="25847" author="importer" created="Fri, 17 Sep 2010 18:53:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/5a928e263ab88cb8d224de8585932f936aa30c8f&quot;&gt;revision:5a928e263ab88cb8d224de8585932f936aa30c8f&lt;/a&gt;) Fix EOF-handling in JSON reader; refs #91&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-95] with-ns tests broken by changes to Clojure exception reporting</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-95</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;with-ns tests fail after Clojure commit 1c0468dbe5228bb8c228e1370133bbe1d018e058 because of how exception messages changed&lt;/p&gt;</description>
                <environment></environment>
            <key id="14255">CONTRIB-95</key>
            <summary>with-ns tests broken by changes to Clojure exception reporting</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Fri, 17 Sep 2010 18:42:00 -0500</created>
                <updated>Fri, 17 Sep 2010 18:49:00 -0500</updated>
                    <resolved>Fri, 17 Sep 2010 18:49:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25872" author="importer" created="Fri, 17 Sep 2010 18:49:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/95&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/95&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25873" author="importer" created="Fri, 17 Sep 2010 18:49:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/11852b988be61bbf661ca80ef7a78d17e3ee2325&quot;&gt;revision:11852b988be61bbf661ca80ef7a78d17e3ee2325&lt;/a&gt;) Fix broken with-ns tests; refs #95&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;broken by Clojure commit 1c0468dbe5228bb8c228e1370133bbe1d018e058&lt;/li&gt;
	&lt;li&gt;Clojure&apos;s compiler exceptions changed their format&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Branch: master&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>[CONTRIB-84] clojure.contrib.base64 lacking decode</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-84</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Namespace clojure.contrib.base64 contains a Base64 encode function but is (so far) missing decode.&lt;/p&gt;

&lt;p&gt;I know commons-codec contains a quality implementation of both functions, but adding yet another jar in your build just for base64 decode purposes is an unnecessary complication. For symmetry&apos;s sake, decode should be added.&lt;/p&gt;

&lt;p&gt;I will add a patch soon.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14244">CONTRIB-84</key>
            <summary>clojure.contrib.base64 lacking decode</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="anttipoi">anttipoi</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 12 May 2010 17:55:00 -0500</created>
                <updated>Fri, 17 Sep 2010 18:16:00 -0500</updated>
                    <resolved>Fri, 17 Sep 2010 18:16:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25819" author="importer" created="Fri, 17 Sep 2010 18:16:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/84&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/84&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
base64-decode.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/c68LHyxEOr35_MeJe5cbCb/download/c68LHyxEOr35_MeJe5cbCb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/c68LHyxEOr35_MeJe5cbCb/download/c68LHyxEOr35_MeJe5cbCb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25820" author="importer" created="Fri, 17 Sep 2010 18:16:00 -0500"  >&lt;p&gt;anttipoi said: [&lt;a href=&quot;file:c68LHyxEOr35_MeJe5cbCb&quot;&gt;file:c68LHyxEOr35_MeJe5cbCb&lt;/a&gt;]: Patch adding decode + tests&lt;/p&gt;</comment>
                    <comment id="25821" author="importer" created="Fri, 17 Sep 2010 18:16:00 -0500"  >&lt;p&gt;anttipoi said: BTW. Sorry about not raising the topic on the clojure-dev group first. I just lost my patience waiting to be let in. &lt;img class=&quot;emoticon&quot; src=&quot;http://dev.clojure.org/jira/images/icons/emoticons/smile.gif&quot; height=&quot;20&quot; width=&quot;20&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                    <comment id="25822" author="importer" created="Fri, 17 Sep 2010 18:16:00 -0500"  >&lt;p&gt;anttipoi said: Note: I&apos;ve modified the patch to support multi-line encoded data.&lt;/p&gt;</comment>
                    <comment id="25823" author="importer" created="Fri, 17 Sep 2010 18:16:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/5263e4bd9ca8634b50755c5150ebef26e0d191f1&quot;&gt;revision:5263e4bd9ca8634b50755c5150ebef26e0d191f1&lt;/a&gt;) Base64 decoding from Teemu Antti-Poika; refs #84&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-79] Forward-port deprecated 1.1 namespaces</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-79</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Too many people are doing crazy stuff with conditional loading just to support both 1.1 and 1.2 simultaneously.  This way lies madness.&lt;/p&gt;

&lt;p&gt;To avoid this, lets forward-port all the 1.1 namespaces that were removed or renamed in master, e.g. duck-streams, seq-utils, str-utils, etc.  Just copy the old files from the 1.1 branch, so that no behavior changes.&lt;/p&gt;

&lt;p&gt;Add a printed deprecation warning at the top-level of each of the old namespaces, like&lt;br/&gt;
(println &quot;The foo namespace is deprecated, please use bar instead.&quot;)&lt;/p&gt;

&lt;p&gt;Post 1.2 release we can remove the deprecated namespaces.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14239">CONTRIB-79</key>
            <summary>Forward-port deprecated 1.1 namespaces</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Tue, 27 Apr 2010 00:29:00 -0500</created>
                <updated>Fri, 17 Sep 2010 00:51:00 -0500</updated>
                    <resolved>Fri, 17 Sep 2010 00:51:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25810" author="importer" created="Fri, 17 Sep 2010 00:51:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/79&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/79&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25811" author="importer" created="Fri, 17 Sep 2010 00:51:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/a1c66df5287776b4397cf3929a5f498fbb34ea32&quot;&gt;revision:a1c66df5287776b4397cf3929a5f498fbb34ea32&lt;/a&gt;) Copy deleted/renamed namespaces from 1.1 release; refs #79&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;For backward compatibility with 1.1 release.&lt;/li&gt;
	&lt;li&gt;Namespaces copied: duck-streams, java-utils, seq-utils,&lt;br/&gt;
  shell-out, str-utils, str-utils2.&lt;/li&gt;
	&lt;li&gt;These namespaces can be marked as deprecated.&lt;/li&gt;
	&lt;li&gt;They are copied rather than simply aliased because&lt;br/&gt;
  some behavior has changed.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25812" author="importer" created="Fri, 17 Sep 2010 00:51:00 -0500"  >&lt;p&gt;cemerick said: FWIW, the various signature and fn name changes between 1.1 and 1.2 still need to be unraveled by any codebase that wants to target both, and choosing which impl to use is still easiest by eagerly loading whereever the new impls are in a try/catch.  I&apos;m not arguing against restoring the old namespaces (at the moment! &lt;img class=&quot;emoticon&quot; src=&quot;http://dev.clojure.org/jira/images/icons/emoticons/smile.gif&quot; height=&quot;20&quot; width=&quot;20&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;, just pointing out that doing so doesn&apos;t impact 1.1/1.2 compat.&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>[CONTRIB-94] c.c.repl-utils/show is currently broken</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-94</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;since the module reorganisation:&lt;/p&gt;

&lt;p&gt;commit fe4ed31&lt;br/&gt;
Author: Ben Smith-Mannschott bsmith.occs@gmail.com&quot;&amp;gt;bsmith.occs@gmail.com&lt;br/&gt;
Date: Sat Aug 28 11:22:22 2010 +0200&lt;/p&gt;

&lt;p&gt;Fix: &lt;a href=&quot;http://github.com/juergenhoetzel/clojure-contrib/commit/31c33107f59c71ec00ae1429b38f2005dce374d3&quot;&gt;http://github.com/juergenhoetzel/clojure-contrib/commit/31c33107f59c71ec00ae1429b38f2005dce374d3&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
            <key id="14254">CONTRIB-94</key>
            <summary>c.c.repl-utils/show is currently broken</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="chouser@n01se.net">Chouser</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 15 Sep 2010 20:23:00 -0500</created>
                <updated>Thu, 16 Sep 2010 18:16:00 -0500</updated>
                    <resolved>Thu, 16 Sep 2010 18:16:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25869" author="importer" created="Thu, 16 Sep 2010 18:16:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/94&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/94&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25870" author="importer" created="Thu, 16 Sep 2010 18:16:00 -0500"  >&lt;p&gt;chouser@n01se.net said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/4083a0695087d34d13dbbe5a9b49d7c7b30ef2c4&quot;&gt;revision:4083a0695087d34d13dbbe5a9b49d7c7b30ef2c4&lt;/a&gt;) Fix broken repl-utils/show&lt;/p&gt;

&lt;p&gt;Was broken since fe4ed311166677cd571d23774171af1d830f7fc5&lt;br/&gt;
Fixes #94&lt;br/&gt;
Also add a bit more type info in class component maps.&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25871" author="importer" created="Thu, 16 Sep 2010 18:16:00 -0500"  >&lt;p&gt;chouser@n01se.net said: Thanks for the report, Ben.&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>[CONTRIB-93] remove deprecations on master</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-93</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;I noticed the &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/4e5d98a8840fdeabbb304ca084cb02509dc14393&quot;&gt;recent&lt;/a&gt; &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/055b69c39b0d1ea61d486be11caa98f74c0493fc&quot;&gt;aborted&lt;/a&gt; attempt to remove the deprecated modules form clojure-contrib master. Since I was in need of some busy work, I decided to try and do it myself and clean up the breakage.&lt;/p&gt;

&lt;p&gt;The attached patches don&apos;t remove everything that has been marked as deprecated, just the bits Stuart previously indicated by trying to remove them.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;clojure.contrib.apply-macro&lt;/li&gt;
	&lt;li&gt;clojure.contrib.http-agent&lt;/li&gt;
	&lt;li&gt;clojure.contrib.http-connection&lt;/li&gt;
	&lt;li&gt;clojure.contrib.javadoc: which rewrote a :use in repl_utils.clj from c.c.javadoc.browse to c.java.browse.&lt;/li&gt;
	&lt;li&gt;clojure.contrib.properties: where private versions of as-str and as-properties were defined in c.c.sql internal.clj&lt;/li&gt;
	&lt;li&gt;clojure.contrib.test-is&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
            <key id="14253">CONTRIB-93</key>
            <summary>remove deprecations on master</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="bpsm">bpsm</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Tue, 24 Aug 2010 21:13:00 -0500</created>
                <updated>Fri, 3 Sep 2010 20:52:00 -0500</updated>
                    <resolved>Fri, 3 Sep 2010 20:52:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25849" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/93&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/93&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-remove-derecated-clojure.contrib.apply-macro.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dFW7nWR6ir34gmeJe5cbLA/download/dFW7nWR6ir34gmeJe5cbLA&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dFW7nWR6ir34gmeJe5cbLA/download/dFW7nWR6ir34gmeJe5cbLA&lt;/a&gt;&lt;br/&gt;
0002-remove-deprecated-clojure.contrib.http-agent.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dFW9QaR6ir34gmeJe5cbLA/download/dFW9QaR6ir34gmeJe5cbLA&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dFW9QaR6ir34gmeJe5cbLA/download/dFW9QaR6ir34gmeJe5cbLA&lt;/a&gt;&lt;br/&gt;
0003-remove-deprecated-clojure.contrib.http-connection.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dFXab4R6ir34gmeJe5cbLA/download/dFXab4R6ir34gmeJe5cbLA&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dFXab4R6ir34gmeJe5cbLA/download/dFXab4R6ir34gmeJe5cbLA&lt;/a&gt;&lt;br/&gt;
0004-remove-deprecated-clojure.contrib.properties.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dFXcqIR6ir34gmeJe5cbLA/download/dFXcqIR6ir34gmeJe5cbLA&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dFXcqIR6ir34gmeJe5cbLA/download/dFXcqIR6ir34gmeJe5cbLA&lt;/a&gt;&lt;br/&gt;
0005-remove-deprecated-clojure.contrib.javadoc.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dFXeH2R6ir34gmeJe5cbLA/download/dFXeH2R6ir34gmeJe5cbLA&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dFXeH2R6ir34gmeJe5cbLA/download/dFXeH2R6ir34gmeJe5cbLA&lt;/a&gt;&lt;br/&gt;
0007-remove-deprecated-clojure.contrib.test-is.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dFXg04R6ir34gmeJe5cbLA/download/dFXg04R6ir34gmeJe5cbLA&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dFXg04R6ir34gmeJe5cbLA/download/dFXg04R6ir34gmeJe5cbLA&lt;/a&gt;&lt;br/&gt;
0008-removed-c.c.shell-and-c.c.shell-out.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/ahtcAoR60r34W9eJe5cbCb/download/ahtcAoR60r34W9eJe5cbCb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/ahtcAoR60r34W9eJe5cbCb/download/ahtcAoR60r34W9eJe5cbCb&lt;/a&gt;&lt;br/&gt;
remove-deprecated-clojure.contrib.io.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/bR5RKOSu0r36XVeJe5cbLA/download/bR5RKOSu0r36XVeJe5cbLA&quot;&gt;https://www.assembla.com/spaces/clojure/documents/bR5RKOSu0r36XVeJe5cbLA/download/bR5RKOSu0r36XVeJe5cbLA&lt;/a&gt;&lt;br/&gt;
0010-create-clojure.contrib.io-convenience-module.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dxyjsaSHar37S6eJe5cbCb/download/dxyjsaSHar37S6eJe5cbCb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dxyjsaSHar37S6eJe5cbCb/download/dxyjsaSHar37S6eJe5cbCb&lt;/a&gt;&lt;br/&gt;
0011-remove-deprecated-clojure.contrib.str-utils.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dEtFMSSRir35x5eJe5cbCb/download/dEtFMSSRir35x5eJe5cbCb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dEtFMSSRir35x5eJe5cbCb/download/dEtFMSSRir35x5eJe5cbCb&lt;/a&gt;&lt;br/&gt;
0013-remove-deprecated-clojure.contrib.string.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dSD8sqSRir35nTeJe5cbLr/download/dSD8sqSRir35nTeJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dSD8sqSRir35nTeJe5cbLr/download/dSD8sqSRir35nTeJe5cbLr&lt;/a&gt;&lt;br/&gt;
0012-remove-deprecated-clojure.contrib.str-utils2.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dSzxyYSRir35nTeJe5cbLr/download/dSzxyYSRir35nTeJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dSzxyYSRir35nTeJe5cbLr/download/dSzxyYSRir35nTeJe5cbLr&lt;/a&gt;&lt;br/&gt;
0014-removed-deprecated-clojure.contrib.duck-streams.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/cJIVlaSTur34OJeJe5cbLr/download/cJIVlaSTur34OJeJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/cJIVlaSTur34OJeJe5cbLr/download/cJIVlaSTur34OJeJe5cbLr&lt;/a&gt;&lt;br/&gt;
0015-removed-deprecated-clojure.contrib.java-utils.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/cJNkS8STur34OJeJe5cbLr/download/cJNkS8STur34OJeJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/cJNkS8STur34OJeJe5cbLr/download/cJNkS8STur34OJeJe5cbLr&lt;/a&gt;&lt;br/&gt;
0016-removed-deprecated-clojure.contrib.pprint.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/cJQGkcSTur34OJeJe5cbLr/download/cJQGkcSTur34OJeJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/cJQGkcSTur34OJeJe5cbLr/download/cJQGkcSTur34OJeJe5cbLr&lt;/a&gt;&lt;br/&gt;
0017-removed-deprecated-source-get-source-apropos-from-cl.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/cJ5Kd4STur34OJeJe5cbLr/download/cJ5Kd4STur34OJeJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/cJ5Kd4STur34OJeJe5cbLr/download/cJ5Kd4STur34OJeJe5cbLr&lt;/a&gt;&lt;br/&gt;
0018-removed-deprecated-clojure.contrib.seq-utils.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/cJ8-lqSTur34OJeJe5cbLr/download/cJ8-lqSTur34OJeJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/cJ8-lqSTur34OJeJe5cbLr/download/cJ8-lqSTur34OJeJe5cbLr&lt;/a&gt;&lt;br/&gt;
0020-removed-deprecated-subset-superset-from-clojure.cont.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/da5unsSTur34OJeJe5cbLr/download/da5unsSTur34OJeJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/da5unsSTur34OJeJe5cbLr/download/da5unsSTur34OJeJe5cbLr&lt;/a&gt;&lt;br/&gt;
0019-removed-9-deprecated-functions-from-clojure.contrib..patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/daZ0rSSTur34OJeJe5cbLr/download/daZ0rSSTur34OJeJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/daZ0rSSTur34OJeJe5cbLr/download/daZ0rSSTur34OJeJe5cbLr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25850" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:ahtcAoR60r34W9eJe5cbCb&quot;&gt;file:ahtcAoR60r34W9eJe5cbCb&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25851" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: I&apos;ll submit further patches as I have time.  Not being &quot;in the loop&quot;, I can&apos;t be certain that we really want all the namespaces marked as deprecated gone before 1.3, but that&apos;s my operating assumption.  (I&apos;m attaching one patch per namespace so that the comitters can be selective.)&lt;/p&gt;</comment>
                    <comment id="25852" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:bR5RKOSu0r36XVeJe5cbLA&quot;&gt;file:bR5RKOSu0r36XVeJe5cbLA&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25853" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:dxyjsaSHar37S6eJe5cbCb&quot;&gt;file:dxyjsaSHar37S6eJe5cbCb&lt;/a&gt;]: proposed new c.c.io providing only what was not migrated to Clojure proper&lt;/p&gt;</comment>
                    <comment id="25854" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: &lt;b&gt;Proposal&lt;/b&gt;: when a namespace is partially promoted to Clojure proper, it might be good to provide a reduced version of the old namespace, providing just the functionality that was not promoted as an alternative to complete removal.&lt;/p&gt;

&lt;p&gt;I&apos;ve sketched out this idea as a patch: &lt;a href=&quot;https://www.assembla.com/spaces/clojure-contrib/documents/dxyjsaSHar37S6eJe5cbCb/download/dxyjsaSHar37S6eJe5cbCb&quot;&gt;0010-create-clojure.contrib.io-convenience-module&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I&apos;m imagining something like:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;most of clojure.contrib.io is promoted to clojure 1.2&lt;/li&gt;
	&lt;li&gt;clojure-contrib 1.2 deprecates, but does not remove clojure.contrib.io&lt;/li&gt;
	&lt;li&gt;clojure-contrib 1.3 provides a reduced version of clojure.contrib.io containing only non-deprecatd functionality not available elsewhere (i.e. in Clojure &#65533;&#65533;&#65533; 1.2).&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This new clojure.contrib.io is not a strict subset of the old clojure.contrib.io, as some changes seemed sensible to harmonize with clojure.java.io&apos;s conventions. This means, it&apos;s not a drop-in replacement, but at least provides equivalents for anyone trying to get off the deprecated clojure.contrib.io.&lt;/p&gt;

&lt;p&gt;One problem that&apos;s apparent with this proposal is that, since the &apos;new&apos; io only becomes available in 1.3, there would be something of a &quot;flag day&quot; when switching from 1.2 to 1.3, but then there would be if 1.3 completely eliminated c.c.io as well &amp;#8211; only it would be worse.&lt;/p&gt;</comment>
                    <comment id="25855" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;stuart.sierra said: clojure.contrib.io is deprecated, period. It will be removed in the next release.&lt;/p&gt;</comment>
                    <comment id="25856" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: Fine, so ignore patch 0010. That&apos;s why it&apos;s a &quot;proposal&quot;.&lt;/p&gt;

&lt;p&gt;Those moving their code off of c.c.io to c.j.io will just have to write their own versions of a subset of {file-str, write-lines, read-lines, pwd, with-out, with-in, to-byte-array, relative-path-string and delete-file-recursively}, or get these from a library outside of clojure-contrib. Am I understanding correctly?&lt;/p&gt;

&lt;p&gt;Patch 0010 contains (in the comments) some tips for porting from deprecated c.c.io to c.j.io. It would make sense to gather that kind of information in some kind of a guide/faq about how to replace uses of deprecated c.c. namespaces promotion to core was not 1-to-1.&lt;/p&gt;</comment>
                    <comment id="25857" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: &#65533;&#65533;&#65533;replace uses of deprecated c.c. namespaces &lt;b&gt;where&lt;/b&gt; promotion to core was not 1-to-1.&lt;/p&gt;</comment>
                    <comment id="25858" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:dEtFMSSRir35x5eJe5cbCb&quot;&gt;file:dEtFMSSRir35x5eJe5cbCb&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25859" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:dSzxyYSRir35nTeJe5cbLr&quot;&gt;file:dSzxyYSRir35nTeJe5cbLr&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25860" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:dSD8sqSRir35nTeJe5cbLr&quot;&gt;file:dSD8sqSRir35nTeJe5cbLr&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25861" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:cJIVlaSTur34OJeJe5cbLr&quot;&gt;file:cJIVlaSTur34OJeJe5cbLr&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25862" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:cJNkS8STur34OJeJe5cbLr&quot;&gt;file:cJNkS8STur34OJeJe5cbLr&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25863" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:cJQGkcSTur34OJeJe5cbLr&quot;&gt;file:cJQGkcSTur34OJeJe5cbLr&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25864" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:cJ5Kd4STur34OJeJe5cbLr&quot;&gt;file:cJ5Kd4STur34OJeJe5cbLr&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25865" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:cJ8-lqSTur34OJeJe5cbLr&quot;&gt;file:cJ8-lqSTur34OJeJe5cbLr&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25866" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:daZ0rSSTur34OJeJe5cbLr&quot;&gt;file:daZ0rSSTur34OJeJe5cbLr&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25867" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:da5unsSTur34OJeJe5cbLr&quot;&gt;file:da5unsSTur34OJeJe5cbLr&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25868" author="importer" created="Fri, 3 Sep 2010 20:52:00 -0500"  >&lt;p&gt;bpsm said: This task looks done to me. I can nothing further in clojure-contrib that&apos;s been deprecated. I&apos;ve placed these patches on a &lt;a href=&quot;http://github.com/bpsm/clojure-contrib/commits/t93&quot;&gt;branch&lt;/a&gt; on github for easy browsing.&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>[CONTRIB-92] gen-html-docs build fails due to unecessary :use of c.c.def</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-92</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;on clojure-contrib master:&lt;br/&gt;
gen-html-docs :uses c.c.def without actually using anything from it.&lt;br/&gt;
This causes the maven build to fail because clojure.contrib:def is not listed as a dependency in gen-html-docs&apos; pom.xml.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14252">CONTRIB-92</key>
            <summary>gen-html-docs build fails due to unecessary :use of c.c.def</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="3" iconUrl="http://dev.clojure.org/jira/images/icons/status_inprogress.gif">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Tue, 24 Aug 2010 21:01:00 -0500</created>
                <updated>Thu, 26 Aug 2010 23:23:00 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25848" author="importer" created="Thu, 26 Aug 2010 23:23:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/92&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/92&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-gen_html_docs.clj-no-longer-uses-clojure.contrib.def.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/a8fqHcR6er37N2eJe5cbLr/download/a8fqHcR6er37N2eJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/a8fqHcR6er37N2eJe5cbLr/download/a8fqHcR6er37N2eJe5cbLr&lt;/a&gt;&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10013">Test</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CONTRIB-90] clojure.contrib.io does not support appending anymore</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-90</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Reproduce the bug with:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(require &apos;clojure.contrib.io)
(clojure.contrib.io/append-writer &lt;span class=&quot;code-quote&quot;&gt;&quot;/xyz.txt&quot;&lt;/span&gt;)
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;
which will &lt;span class=&quot;code-keyword&quot;&gt;throw&lt;/span&gt; an Exception &#65533;&#65533;&#65533;Cannot change an open stream to append mode&#65533;&#65533;&#65533;.

This is caused because of a flaw in the call chain.
*clojure.contrib.io/writer* &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; Strings calls again *writer* &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; whatever *clojure.contrib.io/output-stream*
returns. We call *append-writer* which then calls *writer* on the &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; which in turn then calls:
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;
output-stream &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; ^&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; which calls
    output-stream &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; ^URL which calls
        output-stream &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; ^File which binds *append* to &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt; and calls
            output-stream &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; ^OutputStream which
            returns a BufferedOutputStream instance which then jumps back to the
        ^File handler, which removes its binding &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; *append*!! and returns the BOS to the
    ^URL handler which returns the BOS to the
^&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; handler&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;At this point the outer binding (for &lt;b&gt;append&lt;/b&gt;) is set to &lt;em&gt;true&lt;/em&gt; again, and assert-not-appending fails.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14250">CONTRIB-90</key>
            <summary>clojure.contrib.io does not support appending anymore</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="3" iconUrl="http://dev.clojure.org/jira/images/icons/status_inprogress.gif">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="bpsm">bpsm</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 4 Aug 2010 15:54:00 -0500</created>
                <updated>Thu, 26 Aug 2010 20:25:00 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25837" author="importer" created="Thu, 26 Aug 2010 20:25:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/90&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/90&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0002-t90-default-reader-implementation-special-cases-for-.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/auuXEWSiur35DyeJe5cbCb/download/auuXEWSiur35DyeJe5cbCb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/auuXEWSiur35DyeJe5cbCb/download/auuXEWSiur35DyeJe5cbCb&lt;/a&gt;&lt;br/&gt;
0001-t90-regression-test.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/amTyVwSt8r378NeJe5cbLr/download/amTyVwSt8r378NeJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/amTyVwSt8r378NeJe5cbLr/download/amTyVwSt8r378NeJe5cbLr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25838" author="importer" created="Thu, 26 Aug 2010 20:25:00 -0500"  >&lt;p&gt;bpsm said: I&apos;ve looked at this defect (on master). It seems thorny to me.&lt;/p&gt;

&lt;p&gt;I&apos;m finding the control flow in c.c.io rather difficult to follow, what with all those extensions of the Streams protocol delegating to one-another. I&apos;m reasonably certain that the solution is to special case the creation of a reader in &lt;b&gt;append&lt;/b&gt; mode.&lt;/p&gt;

&lt;p&gt;I&apos;ll attach a patch that does this by providing a default implementation for :writer, which seems to solve the problem, but I think I still need to think about it some more before I can call it &apos;done&apos;.&lt;/p&gt;

&lt;p&gt;Note: this defect is also present in &lt;b&gt;clojure.java.io 1.2.0&lt;/b&gt;.&lt;/p&gt;</comment>
                    <comment id="25839" author="importer" created="Thu, 26 Aug 2010 20:25:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:auuXEWSiur35DyeJe5cbCb&quot;&gt;file:auuXEWSiur35DyeJe5cbCb&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25840" author="importer" created="Thu, 26 Aug 2010 20:25:00 -0500"  >&lt;p&gt;bpsm said: Correction: This issue is &lt;b&gt;not&lt;/b&gt; &lt;b&gt;present&lt;/b&gt; in clojure 1.2.0. my bad.&lt;br/&gt;
I was mistaken about this bug being present in clojure.java.io. append-writer doesn&apos;t even exist there and the &lt;b&gt;append&lt;/b&gt; magic is gone there too as per &lt;a href=&quot;https://www.assembla.com/spaces/clojure/tickets/311&quot;&gt;clojure#311&lt;/a&gt;.&lt;br/&gt;
I think there was just something wonky with my swank-clojure:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;clojure.contrib.io&amp;gt; (require &apos;clojure.java.io)
nil
clojure.contrib.io&amp;gt; (in-ns &apos;clojure.java.io)
#&amp;lt;Namespace clojure.java.io&amp;gt;
clojure.java.io&amp;gt; (with-open [x (append-writer &lt;span class=&quot;code-quote&quot;&gt;&quot;/tmp/foo.txt&quot;&lt;/span&gt;)] x)
; Evaluation aborted.  ;;; EXCEPTION HERE&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                    <comment id="25841" author="importer" created="Thu, 26 Aug 2010 20:25:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:amTyVwSt8r378NeJe5cbLr&quot;&gt;file:amTyVwSt8r378NeJe5cbLr&lt;/a&gt;]: regression test&lt;/p&gt;</comment>
                    <comment id="25842" author="importer" created="Thu, 26 Aug 2010 20:25:00 -0500"  >&lt;p&gt;bpsm said: The provided regression test demonstrates the described issue and confirms that the provided patch resolves the issue. All other io unit tests continue to pass.&lt;/p&gt;</comment>
                    <comment id="25843" author="importer" created="Thu, 26 Aug 2010 20:25:00 -0500"  >&lt;p&gt;stuart.sierra said: clojure.contrib.io is deprecated and will be removed before the next release.&lt;/p&gt;</comment>
                    <comment id="25844" author="importer" created="Thu, 26 Aug 2010 20:25:00 -0500"  >&lt;p&gt;bpsm said: Let&apos;s see if I&apos;m on the same page that you&apos;re on:&lt;/p&gt;

&lt;p&gt;Since 1.2.0 is at RC3 already, you must mean 1.3.0 when you say &quot;next release&quot;, yes/no? Predicated on that:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;I think this should be fixed on the 1.2.x branch, where c.c.io is available, though deprecated. (&quot;deprecated, but working&quot; is better than &quot;deprecated by slightly buggy.&quot;) The attached patch is against 1.2.x, not master, despite what my initial comment on this issue says.&lt;/li&gt;
	&lt;li&gt;I&apos;ve provided a patch on #93 to remove c.c.io on master (1.3.x).&lt;/li&gt;
&lt;/ul&gt;
</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10013">Test</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CONTRIB-66] fix pprint tests and reenable</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-66</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Apparently (according to ticket 65), someone has broken the pprint tests, presumably during the switch to maven and all the hacking to get around gen-class/maven bugs.&lt;/p&gt;

&lt;p&gt;Take a look at this and fix it.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14226">CONTRIB-66</key>
            <summary>fix pprint tests and reenable</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="tomfaulhaber">Tom Faulhaber</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sun, 31 Jan 2010 10:09:00 -0600</created>
                <updated>Tue, 24 Aug 2010 22:08:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 22:08:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25777" author="importer" created="Tue, 24 Aug 2010 22:08:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/66&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/66&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25778" author="importer" created="Tue, 24 Aug 2010 22:08:00 -0500"  >&lt;p&gt;stuart.sierra said: It appears that the ColumnWriter/-init function is getting called with 3 arguments.&lt;/p&gt;</comment>
                    <comment id="25779" author="importer" created="Tue, 24 Aug 2010 22:08:00 -0500"  >&lt;p&gt;stuart.sierra said: I don&apos;t think this was caused by changes in the build.  Something has changed about how arguments get passed to init functions.  The ColumnWriter init function is getting the same arguments as the PrettyWriter init function (a Writer, 72, and 40).&lt;/p&gt;</comment>
                    <comment id="25780" author="importer" created="Tue, 24 Aug 2010 22:08:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/5b3beaed9ef8520c8c1e09ff7ac5b817786f51e2&quot;&gt;revision:5b3beaed9ef8520c8c1e09ff7ac5b817786f51e2&lt;/a&gt;) Fix mis-named ns in pprint.gen-class; refs #66&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25781" author="importer" created="Tue, 24 Aug 2010 22:08:00 -0500"  >&lt;p&gt;stuart.sierra said: Never mind, it was a simple typo in the gen_class.clj file.  Nothing to do with pprint or with the build process.&lt;/p&gt;

&lt;p&gt;Tests re-enabled; all pass.&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>[CONTRIB-43] add wall-hack-method and wall-hack-field to java_utils.clj</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-43</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;fns for access private or protected methods or fields&lt;/p&gt;</description>
                <environment></environment>
            <key id="14203">CONTRIB-43</key>
            <summary>add wall-hack-method and wall-hack-field to java_utils.clj</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="hiredman">Kevin Downey</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sat, 7 Nov 2009 15:17:00 -0600</created>
                <updated>Tue, 24 Aug 2010 21:06:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 21:06:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25659" author="importer" created="Tue, 24 Aug 2010 21:06:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/43&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/43&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
wall-hack.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/a2XedQY2ur3Q1LeJe5afGb/download/a2XedQY2ur3Q1LeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/a2XedQY2ur3Q1LeJe5afGb/download/a2XedQY2ur3Q1LeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25660" author="importer" created="Tue, 24 Aug 2010 21:06:00 -0500"  >&lt;p&gt;hiredman said: [&lt;a href=&quot;file:a2XedQY2ur3Q1LeJe5afGb&quot;&gt;file:a2XedQY2ur3Q1LeJe5afGb&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25661" author="importer" created="Tue, 24 Aug 2010 21:06:00 -0500"  >&lt;p&gt;hiredman said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/cc4e2ec2bf558f059330ebc97a031d7806a1e364&quot;&gt;revision:cc4e2ec2bf558f059330ebc97a031d7806a1e364&lt;/a&gt;) add wall-hack-method and wall-hack-field. fixes #43&lt;/p&gt;

&lt;p&gt;Signed-off-by: Chouser &amp;lt;chouser@n01se.net&amp;gt;&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-42] Pom specifies dependency on clojure 1.0-SNAPSHOT</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-42</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;It seems like contrib&apos;s master should point to the same version as clojure&apos;s master. If not, it should at least depend on the final release of 1.0; there&apos;s no reason to use a snapshot.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14202">CONTRIB-42</key>
            <summary>Pom specifies dependency on clojure 1.0-SNAPSHOT</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 4 Nov 2009 03:01:00 -0600</created>
                <updated>Tue, 24 Aug 2010 21:02:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 21:02:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25655" author="importer" created="Tue, 24 Aug 2010 21:02:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/42&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/42&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-Update-pom-to-depend-on-latest-Clojure.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/ad63wgYkmr3Q_UeJe5afGb/download/ad63wgYkmr3Q_UeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/ad63wgYkmr3Q_UeJe5afGb/download/ad63wgYkmr3Q_UeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25656" author="importer" created="Tue, 24 Aug 2010 21:02:00 -0500"  >&lt;p&gt;technomancy said: [&lt;a href=&quot;file:ad63wgYkmr3Q_UeJe5afGb&quot;&gt;file:ad63wgYkmr3Q_UeJe5afGb&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25657" author="importer" created="Tue, 24 Aug 2010 21:02:00 -0500"  >&lt;p&gt;technomancy said: Also: didn&apos;t we decide to change the artifactId from &quot;clojure-lang&quot; to just &quot;clojure&quot;?&lt;/p&gt;</comment>
                    <comment id="25658" author="importer" created="Tue, 24 Aug 2010 21:02:00 -0500"  >&lt;p&gt;technomancy said: Somehow I was looking at an older revision of this file; it has been fixed. Sorry!&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>[CONTRIB-89] Implements clojure.contrib.priority-map</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-89</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Adds clojure.contrib.priority-map, a variety of sorted map that&apos;s useful for many priority queue situations.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/clojure-dev/browse_thread/thread/fdb000cae4f66a95&quot;&gt;http://groups.google.com/group/clojure-dev/browse_thread/thread/fdb000cae4f66a95&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
            <key id="14249">CONTRIB-89</key>
            <summary>Implements clojure.contrib.priority-map</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="puzzler">puzzler</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sat, 17 Jul 2010 22:50:00 -0500</created>
                <updated>Tue, 24 Aug 2010 20:25:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 20:25:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25834" author="importer" created="Tue, 24 Aug 2010 20:25:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/89&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/89&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
prioritymap.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/aD2s4mKDqr34-UeJe5cbLr/download/aD2s4mKDqr34-UeJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/aD2s4mKDqr34-UeJe5cbLr/download/aD2s4mKDqr34-UeJe5cbLr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25835" author="importer" created="Tue, 24 Aug 2010 20:25:00 -0500"  >&lt;p&gt;puzzler said: &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/18c8713709e4cb095d10b154854f8d0b8fb50ad8&quot;&gt;http://github.com/clojure/clojure-contrib/commit/18c8713709e4cb095d10b154854f8d0b8fb50ad8&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25836" author="importer" created="Tue, 24 Aug 2010 20:25:00 -0500"  >&lt;p&gt;puzzler said: I realized shortly after uploading the file that although I made the equality of priority maps behave like regular maps and sorted maps, I forgot to adjust the hashCode method accordingly.&lt;/p&gt;

&lt;p&gt;Fixed that, and added a corresponding test case.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/08b2d37a962cc5baf2c37ad767067233eadfc6ca&quot;&gt;http://github.com/clojure/clojure-contrib/commit/08b2d37a962cc5baf2c37ad767067233eadfc6ca&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>[CONTRIB-88] clojure.contrib.sql runs out of memory on very large datasets</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-88</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;If you have a query that results in a very large dataset you will run out of memory because by  default, with-query-results pulls the entire result set into memory (even though it creates a lazy-seq using resultset-seq). &lt;/p&gt;

&lt;p&gt;This issue has been discussed previously here: &lt;br/&gt;
  &lt;a href=&quot;http://groups.google.com/group/clojure/browse_thread/thread/7b0c250e0ba6c9eb/fb9001522b49c20a&quot;&gt;http://groups.google.com/group/clojure/browse_thread/thread/7b0c250e0ba6c9eb/fb9001522b49c20a&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The fix is simple, just call (.setFetchSize stmt 1). But, with-query-results doesn&apos;t give you a way to do that currently. I propose adding an optional parameter after sql-params that is a hash of attributes to set on the PreparedStatement before executing it.&lt;/p&gt;

&lt;p&gt;So you can do this: &lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(with-connection {&#65533;&#65533;&#65533;} 
    (.setAutoCommit (sql/connection) &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;) ;; needed &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; postgres 
    (with-query-results results [&lt;span class=&quot;code-quote&quot;&gt;&quot;SELECT id, data FROM nodes&quot;&lt;/span&gt;] 
      {:fetch-size 1000} 
      (doseq [r results] 
        &#65533;&#65533;&#65533;)))&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;


&lt;p&gt;The new code in clojure.contrib.sql is very simple, but it depends on a new contrib namespace called clojure.contrib.bean. Here is more info on my proposed fix:&lt;br/&gt;
  &lt;a href=&quot;http://groups.google.com/group/clojure-dev/browse_thread/thread/d8334759f10f3f45&quot;&gt;http://groups.google.com/group/clojure-dev/browse_thread/thread/d8334759f10f3f45&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
            <key id="14248">CONTRIB-88</key>
            <summary>clojure.contrib.sql runs out of memory on very large datasets</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="3" iconUrl="http://dev.clojure.org/jira/images/icons/status_inprogress.gif">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="importer">Assembla Importer</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Fri, 9 Jul 2010 21:12:00 -0500</created>
                <updated>Tue, 24 Aug 2010 20:09:00 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25829" author="importer" created="Tue, 24 Aug 2010 20:09:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/88&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/88&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
sql-stmt-opts-with-bean.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/cjDxceI4er36sweJe5cbCb/download/cjDxceI4er36sweJe5cbCb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/cjDxceI4er36sweJe5cbCb/download/cjDxceI4er36sweJe5cbCb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25830" author="importer" created="Tue, 24 Aug 2010 20:09:00 -0500"  >&lt;p&gt;importer said: [&lt;a href=&quot;file:cFaBqYI38r3565eJe5cbLA&quot;&gt;file:cFaBqYI38r3565eJe5cbLA&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25831" author="importer" created="Tue, 24 Aug 2010 20:09:00 -0500"  >&lt;p&gt;importer said: [&lt;a href=&quot;file:cjDxceI4er36sweJe5cbCb&quot;&gt;file:cjDxceI4er36sweJe5cbCb&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25832" author="importer" created="Tue, 24 Aug 2010 20:09:00 -0500"  >&lt;p&gt;importer said: Hey Steve,&lt;/p&gt;

&lt;p&gt;Any progress on this? Another option instead of passing a map of attributes and using bean would be to allow the user to pass an optional function that would be called on the statement object. I&apos;ve seen code like this in compojure, I think:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(with-connection {&#65533;&#65533;&#65533;} 
    (.setAutoCommit (sql/connection) &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;) ;; needed &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; postgres 
    (with-query-results results [&lt;span class=&quot;code-quote&quot;&gt;&quot;SELECT id, data FROM nodes&quot;&lt;/span&gt;] 
      #(.setFetchSize % 1) 
      (doseq [r results] 
        &#65533;&#65533;&#65533;)))&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If this sounds better to you, I can submit a patch.&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br/&gt;
Justin&lt;/p&gt;</comment>
                    <comment id="25833" author="importer" created="Tue, 24 Aug 2010 20:09:00 -0500"  >&lt;p&gt;importer said: Kyle Burton just posted a blog post about this issue: &lt;a href=&quot;http://asymmetrical-view.com/2010/10/14/clojure-lazy-walk-sql-table.html&quot;&gt;http://asymmetrical-view.com/2010/10/14/clojure-lazy-walk-sql-table.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;His fix is to add a new method called with-query-results-cursor which turns off auto-commit and sets the fetch size.&lt;/p&gt;

&lt;p&gt;Steve, would this approach work better for you?&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>[CONTRIB-87] fix gvec reflection warnings</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-87</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;wrong assembla space&lt;/p&gt;</description>
                <environment></environment>
            <key id="14247">CONTRIB-87</key>
            <summary>fix gvec reflection warnings</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="stu">Stuart Halloway</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 23 Jun 2010 21:31:00 -0500</created>
                <updated>Tue, 24 Aug 2010 17:52:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 17:52:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25828" author="importer" created="Tue, 24 Aug 2010 17:52:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/87&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/87&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>[CONTRIB-52] Improve running tests from Ant</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-52</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;This  builds on clojure ticket 193, commit 607389029cfec50f32b73c00a6f66d0a1dbcda23.&lt;br/&gt;
Change code used by build.xml to exit with error code so ant fails cleanly.&lt;br/&gt;
Fork in ant so exit can be used.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14212">CONTRIB-52</key>
            <summary>Improve running tests from Ant</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 24 Dec 2009 09:44:00 -0600</created>
                <updated>Tue, 24 Aug 2010 17:41:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 17:41:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25716" author="importer" created="Tue, 24 Aug 2010 17:41:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/52&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/52&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
test-52.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/aqVdMo8fqr3QImeJe5afGb/download/aqVdMo8fqr3QImeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/aqVdMo8fqr3QImeJe5afGb/download/aqVdMo8fqr3QImeJe5afGb&lt;/a&gt;&lt;br/&gt;
test-52-b.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/drZN2e8Ner3QImeJe5afGb/download/drZN2e8Ner3QImeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/drZN2e8Ner3QImeJe5afGb/download/drZN2e8Ner3QImeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25717" author="importer" created="Tue, 24 Aug 2010 17:41:00 -0500"  >&lt;p&gt;mikehinchey said: [&lt;a href=&quot;file:aqVdMo8fqr3QImeJe5afGb&quot;&gt;file:aqVdMo8fqr3QImeJe5afGb&lt;/a&gt;]: patch to improve testing from ant&lt;/p&gt;</comment>
                    <comment id="25718" author="importer" created="Tue, 24 Aug 2010 17:41:00 -0500"  >&lt;p&gt;mikehinchey said: Build will fail cleanly if tests fail, by using exit.&lt;br/&gt;
Fork in ant so exit can be used.&lt;br/&gt;
Similar code will be submitted to clojure, but this does not depend on that patch.&lt;/p&gt;</comment>
                    <comment id="25719" author="importer" created="Tue, 24 Aug 2010 17:41:00 -0500"  >&lt;p&gt;mikehinchey said: [&lt;a href=&quot;file:drZN2e8Ner3QImeJe5afGb&quot;&gt;file:drZN2e8Ner3QImeJe5afGb&lt;/a&gt;]: fixes #52, including datalog (replaces test-52.patch)&lt;/p&gt;</comment>
                    <comment id="25720" author="importer" created="Tue, 24 Aug 2010 17:41:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25721" author="importer" created="Tue, 24 Aug 2010 17:41:00 -0500"  >&lt;p&gt;oranenj said: This ticket doesn&apos;t appear relevant anymore, because Maven replaced Ant. Closing as invalid&lt;/p&gt;</comment>
                    <comment id="25722" author="importer" created="Tue, 24 Aug 2010 17:41:00 -0500"  >&lt;p&gt;stu said: Updating tickets (#2, #3, #33, #38, #51, #52, #65, #67, #70)&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>[CONTRIB-86] c.c.memoize: thread-safe and extensible memoize</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-86</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Add the thread-safe, extensible memoize sparked from the discussion here: &lt;a href=&quot;http://groups.google.com/group/clojure/browse_thread/thread/36a13d150d830683/fe6daf462d3ebfac&quot;&gt;http://groups.google.com/group/clojure/browse_thread/thread/36a13d150d830683/fe6daf462d3ebfac&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
            <key id="14246">CONTRIB-86</key>
            <summary>c.c.memoize: thread-safe and extensible memoize</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="3" iconUrl="http://dev.clojure.org/jira/images/icons/status_inprogress.gif">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Fri, 28 May 2010 23:08:00 -0500</created>
                <updated>Tue, 24 Aug 2010 17:22:00 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25825" author="importer" created="Tue, 24 Aug 2010 17:22:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/86&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/86&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-Add-thread-safe-extensible-memoize-v2.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/aTrQGuAP0r35h6eJe5cbCb/download/aTrQGuAP0r35h6eJe5cbCb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/aTrQGuAP0r35h6eJe5cbCb/download/aTrQGuAP0r35h6eJe5cbCb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25826" author="importer" created="Tue, 24 Aug 2010 17:22:00 -0500"  >&lt;p&gt;bpsm said: ^{:doc &quot;The naive safe-all cache strategy for memoize.&quot;}&lt;br/&gt;
Replace &quot;safe&quot; with &quot;save&quot;.&lt;/p&gt;</comment>
                    <comment id="25827" author="importer" created="Tue, 24 Aug 2010 17:22:00 -0500"  >&lt;p&gt;meikelbrandmeyer said: Typo fixed.&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10013">Test</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CONTRIB-76] (pr x &amp; more) makes a self-call, which can lead to stack overflow</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-76</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;When &apos;pr&apos;, or any related functions are called with a sequence of arguments, they can cause stack overflow.&lt;/p&gt;

&lt;p&gt;Eg:&lt;/p&gt;

&lt;p&gt;(apply pr (range 5000))&lt;/p&gt;</description>
                <environment></environment>
            <key id="14236">CONTRIB-76</key>
            <summary>(pr x &amp; more) makes a self-call, which can lead to stack overflow</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sat, 17 Apr 2010 17:20:00 -0500</created>
                <updated>Tue, 24 Aug 2010 16:33:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 16:33:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25802" author="importer" created="Tue, 24 Aug 2010 16:33:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/76&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/76&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-fixed-stack-consumpton-in-pr-more.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/cXM85ssJqr37KVeJe5d-aX/download/cXM85ssJqr37KVeJe5d-aX&quot;&gt;https://www.assembla.com/spaces/clojure/documents/cXM85ssJqr37KVeJe5d-aX/download/cXM85ssJqr37KVeJe5d-aX&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25803" author="importer" created="Tue, 24 Aug 2010 16:33:00 -0500"  >&lt;p&gt;djpowell said: Oops - posted to contrib&apos;s assemba space rather than clojure&apos;s - will repost to clojure&apos;s space...&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>[CONTRIB-31] Contribs profiler can run into an Exception</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-31</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;The profile function from clojure.contrib.profile can run into&lt;br/&gt;
an Exception when it&apos;s argument is a lazy sequence.&lt;br/&gt;
Reproduce this problem:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(use &apos;clojure.contrib.profile)

(defn foo [x] (prof :foo (+ x 10)))

(profile (map foo (range 5))) ==&amp;gt;
java.lang.IllegalArgumentException: Wrong number of args passed to: core$max

(profile (pmap foo (range 5))) ==&amp;gt;
java.lang.IllegalArgumentException: Wrong number of args passed to: core$max

(profile (doseq [i (range 5)] (foo i))) ==&amp;gt; Works fine&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
            <key id="14191">CONTRIB-31</key>
            <summary>Contribs profiler can run into an Exception</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stu">Stuart Halloway</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 10 Sep 2009 16:40:00 -0500</created>
                <updated>Tue, 24 Aug 2010 15:28:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 15:28:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25610" author="importer" created="Tue, 24 Aug 2010 15:28:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/31&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/31&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25611" author="importer" created="Tue, 24 Aug 2010 15:28:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25612" author="importer" created="Tue, 24 Aug 2010 15:28:00 -0500"  >&lt;p&gt;stu said: The problem isn&apos;t lazy sequences, but the absence of any data to report on. Commit 6dd033d9e12337f6630faa3d3f5c2e901a28c4f4 prevents the exception, and causes the printed report to be empty in the case there is nothing to report. &lt;/p&gt;

&lt;p&gt;On the calling side, the examples shown above aren&apos;t profiling anything, because the lazy calls are never evaluated. You should use some kind of &quot;do&quot; form instead.&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>[CONTRIB-65] pprint depends on order of compilation</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-65</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;pprint causes problems with the build process:&lt;/p&gt;

&lt;p&gt;1. c.c.pprint.ColumnWriter&lt;br/&gt;
2. c.c.pprint.PrettyWriter&lt;br/&gt;
3. c.c.pprint&lt;/p&gt;

&lt;p&gt;The first two are gen-class&apos;d, and PrettyWriter extends the class&lt;br/&gt;
generated for ColumnWriter.&lt;/p&gt;

&lt;p&gt;Unless they are compiled in exactly the order given above, the build&lt;br/&gt;
fails with a ClassNotFoundException.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14225">CONTRIB-65</key>
            <summary>pprint depends on order of compilation</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sun, 31 Jan 2010 00:09:00 -0600</created>
                <updated>Tue, 24 Aug 2010 15:08:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 15:08:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25768" author="importer" created="Tue, 24 Aug 2010 15:08:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/65&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/65&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25769" author="importer" created="Tue, 24 Aug 2010 15:08:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/3275810556b075ff9a3a0abc0d08b3a19ee46bae&quot;&gt;revision:3275810556b075ff9a3a0abc0d08b3a19ee46bae&lt;/a&gt;) pprint: Move gen-class expressions to separate file; refs #65&lt;/p&gt;

&lt;p&gt;To avoid order-of-compilation issues,&lt;br/&gt;
this patch puts the gen-class expressions&lt;br/&gt;
for ColumnWriter and PrettyWriter in a&lt;br/&gt;
separate file, rather than in the ns&lt;br/&gt;
declarations.&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25770" author="importer" created="Tue, 24 Aug 2010 15:08:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/aa34fb9e52fa500c99bb45448bdfcd4020db5392&quot;&gt;revision:aa34fb9e52fa500c99bb45448bdfcd4020db5392&lt;/a&gt;) Reenable compiling of test namespaces in POM; refs #65&lt;/p&gt;

&lt;p&gt;But disable tests of pprint, which fail currently&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25771" author="importer" created="Tue, 24 Aug 2010 15:08:00 -0500"  >&lt;p&gt;stuart.sierra said: I think I have fixed this by placing the gen-class directives in a separate file; only that file will be AOT-compiled.&lt;/p&gt;</comment>
                    <comment id="25772" author="importer" created="Tue, 24 Aug 2010 15:08:00 -0500"  >&lt;p&gt;tomfaulhaber said: What a mess! This seems like a big problem with gen-class if we have to jump through this many hoops to make it work once we have more than one class in a hierarchy.&lt;/p&gt;

&lt;p&gt;Of course it worked fine back in ant-land where we had control over the compilation order.&lt;/p&gt;</comment>
                    <comment id="25773" author="importer" created="Tue, 24 Aug 2010 15:08:00 -0500"  >&lt;p&gt;stuart.sierra said: It&apos;s not that bad.  The Ant build script was messier.  This is more flexible, because it only AOT-compiles things that need it, i.e. gen-class.&lt;/p&gt;</comment>
                    <comment id="25774" author="importer" created="Tue, 24 Aug 2010 15:08:00 -0500"  >&lt;p&gt;cemerick said: I mentioned this elsewhere, but perhaps there&apos;s a reason why this isn&apos;t workable in this case: I believe if you require clojure.contrib.pprint.ColumnWriter in PrettyWriter&apos;s ns declaration (perhaps before the :gen-class form?), then the compiler will visit and gen CW before attempting to gen-class PW.&lt;/p&gt;

&lt;p&gt;This would eliminate the need to explicitly specify which namespaces to compile.&lt;/p&gt;</comment>
                    <comment id="25775" author="importer" created="Tue, 24 Aug 2010 15:08:00 -0500"  >&lt;p&gt;stuart.sierra said: Tried it. Didn&apos;t work.&lt;/p&gt;</comment>
                    <comment id="25776" author="importer" created="Tue, 24 Aug 2010 15:08:00 -0500"  >&lt;p&gt;stu said: Updating tickets (#2, #3, #33, #38, #51, #52, #65, #67, #70)&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>[CONTRIB-63] duck-streams open as resource what isn&apos;t File or URL</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-63</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Currently: When duck-streams is given a string, it attempts to open it for reading as a URL and if that fails it tries the string as a path specifying a File. When the string doesn&apos;t specify a readable file either, we fail.&lt;/p&gt;

&lt;p&gt;I&apos;d like to see duck-streams try to resolve the string as a resource name before finally giving up.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14223">CONTRIB-63</key>
            <summary>duck-streams open as resource what isn&apos;t File or URL</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="stu">Stuart Halloway</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Tue, 26 Jan 2010 22:39:00 -0600</created>
                <updated>Tue, 24 Aug 2010 15:04:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 15:04:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25760" author="importer" created="Tue, 24 Aug 2010 15:04:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/63&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/63&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-teach-duck-streams-classpath-on62.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/a8_B2gcSmr37PueJe5aVNr/download/a8_B2gcSmr37PueJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/a8_B2gcSmr37PueJe5aVNr/download/a8_B2gcSmr37PueJe5aVNr&lt;/a&gt;&lt;br/&gt;
0001-teach-duck-streams-classpath.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/a8_zgOcSmr37PueJe5aVNr/download/a8_zgOcSmr37PueJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/a8_zgOcSmr37PueJe5aVNr/download/a8_zgOcSmr37PueJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25761" author="importer" created="Tue, 24 Aug 2010 15:04:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25762" author="importer" created="Tue, 24 Aug 2010 15:04:00 -0500"  >&lt;p&gt;stu said: I am going to reject this patch for now, because I don&apos;t like:&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;the double-purposing of filelike names. If a &quot;foo/bar&quot; points to something on the classpath, and something different on the filesystem, which one should dominate?&lt;/li&gt;
	&lt;li&gt;the asymmetry with writing: you can&apos;t write to things on the classpath, so writer and reader would become asymmetric.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Better IMO just to be explicit about hitting the classpath.&lt;/p&gt;</comment>
                    <comment id="25763" author="importer" created="Tue, 24 Aug 2010 15:04:00 -0500"  >&lt;p&gt;bpsm said: Fair enough. The overloaded meaning of &apos;path-like-string&apos; isn&apos;t pretty.  As an alternative, perhaps you would consider including:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(defn #^URL resource
  &quot;Return the URL of the named resource on the CLASSPATH.
nil indicates no such resource was found.&quot;
  [#^&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; name]
  (.getResource (clojure.lang.RT/baseLoader) name))
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;
This would allow formulations like:
&amp;lt;pre&amp;gt;{{(input-stream (resource &lt;span class=&quot;code-quote&quot;&gt;&quot;foo/bar.gif&quot;&lt;/span&gt;))}}&amp;lt;/pre&amp;gt;
or even:
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;(-?&amp;gt; &lt;span class=&quot;code-quote&quot;&gt;&quot;foo/bar.gif&quot;&lt;/span&gt; resource input-stream)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Which is reasonably compact and makes the meaning of the string clear.&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>[CONTRIB-32] Unknown severity level causes NPE</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-32</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;$ cat .clojure
/opt/clojure/clojure.jar:/opt/clojure-contrib/clojure-contrib.jar:lib/commons-logging-1.1.1.jar
$ clj
Clojure 1.1.0-alpha-SNAPSHOT
user=&amp;gt; (use &apos;clojure.contrib.logging)
nil
user=&amp;gt; (log :info &lt;span class=&quot;code-quote&quot;&gt;&quot;Hello, world.&quot;&lt;/span&gt;)   
Sep 21, 2009 3:44:03 PM clojure.contrib.logging$eval__92$impl_write_BANG___100 invoke
INFO: Hello, world.
nil
user=&amp;gt; (log :bar &lt;span class=&quot;code-quote&quot;&gt;&quot;Hello, world.&quot;&lt;/span&gt;) 
java.lang.NullPointerException (NO_SOURCE_FILE:0)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I hit this when using :severe as a log level, which should actually be :error.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14192">CONTRIB-32</key>
            <summary>Unknown severity level causes NPE</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="ataggart">Alexander Taggart</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Tue, 22 Sep 2009 01:48:00 -0500</created>
                <updated>Tue, 24 Aug 2010 14:35:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 14:35:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25613" author="importer" created="Tue, 24 Aug 2010 14:35:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/32&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/32&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
logging.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/bCd_BmPWmr3OVpeJe5afGb/download/bCd_BmPWmr3OVpeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/bCd_BmPWmr3OVpeJe5afGb/download/bCd_BmPWmr3OVpeJe5afGb&lt;/a&gt;&lt;br/&gt;
logging.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/aOuXXKPWqr3OVpeJe5afGb/download/aOuXXKPWqr3OVpeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/aOuXXKPWqr3OVpeJe5afGb/download/aOuXXKPWqr3OVpeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25614" author="importer" created="Tue, 24 Aug 2010 14:35:00 -0500"  >&lt;p&gt;rnewman said: [&lt;a href=&quot;file:bCd_BmPWmr3OVpeJe5afGb&quot;&gt;file:bCd_BmPWmr3OVpeJe5afGb&lt;/a&gt;]: Patch.&lt;/p&gt;</comment>
                    <comment id="25615" author="importer" created="Tue, 24 Aug 2010 14:35:00 -0500"  >&lt;p&gt;rnewman said: Added a patch. This does three things:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Examines the level in (log). If it&apos;s a keyword at compile-time, transform it now; otherwise, transform it later.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Transformation maps j.u.l terms to those used by c.c.l. This is handy, though the mapping (of course) does not round-trip perfectly.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Unrecognized terms cause an exception to be thrown.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The best test is &lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(require [&apos;clojure.contrib.logging :as &apos;log])
(log/log ((fn []:severe)) &lt;span class=&quot;code-quote&quot;&gt;&quot;hi&quot;&lt;/span&gt;)   ; Test runtime level computation. 
(log/log :boo &lt;span class=&quot;code-quote&quot;&gt;&quot;ho&quot;&lt;/span&gt;)
(log/log :fine &lt;span class=&quot;code-quote&quot;&gt;&quot;ha&quot;&lt;/span&gt;)
(log/log :info &lt;span class=&quot;code-quote&quot;&gt;&quot;ha&quot;&lt;/span&gt;)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                    <comment id="25616" author="importer" created="Tue, 24 Aug 2010 14:35:00 -0500"  >&lt;p&gt;rnewman said: [&lt;a href=&quot;file:aOuXXKPWqr3OVpeJe5afGb&quot;&gt;file:aOuXXKPWqr3OVpeJe5afGb&lt;/a&gt;]: Correct quoting.&lt;/p&gt;</comment>
                    <comment id="25617" author="importer" created="Tue, 24 Aug 2010 14:35:00 -0500"  >&lt;p&gt;ataggart said: The only valid levels are the ones specified in the documentation, those levels in common use across multiple logging implementations.  If one uses an invalid value one should not expect it to work.&lt;/p&gt;

&lt;p&gt;The &quot;correct&quot; solution would be to provide a better exception in this error case.&lt;/p&gt;</comment>
                    <comment id="25618" author="importer" created="Tue, 24 Aug 2010 14:35:00 -0500"  >&lt;p&gt;rnewman said: &quot;If one uses an invalid value one should not expect it to work&quot;&lt;/p&gt;

&lt;p&gt;No, but one should expect something more useful than a NPE. The patch I attached throws an exception when an invalid value is used (indeed, at compile time if it&apos;s a constant keyword).&lt;/p&gt;

&lt;p&gt;c.c.l already translates from one set of log levels to those in use by the underlying implementation (e.g., if you&apos;re using Java Logging it&apos;ll convert :debug to FINE). This patch ensures that you can use the other set of names, too, which seems perfectly reasonable, but I can understand if you disagree. In that case, simply change translate-log-level to something like&lt;/p&gt;

&lt;p&gt;(defn translate-log-level &lt;span class=&quot;error&quot;&gt;&amp;#91;level&amp;#93;&lt;/span&gt;&lt;br/&gt;
  (or (#{:trace :debug :info :warn :error :fatal} level)&lt;br/&gt;
      (throw (new Exception (str &quot;Unknown log level &quot; (prn-str level))))))&lt;/p&gt;

&lt;p&gt;and commit. I&apos;m not particularly fussed either way, but the validation needs to be done.&lt;/p&gt;</comment>
                    <comment id="25619" author="importer" created="Tue, 24 Aug 2010 14:35:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#28, #32, #45, #47, #51, #19)&lt;/p&gt;</comment>
                    <comment id="25620" author="importer" created="Tue, 24 Aug 2010 14:35:00 -0500"  >&lt;p&gt;ataggart said: Handled at the protocol implementation level in new version of c.c.logging (since alternate implementations may choose to use non-standard levels).&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>[CONTRIB-30] append-spit should only write out an encoding marker once</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-30</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;In clojure.contrib.duck-streams append-spit writes out encoding&lt;br/&gt;
markers (for UnicodeLittle for example this is a FEFF in hex)&lt;br/&gt;
each time it appends to a file. This should happen only when&lt;br/&gt;
the file is initially created.&lt;/p&gt;

&lt;p&gt;Test case for reproducing this behaviour:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(use &apos;clojure.contrib.duck-streams)

(binding [*&lt;span class=&quot;code-keyword&quot;&gt;default&lt;/span&gt;-encoding* &lt;span class=&quot;code-quote&quot;&gt;&quot;UnicodeLittle&quot;&lt;/span&gt;]
  (append-spit &lt;span class=&quot;code-quote&quot;&gt;&quot;/foo.txt&quot;&lt;/span&gt; &lt;span class=&quot;code-quote&quot;&gt;&quot;Line 1\n&quot;&lt;/span&gt;))
(binding [*&lt;span class=&quot;code-keyword&quot;&gt;default&lt;/span&gt;-encoding* &lt;span class=&quot;code-quote&quot;&gt;&quot;UnicodeLittle&quot;&lt;/span&gt;]
  (append-spit &lt;span class=&quot;code-quote&quot;&gt;&quot;/foo.txt&quot;&lt;/span&gt; &lt;span class=&quot;code-quote&quot;&gt;&quot;Line 2\n&quot;&lt;/span&gt;))

(slurp &lt;span class=&quot;code-quote&quot;&gt;&quot;c:/foo.txt&quot;&lt;/span&gt; &lt;span class=&quot;code-quote&quot;&gt;&quot;UnicodeLittle&quot;&lt;/span&gt;)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The slurp outputs&lt;br/&gt;
&quot;Line 1\n?Line 2\n&quot;&lt;br/&gt;
The expected output is:&lt;br/&gt;
&quot;Line 1\nLine 2\n&quot;&lt;/p&gt;</description>
                <environment></environment>
            <key id="14190">CONTRIB-30</key>
            <summary>append-spit should only write out an encoding marker once</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="stu">Stuart Halloway</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 10 Sep 2009 15:36:00 -0500</created>
                <updated>Tue, 24 Aug 2010 14:28:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 14:28:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25607" author="importer" created="Tue, 24 Aug 2010 14:28:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/30&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/30&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25608" author="importer" created="Tue, 24 Aug 2010 14:28:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25609" author="importer" created="Tue, 24 Aug 2010 14:28:00 -0500"  >&lt;p&gt;stu said: I am not sure there is a good answer here. The code above chooses an encoding with an explicit marker, and gets what it asks for. &lt;img class=&quot;emoticon&quot; src=&quot;http://dev.clojure.org/jira/images/icons/emoticons/sad.gif&quot; height=&quot;20&quot; width=&quot;20&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;One proposed solution (&lt;a href=&quot;http://github.com/sergey-miryanov/clojure-contrib/commits/bug-30&quot;&gt;http://github.com/sergey-miryanov/clojure-contrib/commits/bug-30&lt;/a&gt;) tries to detect this scenario, and recover via a hard-coded mapping between encodings-with-markers and similar-encodings-without. But I don&apos;t think this can work in general, because the set of possible encodings is open and the Charset API doesn&apos;t provide a mapping between the with-markers and without-markers versions.&lt;/p&gt;

&lt;p&gt;Sorry, and please feel free to reopen this if I am missing an obvious approach.&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>[CONTRIB-71] patch for changing assert-args over to :pre and :post for c.c.mock</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-71</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;I&apos;ve cleaned up the documentation and got rid of the old assert-args code from c.c.mock.  The attached patches contain the two commits I made on my repository.  I&apos;m new to patches and git so let me know if I missed anything obvious!&lt;/p&gt;</description>
                <environment></environment>
            <key id="14231">CONTRIB-71</key>
            <summary>patch for changing assert-args over to :pre and :post for c.c.mock</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <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="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Mon, 8 Feb 2010 23:54:00 -0600</created>
                <updated>Tue, 24 Aug 2010 14:17:00 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25794" author="importer" created="Tue, 24 Aug 2010 14:17:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/71&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/71&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-cleaned-up-formatting-and-improved-documentation-of-.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/bANPRCfq0r34l9eJe5afGb/download/bANPRCfq0r34l9eJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/bANPRCfq0r34l9eJe5afGb/download/bANPRCfq0r34l9eJe5afGb&lt;/a&gt;&lt;br/&gt;
0002-removed-assert-args-macro-borrowed-from-core-and-rep.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/bANTaAfq0r34l9eJe5afGb/download/bANTaAfq0r34l9eJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/bANTaAfq0r34l9eJe5afGb/download/bANTaAfq0r34l9eJe5afGb&lt;/a&gt;&lt;br/&gt;
c.c.mock-updates.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/djL5oaC8Wr37DOeJe5cbLr/download/djL5oaC8Wr37DOeJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/djL5oaC8Wr37DOeJe5cbLr/download/djL5oaC8Wr37DOeJe5cbLr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25795" author="importer" created="Tue, 24 Aug 2010 14:17:00 -0500"  >&lt;p&gt;matt.clark.1 said: [&lt;a href=&quot;file:djL5oaC8Wr37DOeJe5cbLr&quot;&gt;file:djL5oaC8Wr37DOeJe5cbLr&lt;/a&gt;]: Use only this patch. The other two are hopelessly out of date.&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>[CONTRIB-14] Performance enhancements needed for logging</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-14</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;ul&gt;
	&lt;li&gt;The enabled check should occur prior to sending off to an agent.&lt;/li&gt;
	&lt;li&gt;The allow-direct-logging flag should default to true.&lt;/li&gt;
	&lt;li&gt;Replace the map of implementation-specific functions with a direct def of them.&lt;/li&gt;
	&lt;li&gt;Memoize the get-log function.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
            <key id="14174">CONTRIB-14</key>
            <summary>Performance enhancements needed for logging</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="ataggart">Alexander Taggart</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 13 Aug 2009 10:36:00 -0500</created>
                <updated>Tue, 24 Aug 2010 14:12:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 14:12:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25541" author="importer" created="Tue, 24 Aug 2010 14:12:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/14&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/14&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
logging-14.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/bUbU0yH9Wr3RwjeJe5afGb/download/bUbU0yH9Wr3RwjeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/bUbU0yH9Wr3RwjeJe5afGb/download/bUbU0yH9Wr3RwjeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25542" author="importer" created="Tue, 24 Aug 2010 14:12:00 -0500"  >&lt;p&gt;ataggart said: [&lt;a href=&quot;file:bUbU0yH9Wr3RwjeJe5afGb&quot;&gt;file:bUbU0yH9Wr3RwjeJe5afGb&lt;/a&gt;]: Patch to make performance enhancements&lt;/p&gt;</comment>
                    <comment id="25543" author="importer" created="Tue, 24 Aug 2010 14:12:00 -0500"  >&lt;p&gt;tomfaulhaber said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/44e4c23000a7cdee5395006dadc2eb1b58bc9b9d&quot;&gt;revision:44e4c23000a7cdee5395006dadc2eb1b58bc9b9d&lt;/a&gt;) Implementation changes to improve performance&lt;br/&gt;
see #14&lt;/p&gt;

&lt;p&gt;Signed-off-by: Tom Faulhaber &amp;lt;git_net@infolace.com&amp;gt;&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-69] maven downloads clojure jar file even if -Denv=local is specified</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-69</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;maven downloads the snapshot even if built with mvn -Denv=local and -Dclojure.jar=&amp;lt;absolute path to the locally built jar&amp;gt; package.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14229">CONTRIB-69</key>
            <summary>maven downloads clojure jar file even if -Denv=local is specified</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Mon, 1 Feb 2010 19:35:00 -0600</created>
                <updated>Tue, 24 Aug 2010 14:09:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 14:09:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25787" author="importer" created="Tue, 24 Aug 2010 14:09:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/69&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/69&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25788" author="importer" created="Tue, 24 Aug 2010 14:09:00 -0500"  >&lt;p&gt;stuart.sierra said: Latest sources use -Dclojure.jar as the trigger for a local build.&lt;/p&gt;

&lt;p&gt;You can also add -o to the mvn command line to prevent downloading artifacts.&lt;/p&gt;

&lt;p&gt;Please ask questions on the mailing list before creating tickets.  Thanks,&lt;br/&gt;
-SS&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>[CONTRIB-67] c.c.json.read: accept any java.io.Reader</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-67</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;not just PushbackReader&lt;/p&gt;</description>
                <environment></environment>
            <key id="14227">CONTRIB-67</key>
            <summary>c.c.json.read: accept any java.io.Reader</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sun, 31 Jan 2010 04:10:00 -0600</created>
                <updated>Tue, 24 Aug 2010 14:08:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 14:08:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25782" author="importer" created="Tue, 24 Aug 2010 14:08:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/67&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/67&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25783" author="importer" created="Tue, 24 Aug 2010 14:08:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/8d5f9fa4920fb6afb0e8b2859e5d4a4de2f7ef9f&quot;&gt;revision:8d5f9fa4920fb6afb0e8b2859e5d4a4de2f7ef9f&lt;/a&gt;) c.c.json.read: accept any Reader type; fixes #67&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25784" author="importer" created="Tue, 24 Aug 2010 14:08:00 -0500"  >&lt;p&gt;stu said: Updating tickets (#2, #3, #33, #38, #51, #52, #65, #67, #70)&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>[CONTRIB-7] Logging functions</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-7</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Logging functions to interact with existing java logging implementations.&lt;/p&gt;

&lt;p&gt;Discussed in clojure group:  &lt;a href=&quot;http://groups.google.com/group/clojure/t/b21d1241d47d682f&quot;&gt;http://groups.google.com/group/clojure/t/b21d1241d47d682f&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
            <key id="14167">CONTRIB-7</key>
            <summary>Logging functions</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Fri, 24 Jul 2009 04:18:00 -0500</created>
                <updated>Tue, 24 Aug 2010 14:01:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 14:01:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25517" author="importer" created="Tue, 24 Aug 2010 14:01:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/7&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/7&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
logging.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/d2q6qwD-8r3QuDeJe5aVNr/download/d2q6qwD-8r3QuDeJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/d2q6qwD-8r3QuDeJe5aVNr/download/d2q6qwD-8r3QuDeJe5aVNr&lt;/a&gt;&lt;br/&gt;
logging-doc.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/bqM80SEYmr3OxIeJe5aVNr/download/bqM80SEYmr3OxIeJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/bqM80SEYmr3OxIeJe5aVNr/download/bqM80SEYmr3OxIeJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25518" author="importer" created="Tue, 24 Aug 2010 14:01:00 -0500"  >&lt;p&gt;ataggart said: [&lt;a href=&quot;file:d2q6qwD-8r3QuDeJe5aVNr&quot;&gt;file:d2q6qwD-8r3QuDeJe5aVNr&lt;/a&gt;]: implementation patch&lt;/p&gt;</comment>
                    <comment id="25519" author="importer" created="Tue, 24 Aug 2010 14:01:00 -0500"  >&lt;p&gt;ataggart said: [&lt;a href=&quot;file:bqM80SEYmr3OxIeJe5aVNr&quot;&gt;file:bqM80SEYmr3OxIeJe5aVNr&lt;/a&gt;]: Cleaned up some of the docs and added the copyright notice&lt;/p&gt;</comment>
                    <comment id="25520" author="importer" created="Tue, 24 Aug 2010 14:01:00 -0500"  >&lt;p&gt;tomfaulhaber said: Fixed with commit  beba7b088ef67a16c57f592b7d845a6f3b8dfa0d&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>[CONTRIB-6] Add set of regular expression functions</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-6</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;A couple of RE utilities I developed for Cascade that I no longer need but are generally useful.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14166">CONTRIB-6</key>
            <summary>Add set of regular expression functions</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="hlship">Howard Lewis Ship</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 23 Jul 2009 01:09:00 -0500</created>
                <updated>Tue, 24 Aug 2010 14:00:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 14:00:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25512" author="importer" created="Tue, 24 Aug 2010 14:00:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/6&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/6&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
re.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/bJLaTSDWWr3PNFeJe5aVNr/download/bJLaTSDWWr3PNFeJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/bJLaTSDWWr3PNFeJe5aVNr/download/bJLaTSDWWr3PNFeJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25513" author="importer" created="Tue, 24 Aug 2010 14:00:00 -0500"  >&lt;p&gt;hlship said: [&lt;a href=&quot;file:bJLaTSDWWr3PNFeJe5aVNr&quot;&gt;file:bJLaTSDWWr3PNFeJe5aVNr&lt;/a&gt;]: patch file&lt;/p&gt;</comment>
                    <comment id="25514" author="importer" created="Tue, 24 Aug 2010 14:00:00 -0500"  >&lt;p&gt;stuart.sierra said: An equivalent to re-map is present in str-utils2 &amp;amp; 3, not sure about re-partition&lt;/p&gt;</comment>
                    <comment id="25515" author="importer" created="Tue, 24 Aug 2010 14:00:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25516" author="importer" created="Tue, 24 Aug 2010 14:00:00 -0500"  >&lt;p&gt;stu said: re-partition seems to be on the borderline in terms of generality. If it really has important use cases, please re-implement to be lazy.&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>[CONTRIB-4] Purge removed libraries from load_all.clj</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-4</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;(load &quot;clojure/contrib/load_all&quot;) has not worked since the penultimate commit to clojure-contrib, as libraries are being moved to core. &lt;b&gt;all-contrib-libs&lt;/b&gt; needs to be adjusted to match the new set of libraries.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14164">CONTRIB-4</key>
            <summary>Purge removed libraries from load_all.clj</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stu">Stuart Halloway</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 1 Jul 2009 20:53:00 -0500</created>
                <updated>Tue, 24 Aug 2010 13:51:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 13:51:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25504" author="importer" created="Tue, 24 Aug 2010 13:51:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/4&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/4&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
load_all.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/c6XnLWzMGr3QkbeJe5aVNr/download/c6XnLWzMGr3QkbeJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/c6XnLWzMGr3QkbeJe5aVNr/download/c6XnLWzMGr3QkbeJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25505" author="importer" created="Tue, 24 Aug 2010 13:51:00 -0500"  >&lt;p&gt;hircus said: [&lt;a href=&quot;file:c6XnLWzMGr3QkbeJe5aVNr&quot;&gt;file:c6XnLWzMGr3QkbeJe5aVNr&lt;/a&gt;]: git-generated diff to load_all.clj&lt;/p&gt;</comment>
                    <comment id="25506" author="importer" created="Tue, 24 Aug 2010 13:51:00 -0500"  >&lt;p&gt;scgilardi said: If it&apos;s feasible, it would be good to add load-all to the tests that are run by &quot;ant test&quot; so it gets run frequently. (I run ant test every time I build clojure and contrib.)&lt;/p&gt;</comment>
                    <comment id="25507" author="importer" created="Tue, 24 Aug 2010 13:51:00 -0500"  >&lt;p&gt;scgilardi said: In case somebody likes this idea gets to this before I do: I think it would be cool for load-all to figure out what all the clojure-contrib libraries are on its own: perhaps by searching in the resources in the clojure-contrib Jar file for ns declarations that are exactly &quot;clojure.contrib.&lt;span class=&quot;error&quot;&gt;&amp;#91;^.&amp;#93;&lt;/span&gt;+$&quot; (only one component after clojure.contrib).&lt;/p&gt;

&lt;p&gt;We could then maintain a list in the load-all vicinity of only those libraries that should &lt;b&gt;not&lt;/b&gt; be loaded by load-all. That seems much easier to maintain as we&apos;ll automatically be prompted (by a failure to load) if we forget an exclusion.&lt;/p&gt;</comment>
                    <comment id="25508" author="importer" created="Tue, 24 Aug 2010 13:51:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25509" author="importer" created="Tue, 24 Aug 2010 13:51:00 -0500"  >&lt;p&gt;stu said: Here&apos;s the approach I took:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;moved the file from main to test&lt;/li&gt;
	&lt;li&gt;used find-namespace to find all the namespaces&lt;/li&gt;
	&lt;li&gt;removed the deprecated ones&lt;/li&gt;
	&lt;li&gt;manufactured one unit test per namespace that tries to load the namespace&lt;/li&gt;
&lt;/ul&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>[CONTRIB-3] Agent shutdown introduces AccessControlException when compiling via ant</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-3</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;The change that fixes issue &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/124-GC--Issue-120--Determine-mechanism-for-controlling-automatic-shutdown-of-Agents--with-a-default-p---&quot;&gt;Clojure Ticket #124&lt;/a&gt; introduces an AccessControlException when building via ant on java 1.5 and java 1.6/osx:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;[java] java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThread)
[java] at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
[java] at java.security.AccessController.checkPermission(AccessController.java:427)
[java] at java.util.concurrent.ThreadPoolExecutor.shutdown(ThreadPoolExecutor.java:894)
...&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;For discussion see &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/124-GC--Issue-120--Determine-mechanism-for-controlling-automatic-shutdown-of-Agents--with-a-default-p---#comment:8&quot;&gt;this post&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The attached patch is a modification to &quot;build.xml&quot; which fixes the problem for java 1.5/osx and java 1.6/osx.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14163">CONTRIB-3</key>
            <summary>Agent shutdown introduces AccessControlException when compiling via ant</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Mon, 22 Jun 2009 18:33:00 -0500</created>
                <updated>Tue, 24 Aug 2010 13:46:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 13:46:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25499" author="importer" created="Tue, 24 Aug 2010 13:46:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/3&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/3&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
compilation.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/d7aye4x0er3RUGeJe5aVNr/download/d7aye4x0er3RUGeJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/d7aye4x0er3RUGeJe5aVNr/download/d7aye4x0er3RUGeJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25500" author="importer" created="Tue, 24 Aug 2010 13:46:00 -0500"  >&lt;p&gt;achimpassen said: [&lt;a href=&quot;file:d7aye4x0er3RUGeJe5aVNr&quot;&gt;file:d7aye4x0er3RUGeJe5aVNr&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25501" author="importer" created="Tue, 24 Aug 2010 13:46:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25502" author="importer" created="Tue, 24 Aug 2010 13:46:00 -0500"  >&lt;p&gt;oranenj said: As clojure-contrib is built by Maven now and there is no build.xml in the repository, I will consider this ticket fixed.&lt;/p&gt;</comment>
                    <comment id="25503" author="importer" created="Tue, 24 Aug 2010 13:46:00 -0500"  >&lt;p&gt;stu said: Updating tickets (#2, #3, #33, #38, #51, #52, #65, #67, #70)&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>[CONTRIB-50] Allow for externally-provided db connection to c.c.sql</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-50</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;This small patch allows an &lt;tt&gt;:external&lt;/tt&gt; key in a db-spec map, to allow the use of existing database connection.&lt;/p&gt;

&lt;p&gt;Among other benefits, this would make it trivial to use a Proxool db connection-pool with c.c.sql.&lt;/p&gt;

&lt;p&gt;(Suggestions for alternative key-names are welcome. Maybe &lt;tt&gt;:instance&lt;/tt&gt; or &lt;tt&gt;:connection-object&lt;/tt&gt; would be more clear?)&lt;/p&gt;</description>
                <environment></environment>
            <key id="14210">CONTRIB-50</key>
            <summary>Allow for externally-provided db connection to c.c.sql</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="scgilardi">Stephen C. Gilardi</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Fri, 11 Dec 2009 17:05:00 -0600</created>
                <updated>Tue, 24 Aug 2010 13:32:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 13:32:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25704" author="importer" created="Tue, 24 Aug 2010 13:32:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/50&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/50&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
c-c-sql-external-key.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/bsf2Y-5NCr3QaYeJe5afGb/download/bsf2Y-5NCr3QaYeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/bsf2Y-5NCr3QaYeJe5afGb/download/bsf2Y-5NCr3QaYeJe5afGb&lt;/a&gt;&lt;br/&gt;
ticket-50-scg-1.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/d4S8n-6m8r3PaPeJe5aVNr/download/d4S8n-6m8r3PaPeJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/d4S8n-6m8r3PaPeJe5aVNr/download/d4S8n-6m8r3PaPeJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25705" author="importer" created="Tue, 24 Aug 2010 13:32:00 -0500"  >&lt;p&gt;scgilardi said: Hi Graham,&lt;/p&gt;

&lt;p&gt;I recall now why I didn&apos;t have this as an option already. with-connection retrieves an open connection based on the info in db-spec, allows body to use it, then closes it. If we have the connection object in the db-spec object itself, it will only be good for one use.&lt;/p&gt;

&lt;p&gt;How about this as an alternative to your patch (in addition to the other methods that will remain): Allow the user to provide a function (:factory) whose argument is a map of the remaining keys and values in the db-spec object. To retrieve a new, open connection, with-connection would call the factory object supplying a map of its params.&lt;/p&gt;

&lt;p&gt;I think this will provide enough of an escape hatch for &lt;b&gt;any&lt;/b&gt; source of open database connections to be used while still preserving db-spec as an immutable object that specifies how to retrieve them.&lt;/p&gt;</comment>
                    <comment id="25706" author="importer" created="Tue, 24 Aug 2010 13:32:00 -0500"  >&lt;p&gt;scgilardi said: [&lt;a href=&quot;file:d4S8n-6m8r3PaPeJe5aVNr&quot;&gt;file:d4S8n-6m8r3PaPeJe5aVNr&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25707" author="importer" created="Tue, 24 Aug 2010 13:32:00 -0500"  >&lt;p&gt;gmfawcett said: Hi Steve,&lt;/p&gt;

&lt;p&gt;I had considered the &lt;tt&gt;:factory&lt;/tt&gt; approach as an option, and would be fine with it &amp;#8211; certainly it&apos;s a better general solution. &lt;/p&gt;

&lt;p&gt;In my specific case, though, auto-closing is a good thing: Proxool connections are proxy-objects, and closing one signals that the underlying connection can be returned to the connection pool.&lt;/p&gt;

&lt;p&gt;I think you&apos;re proposing adding logic to (with-connection*), to not use (with-open) if the &lt;tt&gt;:factory&lt;/tt&gt; key is used? If so, perhaps we could also add a optional &lt;tt&gt;:factory-close&lt;/tt&gt; key, whose value is either&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;a cleanup function, e.g. {{{:factory-close (fn &lt;span class=&quot;error&quot;&gt;&amp;#91;conn&amp;#93;&lt;/span&gt; (.close conn))}}}&lt;/li&gt;
	&lt;li&gt;a boolean, e.g. {&lt;tt&gt;:factory-close true&lt;/tt&gt;} implies that (with-connection*) should use (with-open) to close the factory-supplied connection?&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I&apos;m happy to provide an alternate patch once we sort out the details. (I know it&apos;s only a few minutes of typing; no offense will be taken if you code something yourself and ignore my patch.)&lt;/p&gt;</comment>
                    <comment id="25708" author="importer" created="Tue, 24 Aug 2010 13:32:00 -0500"  >&lt;p&gt;gmfawcett said: Just to clarify my last comment: I understand your comment about not wanting a possibly-closed connection object as a value in the map. In my test code, the :external worked just fine &amp;#8211; in spite of the &quot;closed&quot; object in the map, I could re-use it without any trouble. Proxool must be doing some magic to make this work. But this is bad form. &lt;/p&gt;

&lt;p&gt;+1 for your :factory patch, and I&apos;m still in favour of :factory-close if you would accept a patch for (with-connection*) as well.&lt;/p&gt;</comment>
                    <comment id="25709" author="importer" created="Tue, 24 Aug 2010 13:32:00 -0500"  >&lt;p&gt;scgilardi said: I like the uniformity of using with-open on all the connections. I&apos;d like to save :factory-close until we have a usecase where it&apos;s needed. Could you please test the :factory patch in your setup? If you find that it works well for you, I&apos;d like to commit it. Thanks!&lt;/p&gt;</comment>
                    <comment id="25710" author="importer" created="Tue, 24 Aug 2010 13:32:00 -0500"  >&lt;p&gt;gmfawcett said: I&apos;ve tested your patch, and :factory works just fine for me. &lt;/p&gt;

&lt;p&gt;I withdraw the :factory-close suggestion for now, since I don&apos;t need it. (I had suggested it based on a false assumption that you were patching with-connection* as well.)&lt;/p&gt;

&lt;p&gt;Thank you!&lt;/p&gt;</comment>
                    <comment id="25711" author="importer" created="Tue, 24 Aug 2010 13:32:00 -0500"  >&lt;p&gt;importer said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/be33acd87f190d9ec2ad756d8cb31c88abca7e5f&quot;&gt;revision:be33acd87f190d9ec2ad756d8cb31c88abca7e5f&lt;/a&gt;) Add Factory as a method of obtaining open database connections, fixes #50&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-47] cl-format rounding bugs</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-47</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Reported to me by Carlos Ungil (and confirmed by me):&lt;/p&gt;

&lt;p&gt;Unfortunately there are still some issues with rounding. I&apos;ve noticed that when the&lt;br/&gt;
mantissa is rounded up from 9 to 10 the exponent is not changed&lt;br/&gt;
accordingly. As a result, we get for example&lt;br/&gt;
clojure.contrib.pprint&amp;gt; (cl-format nil &quot;~,0F&quot; 9.4) =&amp;gt; &quot;9.&quot;&lt;br/&gt;
clojure.contrib.pprint&amp;gt; (cl-format nil &quot;~,0F&quot; 9.5) =&amp;gt; &quot;1.0&quot;&lt;/p&gt;

&lt;p&gt;I&apos;ve compared the output from Clojure and Common Lisp for a handful of&lt;br/&gt;
cases. Below we see how &quot;0.10&quot; is returned instead of &quot;1.0&quot; when&lt;br/&gt;
printing 0.99 with a single digit after the decimal point. There is&lt;br/&gt;
also a minor problem with &quot;01.&quot; being printed instead of &quot;1.&quot;, but&lt;br/&gt;
returning a different representation for a number is of course not as&lt;br/&gt;
bad as returning a wrong representation.&lt;/p&gt;

&lt;p&gt;;;(map #(cl-format nil % 0.99) &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;quot;~,0F&amp;quot; &amp;quot;~,1F&amp;quot; &amp;quot;~,2F&amp;quot; &amp;quot;~,3F&amp;quot;&amp;#93;&lt;/span&gt;)&lt;br/&gt;
(&quot;01.&quot; &quot;0.10&quot; &quot;0.99&quot; &quot;0.990&quot;)&lt;br/&gt;
;;(loop for fmt in &apos;(&quot;&lt;sub&gt;,0F&quot; &quot;&lt;/sub&gt;,1F&quot; &quot;&lt;sub&gt;,2F&quot; &quot;&lt;/sub&gt;,3F&quot;) collect (format nil&lt;br/&gt;
fmt 0.99))&lt;br/&gt;
(&quot;1.&quot; &quot;1.0&quot; &quot;0.99&quot; &quot;0.990&quot;)&lt;/p&gt;

&lt;p&gt;There are also issues with negative numbers, the add-sign variable has&lt;br/&gt;
the same bug in fixed-float that it had in dollar-float but fixing&lt;br/&gt;
that is not enough to correct the problem.&lt;/p&gt;

&lt;p&gt;;; &amp;gt; (map #(cl-format nil % -0.99) &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;quot;~,0F&amp;quot; &amp;quot;~,1F&amp;quot; &amp;quot;~,2F&amp;quot; &amp;quot;~,3F&amp;quot;&amp;#93;&lt;/span&gt;)&lt;br/&gt;
(&quot;010.&quot; &quot;0-1.0&quot; &quot;0-0.99&quot; &quot;0-0.990&quot;)&lt;/p&gt;</description>
                <environment></environment>
            <key id="14207">CONTRIB-47</key>
            <summary>cl-format rounding bugs</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="tomfaulhaber">Tom Faulhaber</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 3 Dec 2009 06:07:00 -0600</created>
                <updated>Tue, 24 Aug 2010 13:25:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 13:25:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25693" author="importer" created="Tue, 24 Aug 2010 13:25:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/47&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/47&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25694" author="importer" created="Tue, 24 Aug 2010 13:25:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#28, #32, #45, #47, #51, #19)&lt;/p&gt;</comment>
                    <comment id="25695" author="importer" created="Tue, 24 Aug 2010 13:25:00 -0500"  >&lt;p&gt;tomfaulhaber said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/912e5671cc8237addf55753ff524bf283830e684&quot;&gt;revision:912e5671cc8237addf55753ff524bf283830e684&lt;/a&gt;) clojure.contrib.pprint (cl-format): Fixes to rounding and width issues in ~f and ~$. See #47.&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25696" author="importer" created="Tue, 24 Aug 2010 13:25:00 -0500"  >&lt;p&gt;tomfaulhaber said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/5a703b33391e9486548af9ae7d8c3601d6f44505&quot;&gt;revision:5a703b33391e9486548af9ae7d8c3601d6f44505&lt;/a&gt;) Remove debug prints &lt;img class=&quot;emoticon&quot; src=&quot;http://dev.clojure.org/jira/images/icons/emoticons/sad.gif&quot; height=&quot;20&quot; width=&quot;20&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;. See #47&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-20] Report progress in http.agent</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-20</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;clojure.contrib.http.agent provides no way to monitor the progress of the HTTP request/response.&lt;/p&gt;

&lt;p&gt;It would be possible to monitor the number of bytes sent and received by replacing duck-streams/copy with a function that updates an atom (or agent) with the number of bytes copied.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14180">CONTRIB-20</key>
            <summary>Report progress in http.agent</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 19 Aug 2009 23:12:00 -0500</created>
                <updated>Tue, 24 Aug 2010 13:15:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 13:15:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25559" author="importer" created="Tue, 24 Aug 2010 13:15:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/20&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/20&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25560" author="importer" created="Tue, 24 Aug 2010 13:15:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25561" author="importer" created="Tue, 24 Aug 2010 13:15:00 -0500"  >&lt;p&gt;stuart.sierra said: Let&apos;s be honest, I am never going to implement this.&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>[CONTRIB-9] Invoking namespaced log macro is tedious</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-9</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Current style is fine when using :use, but looks ugly when using :require.  For example:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(ns foo.bar
    (:require (clojure.contrib [logging :as log])))
(log/log :debug &lt;span class=&quot;code-quote&quot;&gt;&quot;Hello World!&quot;&lt;/span&gt;)&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

Adding convenience macros &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; the 6 logging levels would mean invoking:
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;(log/debug &lt;span class=&quot;code-quote&quot;&gt;&quot;Hello World!&quot;&lt;/span&gt;)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Which looks much nicer.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14169">CONTRIB-9</key>
            <summary>Invoking namespaced log macro is tedious</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="ataggart">Alexander Taggart</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Tue, 4 Aug 2009 01:44:00 -0500</created>
                <updated>Tue, 24 Aug 2010 13:06:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 13:06:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25524" author="importer" created="Tue, 24 Aug 2010 13:06:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/9&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/9&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
logging-4.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dBZ8R2Gmmr3QoLeJe5aVNr/download/dBZ8R2Gmmr3QoLeJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dBZ8R2Gmmr3QoLeJe5aVNr/download/dBZ8R2Gmmr3QoLeJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25525" author="importer" created="Tue, 24 Aug 2010 13:06:00 -0500"  >&lt;p&gt;ataggart said: [&lt;a href=&quot;file:dBZ8R2Gmmr3QoLeJe5aVNr&quot;&gt;file:dBZ8R2Gmmr3QoLeJe5aVNr&lt;/a&gt;]: Implementation patch&lt;/p&gt;</comment>
                    <comment id="25526" author="importer" created="Tue, 24 Aug 2010 13:06:00 -0500"  >&lt;p&gt;tomfaulhaber said: Fixed in commit  6c95fe9&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>[CONTRIB-38] repl_utils addition: apropos</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-38</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;An implementation of apropos, as found in some Scheme implementations: given a symbol or a string s, return all definitions in currently-loaded namespaces that contains s as part of their names.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14198">CONTRIB-38</key>
            <summary>repl_utils addition: apropos</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stu">Stuart Halloway</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Fri, 23 Oct 2009 07:53:00 -0500</created>
                <updated>Tue, 24 Aug 2010 11:55:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 11:55:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25641" author="importer" created="Tue, 24 Aug 2010 11:55:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/38&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/38&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
repl_utils_apropos.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/agSq5KV7mr3OndeJe5afGb/download/agSq5KV7mr3OndeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/agSq5KV7mr3OndeJe5afGb/download/agSq5KV7mr3OndeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25642" author="importer" created="Tue, 24 Aug 2010 11:55:00 -0500"  >&lt;p&gt;hircus said: [&lt;a href=&quot;file:agSq5KV7mr3OndeJe5afGb&quot;&gt;file:agSq5KV7mr3OndeJe5afGb&lt;/a&gt;]: adds apropos function&lt;/p&gt;</comment>
                    <comment id="25643" author="importer" created="Tue, 24 Aug 2010 11:55:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25644" author="importer" created="Tue, 24 Aug 2010 11:55:00 -0500"  >&lt;p&gt;stu said: Michel,&lt;/p&gt;

&lt;p&gt;I modified the apropos function to also work with regular expressions. If that is a problem please create another ticket or email me directly.&lt;/p&gt;

&lt;p&gt;Sorry this took so long to get in.&lt;/p&gt;

&lt;p&gt;Stu&lt;/p&gt;</comment>
                    <comment id="25645" author="importer" created="Tue, 24 Aug 2010 11:55:00 -0500"  >&lt;p&gt;stu said: Updating tickets (#2, #3, #33, #38, #51, #52, #65, #67, #70)&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>[CONTRIB-39] tracing enhancement: dotrace</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-39</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;As &lt;a href=&quot;http://groups.google.com/group/clojure/browse_thread/thread/e438e926eb33654c&quot;&gt;discussed&lt;/a&gt; a few months ago on Google Groups:&lt;/p&gt;

&lt;p&gt;dotrace lets one easily trace calls to the named functions, by rebinding them so that calls to these functions within the dotrace body invoke the trace-enabled functions instead of the originals.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14199">CONTRIB-39</key>
            <summary>tracing enhancement: dotrace</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Fri, 23 Oct 2009 10:29:00 -0500</created>
                <updated>Tue, 24 Aug 2010 11:55:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 11:55:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25646" author="importer" created="Tue, 24 Aug 2010 11:55:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/39&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/39&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
dotrace.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/bTctXwV8ar3PNheJe5afGb/download/bTctXwV8ar3PNheJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/bTctXwV8ar3PNheJe5afGb/download/bTctXwV8ar3PNheJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25647" author="importer" created="Tue, 24 Aug 2010 11:55:00 -0500"  >&lt;p&gt;hircus said: [&lt;a href=&quot;file:bTctXwV8ar3PNheJe5afGb&quot;&gt;file:bTctXwV8ar3PNheJe5afGb&lt;/a&gt;]: dotrace implementation&lt;/p&gt;</comment>
                    <comment id="25648" author="importer" created="Tue, 24 Aug 2010 11:55:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/6dff158bdec5f06c33877c6c6550699d5e08ca71&quot;&gt;revision:6dff158bdec5f06c33877c6c6550699d5e08ca71&lt;/a&gt;) trace.clj: add dotrace; fixes #39&lt;/p&gt;

&lt;p&gt;Patch from Michel Salim&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-36] clojure.contrib.test-is use-fixtures function composes fixture functions repeatedly (Backport clojure #194)</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-36</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;For the clojure-1.0-compatibility branch,  copy the fix from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/194-clojure-test-use-fixtures-function-composes-fixture-functions-repeatedly&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/194-clojure-test-use-fixtures-function-composes-fixture-functions-repeatedly&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you call use-fixtures over and over again, it will simply compose the test deeper and deeper into a nesting of the fixture function.&lt;br/&gt;
  (use-fixtures :each my-cleanup)   (deftest my-messy-test &lt;span class=&quot;error&quot;&gt;&amp;#91;&#65533;&#65533;&#65533;&amp;#93;&lt;/span&gt;)&lt;/p&gt;

&lt;p&gt;Load that a few times and you end up running the equivalent of:&lt;br/&gt;
(my-cleanup (my-cleanup (my-cleanup my-messy-test))).&lt;/p&gt;</description>
                <environment></environment>
            <key id="14196">CONTRIB-36</key>
            <summary>clojure.contrib.test-is use-fixtures function composes fixture functions repeatedly (Backport clojure #194)</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 14 Oct 2009 23:28:00 -0500</created>
                <updated>Tue, 24 Aug 2010 11:49:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 11:49:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25636" author="importer" created="Tue, 24 Aug 2010 11:49:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/36&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/36&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
test-fixtures-36.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/ajZUI6Ur0r3PnzeJe5aVNr/download/ajZUI6Ur0r3PnzeJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/ajZUI6Ur0r3PnzeJe5aVNr/download/ajZUI6Ur0r3PnzeJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25637" author="importer" created="Tue, 24 Aug 2010 11:49:00 -0500"  >&lt;p&gt;mikehinchey said: [&lt;a href=&quot;file:ajZUI6Ur0r3PnzeJe5aVNr&quot;&gt;file:ajZUI6Ur0r3PnzeJe5aVNr&lt;/a&gt;]: patch copy of clojure 194&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>[CONTRIB-85] build and release sublibraries</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-85</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;h1&gt;&lt;a name=&quot;Designgoals&quot;&gt;&lt;/a&gt;Design goals&lt;/h1&gt;

&lt;ul&gt;
	&lt;li&gt;keep key libraries in contrib, protecting provenance and license so that non-technical issues do not keep people from using code&lt;/li&gt;
	&lt;li&gt;continue to produce a monolithic contrib build for casual/one-off application consumers&lt;/li&gt;
	&lt;li&gt;start building individual libraries within contrib, so that larger apps can manage dependencies in a granular fashion&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I propose we start with the new match (matchure) library, get feedback, and then take requests for what other libraries need to be bundled separately.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14245">CONTRIB-85</key>
            <summary>build and release sublibraries</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <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="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 26 May 2010 11:22:00 -0500</created>
                <updated>Tue, 24 Aug 2010 11:18:00 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25824" author="importer" created="Tue, 24 Aug 2010 11:18:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/85&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/85&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>[CONTRIB-15] Streamline clojure.contrib.http.agent interface</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-15</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Simplify the interface to clojure.contrib.http.agent as follows:&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;Replace separate :on-success and :on-failure callbacks with single :handler callback.&lt;/li&gt;
	&lt;li&gt;Shorten response-body-bytes/str names to &quot;result&quot; and &quot;result-str.&quot;&lt;/li&gt;
	&lt;li&gt;Shorten response-status/message/headers names to status/message/headers&lt;/li&gt;
	&lt;li&gt;Provide accessors for request parameters such as URI, headers, body, etc.&lt;/li&gt;
&lt;/ol&gt;
</description>
                <environment></environment>
            <key id="14175">CONTRIB-15</key>
            <summary>Streamline clojure.contrib.http.agent interface</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Mon, 17 Aug 2009 16:14:00 -0500</created>
                <updated>Tue, 24 Aug 2010 11:14:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 11:14:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25544" author="importer" created="Tue, 24 Aug 2010 11:14:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/15&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/15&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25545" author="importer" created="Tue, 24 Aug 2010 11:14:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/74f64cdea1debc7e2442f9337f28a25a769792d2&quot;&gt;revision:74f64cdea1debc7e2442f9337f28a25a769792d2&lt;/a&gt;) http/agent.clj: streamlined interface, refs #15&lt;/p&gt;

&lt;p&gt;This brings http.agent close to completion.&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25546" author="importer" created="Tue, 24 Aug 2010 11:14:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/b5fa8307d410a4447e6c36ac5fcaeff0c4f1baff&quot;&gt;revision:b5fa8307d410a4447e6c36ac5fcaeff0c4f1baff&lt;/a&gt;) http/agent.clj: added documentation and examples, refs #15&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25547" author="importer" created="Tue, 24 Aug 2010 11:14:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/78637658d879f8859ac6a883e0e0984d63f6ff18&quot;&gt;revision:78637658d879f8859ac6a883e0e0984d63f6ff18&lt;/a&gt;) http/agent.clj: more documentation, refs #15&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-12] log-system-agent state becomes nil if log level is not enabled.</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-12</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Currently an invocation of do-log will return nil if the log level isn&apos;t enabled, thus gives a nil to the log-system-agent. The log-system needs to be returned every time.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14172">CONTRIB-12</key>
            <summary>log-system-agent state becomes nil if log level is not enabled.</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="ataggart">Alexander Taggart</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 6 Aug 2009 18:38:00 -0500</created>
                <updated>Tue, 24 Aug 2010 11:08:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 11:08:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25534" author="importer" created="Tue, 24 Aug 2010 11:08:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/12&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/12&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
logging-12.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/aTmbBkGRKr3PGIeJe5aVNr/download/aTmbBkGRKr3PGIeJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/aTmbBkGRKr3PGIeJe5aVNr/download/aTmbBkGRKr3PGIeJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25535" author="importer" created="Tue, 24 Aug 2010 11:08:00 -0500"  >&lt;p&gt;ataggart said: [&lt;a href=&quot;file:aTmbBkGRKr3PGIeJe5aVNr&quot;&gt;file:aTmbBkGRKr3PGIeJe5aVNr&lt;/a&gt;]: Patch to fix the bug&lt;/p&gt;</comment>
                    <comment id="25536" author="importer" created="Tue, 24 Aug 2010 11:08:00 -0500"  >&lt;p&gt;tomfaulhaber said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/db7ac3aa9a5de29ac9c0107a21a790f90104ad3f&quot;&gt;revision:db7ac3aa9a5de29ac9c0107a21a790f90104ad3f&lt;/a&gt;) Fixes #12; log-system ref is now always returned.&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-82] make defalias work with macros</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-82</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;get back to 1.1-compatible behavior&lt;/p&gt;

&lt;p&gt;See also &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/273&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/273&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
            <key id="14242">CONTRIB-82</key>
            <summary>make defalias work with macros</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stu">Stuart Halloway</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 6 May 2010 15:41:00 -0500</created>
                <updated>Tue, 24 Aug 2010 10:55:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 10:55:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25817" author="importer" created="Tue, 24 Aug 2010 10:55:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/82&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/82&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>[CONTRIB-81] Remove gen-class requirement from pprint</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-81</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;In preparation for moving pprint into clojure itself.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14241">CONTRIB-81</key>
            <summary>Remove gen-class requirement from pprint</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="tomfaulhaber">Tom Faulhaber</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 28 Apr 2010 23:27:00 -0500</created>
                <updated>Tue, 24 Aug 2010 10:47:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 10:47:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25815" author="importer" created="Tue, 24 Aug 2010 10:47:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/81&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/81&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25816" author="importer" created="Tue, 24 Aug 2010 10:47:00 -0500"  >&lt;p&gt;tomfaulhaber said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/661dcfde7965c3e6650d169afca4a20ef146c940&quot;&gt;revision:661dcfde7965c3e6650d169afca4a20ef146c940&lt;/a&gt;) Remove gen-class requirement from clojure.contrib.pprint. See #81&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-80] Add catch clauses to c.c.condition</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-80</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Currently using clojure.contrib.condition is awkward if you need to handle both Conditions and Exceptions. This patch by Steve Gilardi and myself allows you to include catch clauses in your handle-case forms for regular Exceptions.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14240">CONTRIB-80</key>
            <summary>Add catch clauses to c.c.condition</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="3" iconUrl="http://dev.clojure.org/jira/images/icons/status_inprogress.gif">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Tue, 27 Apr 2010 13:55:00 -0500</created>
                <updated>Tue, 24 Aug 2010 10:45:00 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25813" author="importer" created="Tue, 24 Aug 2010 10:45:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/80&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/80&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-Support-catch-clauses-in-c.c.condition-for-regular-E.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/bn8Re8uIyr36S4eJe5cbLr/download/bn8Re8uIyr36S4eJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/bn8Re8uIyr36S4eJe5cbLr/download/bn8Re8uIyr36S4eJe5cbLr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25814" author="importer" created="Tue, 24 Aug 2010 10:45:00 -0500"  >&lt;p&gt;technomancy said: [&lt;a href=&quot;file:bn8Re8uIyr36S4eJe5cbLr&quot;&gt;file:bn8Re8uIyr36S4eJe5cbLr&lt;/a&gt;]: the patch&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10013">Test</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CONTRIB-73] lazy-xml uses old-style reify syntax</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-73</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;lazy-xml was not updated when the reify syntax change hit Clojure master, and thus is broken. Assigning to next release milestone with a high priority, as this prevents lazy-xml from working at all.&lt;/p&gt;

&lt;p&gt;Patch attached.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14233">CONTRIB-73</key>
            <summary>lazy-xml uses old-style reify syntax</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sun, 11 Apr 2010 07:39:00 -0500</created>
                <updated>Tue, 24 Aug 2010 10:23:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 10:23:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25797" author="importer" created="Tue, 24 Aug 2010 10:23:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/73&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/73&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-lazy-xml-Fix-reify-uses-missing-this-arguments.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dIdkISrv4r36_-eJe5aVNr/download/dIdkISrv4r36_-eJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dIdkISrv4r36_-eJe5aVNr/download/dIdkISrv4r36_-eJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25798" author="importer" created="Tue, 24 Aug 2010 10:23:00 -0500"  >&lt;p&gt;oranenj said: Oops, didn&apos;t notice Chouser was ahead of me. Closing as invalid.&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>[CONTRIB-78] fix broken jmx tests on ibm jdk</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-78</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description></description>
                <environment></environment>
            <key id="14238">CONTRIB-78</key>
            <summary>fix broken jmx tests on ibm jdk</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stu">Stuart Halloway</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Tue, 27 Apr 2010 10:04:00 -0500</created>
                <updated>Tue, 24 Aug 2010 09:45:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 09:45:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25809" author="importer" created="Tue, 24 Aug 2010 09:45:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/78&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/78&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>[CONTRIB-74] clojure.contrib.condition: list? not the correct predicate for detecting forms</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-74</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;The handler-case macro detects forms of the form &quot;(handle ...)&quot; by checking for items in the body for which list? returns true that begin with the symbol handle. code can be built from seqs that are not lists (e.g., clojure.lang.Cons&apos;s or lazy-seqs). The proper predicate is &quot;seq?&quot; not &quot;list?&quot;.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14234">CONTRIB-74</key>
            <summary>clojure.contrib.condition: list? not the correct predicate for detecting forms</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="3" iconUrl="http://dev.clojure.org/jira/images/icons/status_inprogress.gif">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="scgilardi">Stephen C. Gilardi</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Mon, 12 Apr 2010 20:29:00 -0500</created>
                <updated>Tue, 24 Aug 2010 09:24:00 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25799" author="importer" created="Tue, 24 Aug 2010 09:24:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/74&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/74&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-Use-seq-instead-of-list-to-determine-codeiness-.-Ref.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/cqHmfyuIur35MTeJe5cbLr/download/cqHmfyuIur35MTeJe5cbLr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/cqHmfyuIur35MTeJe5cbLr/download/cqHmfyuIur35MTeJe5cbLr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25800" author="importer" created="Tue, 24 Aug 2010 09:24:00 -0500"  >&lt;p&gt;technomancy said: [&lt;a href=&quot;file:cqHmfyuIur35MTeJe5cbLr&quot;&gt;file:cqHmfyuIur35MTeJe5cbLr&lt;/a&gt;]: Implements the fix&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10013">Test</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CONTRIB-62] duck-streams should handle bytes as well as characters</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-62</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;I&apos;d like to see duck-streams learn to support byte-oriented I/O just as well as it currently supports character-oriented I/O.&lt;/p&gt;

&lt;p&gt;I&apos;ve written an implementation and made it available on my ducks-byte &lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; branch of clojure-contrib for discussion and possible inclusion.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; &lt;a href=&quot;http://github.com/bpsm/clojure-contrib/tree/ducks-byte&quot;&gt;http://github.com/bpsm/clojure-contrib/tree/ducks-byte&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The branch itself breaks the change down into a sequence of (hopefully) logical steps, so I encourage those interested to have a look at it.&lt;/p&gt;

&lt;h1&gt;&lt;a name=&quot;Features&quot;&gt;&lt;/a&gt;Features &lt;/h1&gt;

&lt;ul&gt;
	&lt;li&gt;input-stream is like reader, except for bytes.&lt;/li&gt;
	&lt;li&gt;output-stream is like writer, except for bytes.&lt;/li&gt;
	&lt;li&gt;reader and writer now build on input-stream and output-stream where appropriate.&lt;/li&gt;
&lt;/ul&gt;


&lt;h1&gt;&lt;a name=&quot;Compatibility&quot;&gt;&lt;/a&gt;Compatibility&lt;/h1&gt;

&lt;p&gt;I&apos;ve renamed &lt;tt&gt;&lt;b&gt;append-to-writer&lt;/b&gt;&lt;/tt&gt; because it applies not just to writers, but also to output-streams. This might be a compatibility issue for clients that did not heed the advice given in documentation to use append-writer or append-spit instead of directly binding this var.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14222">CONTRIB-62</key>
            <summary>duck-streams should handle bytes as well as characters</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stu">Stuart Halloway</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Tue, 26 Jan 2010 09:33:00 -0600</created>
                <updated>Tue, 24 Aug 2010 09:04:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 09:04:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25755" author="importer" created="Tue, 24 Aug 2010 09:04:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/62&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/62&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-c.c.io-provides-input-stream-and-output-stream-for-b.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/d_99D0cRWr34N6eJe5afGb/download/d_99D0cRWr34N6eJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/d_99D0cRWr34N6eJe5afGb/download/d_99D0cRWr34N6eJe5afGb&lt;/a&gt;&lt;br/&gt;
0001-c.c.io-provides-input-stream-and-output-stream-for-b.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/b8NlJSrXKr346PeJe5afGb/download/b8NlJSrXKr346PeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/b8NlJSrXKr346PeJe5afGb/download/b8NlJSrXKr346PeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25756" author="importer" created="Tue, 24 Aug 2010 09:04:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:d_99D0cRWr34N6eJe5afGb&quot;&gt;file:d_99D0cRWr34N6eJe5afGb&lt;/a&gt;]: compatible with mavenized master (e.g. 18c6d2102a)&lt;/p&gt;</comment>
                    <comment id="25757" author="importer" created="Tue, 24 Aug 2010 09:04:00 -0500"  >&lt;p&gt;bpsm said: Teaching duck-streams to try to resolve a string that isn&apos;t a file or URL as a classpath resource more properly belongs in a separate ticket.&lt;/p&gt;</comment>
                    <comment id="25758" author="importer" created="Tue, 24 Aug 2010 09:04:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25759" author="importer" created="Tue, 24 Aug 2010 09:04:00 -0500"  >&lt;p&gt;bpsm said: [&lt;a href=&quot;file:b8NlJSrXKr346PeJe5afGb&quot;&gt;file:b8NlJSrXKr346PeJe5afGb&lt;/a&gt;]: rebased for clojure.contrib.io&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>[CONTRIB-64] teach duck-streams to read clojure forms</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-64</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;I&apos;d like an easy way to consume a text file written in Clojure syntax as pure data: as a sequence of Clojure data structures without evaluation. This allows Clojure to be used where property files, XML or JSON might otherwise be chosen.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14224">CONTRIB-64</key>
            <summary>teach duck-streams to read clojure forms</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Tue, 26 Jan 2010 16:50:00 -0600</created>
                <updated>Tue, 24 Aug 2010 09:04:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 09:04:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25764" author="importer" created="Tue, 24 Aug 2010 09:04:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/64&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/64&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-teach-duck-streams-to-read-clojure-forms.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/doGgPKcSqr34XKeJe5aVNr/download/doGgPKcSqr34XKeJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/doGgPKcSqr34XKeJe5aVNr/download/doGgPKcSqr34XKeJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25765" author="importer" created="Tue, 24 Aug 2010 09:04:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25766" author="importer" created="Tue, 24 Aug 2010 09:04:00 -0500"  >&lt;p&gt;technomancy said: You can do this by composing read-string and slurp*, is that good enough?&lt;/p&gt;</comment>
                    <comment id="25767" author="importer" created="Tue, 24 Aug 2010 09:04:00 -0500"  >&lt;p&gt;bpsm said: Well, more-or-less. The intent of my patch was to allow a file containing multiple forms to be read lazily (i.e. one form at a time). The (read-string (slurp* x)) solution is eager.&lt;/p&gt;

&lt;p&gt;That said, I&apos;d like to withdraw the patch because I&apos;m not really happy with the fact that the implementation fails to close the underlying file if the sequence is not consumed fully. (This is  a more general problem with lazy sequences based on resources not managed by the GC.)&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>[CONTRIB-58] Add println-style args to log macros</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-58</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Per a post to the group from Phil Hagelberg:&lt;br/&gt;
&lt;a href=&quot;http://groups.google.com/group/clojure/browse_thread/thread/d91e1911e3095157&quot;&gt;http://groups.google.com/group/clojure/browse_thread/thread/d91e1911e3095157&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
            <key id="14218">CONTRIB-58</key>
            <summary>Add println-style args to log macros</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="ataggart">Alexander Taggart</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sun, 17 Jan 2010 05:58:00 -0600</created>
                <updated>Tue, 24 Aug 2010 08:55:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 08:55:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25739" author="importer" created="Tue, 24 Aug 2010 08:55:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/58&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/58&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
easy-logging-args.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/buYy7Qa1Cr35jGeJe5afGb/download/buYy7Qa1Cr35jGeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/buYy7Qa1Cr35jGeJe5afGb/download/buYy7Qa1Cr35jGeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25740" author="importer" created="Tue, 24 Aug 2010 08:55:00 -0500"  >&lt;p&gt;ataggart said: [&lt;a href=&quot;file:buYy7Qa1Cr35jGeJe5afGb&quot;&gt;file:buYy7Qa1Cr35jGeJe5afGb&lt;/a&gt;]: patch to add format-string-based and println-style log macros&lt;/p&gt;</comment>
                    <comment id="25741" author="importer" created="Tue, 24 Aug 2010 08:55:00 -0500"  >&lt;p&gt;ataggart said: Done.  Left extant macros unchanged since modifying them could have unexpected results for end-users.&lt;/p&gt;

&lt;p&gt;New macros follow similar naming to the original ones, with println-style macros ending in &apos;p&apos;, and format-string ones ending in &apos;f&apos;.&lt;/p&gt;

&lt;p&gt;In an ideal world, the -p variants would be the default.  Backwards-compatibility is a bitch.&lt;/p&gt;</comment>
                    <comment id="25742" author="importer" created="Tue, 24 Aug 2010 08:55:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25743" author="importer" created="Tue, 24 Aug 2010 08:55:00 -0500"  >&lt;p&gt;ataggart said: Incorporated the ideas here into the new c.c.logging code.&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>[CONTRIB-56] Faster version of reductions</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-56</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Faster version of reductions for seq-utils&lt;/p&gt;</description>
                <environment></environment>
            <key id="14216">CONTRIB-56</key>
            <summary>Faster version of reductions</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="timothypratley">Timothy Pratley</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sat, 2 Jan 2010 22:03:00 -0600</created>
                <updated>Tue, 24 Aug 2010 08:44:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 08:44:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25733" author="importer" created="Tue, 24 Aug 2010 08:44:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/56&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/56&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
reductions.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dCrXzw-bqr3PBmeJe5aVNr/download/dCrXzw-bqr3PBmeJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dCrXzw-bqr3PBmeJe5aVNr/download/dCrXzw-bqr3PBmeJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25734" author="importer" created="Tue, 24 Aug 2010 08:44:00 -0500"  >&lt;p&gt;timothypratley said: Passes the reductions tests.&lt;/p&gt;</comment>
                    <comment id="25735" author="importer" created="Tue, 24 Aug 2010 08:44:00 -0500"  >&lt;p&gt;timothypratley said: [&lt;a href=&quot;file:dCrXzw-bqr3PBmeJe5aVNr&quot;&gt;file:dCrXzw-bqr3PBmeJe5aVNr&lt;/a&gt;]: faster reductions&lt;/p&gt;</comment>
                    <comment id="25736" author="importer" created="Tue, 24 Aug 2010 08:44:00 -0500"  >&lt;p&gt;meikelbrandmeyer said: Reductions was moved to core. See here: &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/312-audit---promote-some-clojure-contrib-seq-fns&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/312-audit---promote-some-clojure-contrib-seq-fns&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sorry. I wasn&apos;t aware of this ticket and your patch.&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>[CONTRIB-54] with-temp-ns should clean up after exceptional condition</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-54</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;removing the temporary namespace needs to be in a finally block&lt;/p&gt;</description>
                <environment></environment>
            <key id="14214">CONTRIB-54</key>
            <summary>with-temp-ns should clean up after exceptional condition</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stu">Stuart Halloway</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 30 Dec 2009 13:09:00 -0600</created>
                <updated>Tue, 24 Aug 2010 08:43:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 08:43:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25727" author="importer" created="Tue, 24 Aug 2010 08:43:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/54&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/54&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25728" author="importer" created="Tue, 24 Aug 2010 08:43:00 -0500"  >&lt;p&gt;stu said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/f24f6412a1cee7015285856e5e4fc6ddc3974439&quot;&gt;revision:f24f6412a1cee7015285856e5e4fc6ddc3974439&lt;/a&gt;) clean up temporary namespaces, fixes #54&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-53] AOT of logging.clj causes logging implementation to be decided at compile-time</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-53</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;We shouldn&apos;t AOT logging.clj since this causes the log implementation to be determined at compile-time. This is almost always the wrong thing; it should be determined at load-time since it&apos;s determined by what classes are on the classpath at runtime.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14213">CONTRIB-53</key>
            <summary>AOT of logging.clj causes logging implementation to be decided at compile-time</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="ataggart">Alexander Taggart</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Mon, 28 Dec 2009 20:00:00 -0600</created>
                <updated>Tue, 24 Aug 2010 08:42:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 08:42:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25723" author="importer" created="Tue, 24 Aug 2010 08:42:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/53&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/53&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-Don-t-AOT-logging.clj.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/aqNkDi9byr3Rn8eJe5aVNr/download/aqNkDi9byr3Rn8eJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/aqNkDi9byr3Rn8eJe5aVNr/download/aqNkDi9byr3Rn8eJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25724" author="importer" created="Tue, 24 Aug 2010 08:42:00 -0500"  >&lt;p&gt;technomancy said: [&lt;a href=&quot;file:aqNkDi9byr3Rn8eJe5aVNr&quot;&gt;file:aqNkDi9byr3Rn8eJe5aVNr&lt;/a&gt;]: A patch to build.xml&lt;/p&gt;</comment>
                    <comment id="25725" author="importer" created="Tue, 24 Aug 2010 08:42:00 -0500"  >&lt;p&gt;rnewman said: Phil, did you see #44?&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.assembla.com/spaces/clojure-contrib/tickets/44-AOT-compilation-of-clojure-contrib-jar-pre-sets-logging-implementation&quot;&gt;http://www.assembla.com/spaces/clojure-contrib/tickets/44-AOT-compilation-of-clojure-contrib-jar-pre-sets-logging-implementation&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25726" author="importer" created="Tue, 24 Aug 2010 08:42:00 -0500"  >&lt;p&gt;technomancy said: Oops; dupe of #44.&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>[CONTRIB-60] Add strint (string interpolation) lib</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-60</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Previously discussed:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://muckandbrass.com/web/x/AgBP&quot;&gt;http://muckandbrass.com/web/x/AgBP&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://groups.google.com/group/clojure-dev/browse_frm/thread/1364f0702bfe293c&quot;&gt;http://groups.google.com/group/clojure-dev/browse_frm/thread/1364f0702bfe293c&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://clojure-log.n01se.net/date/2010-01-20.html#10:51&quot;&gt;http://clojure-log.n01se.net/date/2010-01-20.html#10:51&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
            <key id="14220">CONTRIB-60</key>
            <summary>Add strint (string interpolation) lib</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stu">Stuart Halloway</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sat, 23 Jan 2010 08:50:00 -0600</created>
                <updated>Tue, 24 Aug 2010 08:01:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 08:01:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25748" author="importer" created="Tue, 24 Aug 2010 08:01:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/60&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/60&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
add-strint.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/c1uE4-cc4r35wteJe5afGb/download/c1uE4-cc4r35wteJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/c1uE4-cc4r35wteJe5afGb/download/c1uE4-cc4r35wteJe5afGb&lt;/a&gt;&lt;br/&gt;
add-strint2.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/aeyw6icJSr37PueJe5aVNr/download/aeyw6icJSr37PueJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/aeyw6icJSr37PueJe5aVNr/download/aeyw6icJSr37PueJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25749" author="importer" created="Tue, 24 Aug 2010 08:01:00 -0500"  >&lt;p&gt;cemerick said: [&lt;a href=&quot;file:aeyw6icJSr37PueJe5aVNr&quot;&gt;file:aeyw6icJSr37PueJe5aVNr&lt;/a&gt;]: include bugfix&lt;/p&gt;</comment>
                    <comment id="25750" author="importer" created="Tue, 24 Aug 2010 08:01:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&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>[CONTRIB-61] Add -?&gt;&gt; to clojure.contrib.core</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-61</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Obvious companion to -?&amp;gt;.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14221">CONTRIB-61</key>
            <summary>Add -?&gt;&gt; to clojure.contrib.core</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stu">Stuart Halloway</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sat, 23 Jan 2010 09:34:00 -0600</created>
                <updated>Tue, 24 Aug 2010 08:01:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 08:01:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25751" author="importer" created="Tue, 24 Aug 2010 08:01:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/61&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/61&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
add-nilsafe-thread-last.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dkG7yKcdqr36GOeJe5aVNr/download/dkG7yKcdqr36GOeJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dkG7yKcdqr36GOeJe5aVNr/download/dkG7yKcdqr36GOeJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25752" author="importer" created="Tue, 24 Aug 2010 08:01:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25753" author="importer" created="Tue, 24 Aug 2010 08:01:00 -0500"  >&lt;p&gt;oranenj said: This ticket has a patch, so marking as &apos;test&apos;&lt;/p&gt;</comment>
                    <comment id="25754" author="importer" created="Tue, 24 Aug 2010 08:01:00 -0500"  >&lt;p&gt;stu said: Less useful than -?&amp;gt; since nil/empty falls out anyway but worth it for completeness and for where the nil/empty distinction matters.&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>[CONTRIB-41] PersistentFnMap doesn&apos;t handle both valAt arities</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-41</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;clojure.contrib.fnmap.PersistentFnMap implements Associative (and thus ILookup) but doesn&apos;t supply a definition for both arities of valAt - needs to add&lt;/p&gt;

&lt;p&gt;-valAt (&lt;span class=&quot;error&quot;&gt;&amp;#91;this key&amp;#93;&lt;/span&gt; ...) (&lt;span class=&quot;error&quot;&gt;&amp;#91;this key not-found&amp;#93;&lt;/span&gt; ...)&lt;/p&gt;</description>
                <environment></environment>
            <key id="14201">CONTRIB-41</key>
            <summary>PersistentFnMap doesn&apos;t handle both valAt arities</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sat, 31 Oct 2009 00:20:00 -0500</created>
                <updated>Tue, 24 Aug 2010 08:00:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 08:00:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25653" author="importer" created="Tue, 24 Aug 2010 08:00:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/41&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/41&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25654" author="importer" created="Tue, 24 Aug 2010 08:00:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/962d8be44aa71ee13aa12a21f277f62b3c301021&quot;&gt;revision:962d8be44aa71ee13aa12a21f277f62b3c301021&lt;/a&gt;) PersistentFnMap.clj: add default value arity for -valAt; fixes #41&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-40] bugs in cl-format</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-40</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;As reported in the google group (&lt;a href=&quot;http://groups.google.com/group/clojure/browse_thread/thread/ae3e636a44c95686):&quot;&gt;http://groups.google.com/group/clojure/browse_thread/thread/ae3e636a44c95686):&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hello,&lt;/p&gt;

&lt;p&gt;I&apos;ve encountered a couple of issues with the cl-format function&lt;br/&gt;
included in contrib.pprint&lt;/p&gt;

&lt;p&gt;(cl-format nil &quot;~1,1$&quot; -12.0) ;; =&amp;gt; &quot;12.0&quot;  the sign is lost&lt;/p&gt;

&lt;p&gt;I think the problem is the following assignment in the dollar-float&lt;br/&gt;
function&lt;br/&gt;
        add-sign (and (:at params) (not (neg? arg)))     ;; wrong&lt;br/&gt;
(the sign is only printed when the colon modifier is present and only&lt;br/&gt;
for positive numbers)&lt;br/&gt;
that should read, if I understand correctly the logic,&lt;br/&gt;
        add-sign (or (:at params) (neg? arg))&lt;/p&gt;

&lt;p&gt;The second issue is not so straightforward to solve:&lt;/p&gt;

&lt;p&gt;(cl-format true &quot;&lt;sub&gt;1,1$&lt;/sub&gt;%&quot; 0.001) ;; =&amp;gt; String index out of range: -1&lt;/p&gt;

&lt;p&gt;I&apos;ve tracked down the bug into the function round-str (the variable&lt;br/&gt;
round-pos will be negative and this case is not handled properly), but&lt;br/&gt;
I don&apos;t understand the code well enough to propose a fix.&lt;/p&gt;

&lt;p&gt;Cheers,&lt;/p&gt;

&lt;p&gt;Carlos&lt;/p&gt;</description>
                <environment></environment>
            <key id="14200">CONTRIB-40</key>
            <summary>bugs in cl-format</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="tomfaulhaber">Tom Faulhaber</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sat, 31 Oct 2009 02:19:00 -0500</created>
                <updated>Tue, 24 Aug 2010 08:00:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 08:00:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25649" author="importer" created="Tue, 24 Aug 2010 08:00:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/40&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/40&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25650" author="importer" created="Tue, 24 Aug 2010 08:00:00 -0500"  >&lt;p&gt;tomfaulhaber said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/3f267049a38f205ac3c7d91173c63648f139e790&quot;&gt;revision:3f267049a38f205ac3c7d91173c63648f139e790&lt;/a&gt;) cl-format: ~$ wasn&apos;t handling negative numbers correctly&lt;br/&gt;
refs #40&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25651" author="importer" created="Tue, 24 Aug 2010 08:00:00 -0500"  >&lt;p&gt;tomfaulhaber said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/6f9e9c276bf53b0fce2275abf29a25f9735a6409&quot;&gt;revision:6f9e9c276bf53b0fce2275abf29a25f9735a6409&lt;/a&gt;) cl-format: ~$ wasn&apos;t handling very small fractions (that round to 0) correctly.&lt;br/&gt;
refs #40&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25652" author="importer" created="Tue, 24 Aug 2010 08:00:00 -0500"  >&lt;p&gt;tomfaulhaber said: Fixed with the two above changelists&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>[CONTRIB-59] Bug in test_java_utils.clj</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-59</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;I got test error today (21 Jan 2009, GMT+5:30) on Clojure-contrib 1.1 (maven branch) while running &quot;mvn assembly:assembly&quot; on Windows XP 32-bit on JDK 1.6.0_18.&lt;/p&gt;

&lt;p&gt;&amp;lt;snip&amp;gt;passing tests&amp;lt;/snip&amp;gt;&lt;/p&gt;

&lt;p&gt;FAIL in (test-relative-path-string) (run-test503247994263281606.clj:130)&lt;br/&gt;
absolute path strings are forbidden&lt;br/&gt;
expected: (thrown? IllegalArgumentException (relative-path-string &quot;/baz&quot;))&lt;br/&gt;
  actual: nil&lt;/p&gt;

&lt;p&gt;FAIL in (test-relative-path-string) (run-test503247994263281606.clj:130)&lt;br/&gt;
absolute File paths are forbidden&lt;br/&gt;
expected: (thrown? IllegalArgumentException (relative-path-string (File. &quot;/quux&quot;)))&lt;br/&gt;
  actual: nil&lt;/p&gt;

&lt;p&gt;FAIL in (test-file) (run-test503247994263281606.clj:130)&lt;br/&gt;
no sneaking in absolute paths!&lt;br/&gt;
expected: (thrown? IllegalArgumentException (file &quot;foo&quot; &quot;bar&quot; &quot;/boom&quot; &quot;baz&quot; &quot;quux&quot;))&lt;br/&gt;
  actual: nil&lt;/p&gt;

&lt;p&gt;FAIL in (test-as-url) (run-test503247994263281606.clj:130)&lt;br/&gt;
expected: (= (URL. &quot;file:/foo&quot;) (as-url (File. &quot;/foo&quot;)))&lt;br/&gt;
  actual: (not (= #&amp;lt;URL &lt;a href=&quot;file:/foo&quot;&gt;file:/foo&lt;/a&gt;&amp;gt; #&amp;lt;URL &lt;a href=&quot;file:/C:/foo&quot;&gt;file:/C:/foo&lt;/a&gt;&amp;gt;))&lt;/p&gt;

&lt;p&gt;&amp;lt;snip&amp;gt;passing tests&amp;lt;/snip&amp;gt;&lt;/p&gt;

&lt;p&gt;4 failures, 0 errors&lt;/p&gt;</description>
                <environment></environment>
            <key id="14219">CONTRIB-59</key>
            <summary>Bug in test_java_utils.clj</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 21 Jan 2010 08:47:00 -0600</created>
                <updated>Tue, 24 Aug 2010 07:59:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 07:59:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25744" author="importer" created="Tue, 24 Aug 2010 07:59:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/59&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/59&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25745" author="importer" created="Tue, 24 Aug 2010 07:59:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25746" author="importer" created="Tue, 24 Aug 2010 07:59:00 -0500"  >&lt;p&gt;stuart.sierra said: This is probably caused by the way Windows handles paths.  Needs a fix for portability.&lt;/p&gt;</comment>
                    <comment id="25747" author="importer" created="Tue, 24 Aug 2010 07:59:00 -0500"  >&lt;p&gt;stu said: Using File/separator should work cross-platform. Added in commit ebf0d212dcc076ebee6984d276ff037ce1a7ecbe.&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>[CONTRIB-5] def: Add defn-memo</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-5</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Idea from &lt;a href=&quot;http://groups.google.com/group/clojure/browse_thread/thread/77d9d741e81fd8f6&quot;&gt;google group thread&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
            <key id="14165">CONTRIB-5</key>
            <summary>def: Add defn-memo</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 9 Jul 2009 00:12:00 -0500</created>
                <updated>Tue, 24 Aug 2010 07:54:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 07:54:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25510" author="importer" created="Tue, 24 Aug 2010 07:54:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/5&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/5&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25511" author="importer" created="Tue, 24 Aug 2010 07:54:00 -0500"  >&lt;p&gt;chouser@n01se.net said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/4df3fae61cbd538786a73908eb0b8fc176b3fefd&quot;&gt;revision:4df3fae61cbd538786a73908eb0b8fc176b3fefd&lt;/a&gt;) def: Add defn-memo&lt;br/&gt;
Fixes #5&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-57] remove walk tests as now part of core</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-57</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/clojure-dev/browse_thread/thread/51982e4091e3614d&quot;&gt;http://groups.google.com/group/clojure-dev/browse_thread/thread/51982e4091e3614d&lt;/a&gt;&lt;br/&gt;
Move tests over to core&lt;/p&gt;</description>
                <environment></environment>
            <key id="14217">CONTRIB-57</key>
            <summary>remove walk tests as now part of core</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="timothypratley">Timothy Pratley</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Tue, 12 Jan 2010 17:56:00 -0600</created>
                <updated>Tue, 24 Aug 2010 07:52:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 07:52:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25737" author="importer" created="Tue, 24 Aug 2010 07:52:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/57&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/57&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25738" author="importer" created="Tue, 24 Aug 2010 07:52:00 -0500"  >&lt;p&gt;timothypratley said: SS has fixed it already &lt;img class=&quot;emoticon&quot; src=&quot;http://dev.clojure.org/jira/images/icons/emoticons/smile.gif&quot; height=&quot;20&quot; width=&quot;20&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&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>[CONTRIB-29] Backport clojure.contrib.logging to clojure-1.0-compat branch</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-29</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;This simply backports the clojure.contrib.logging namespace to the 1.0-compatible branch.&lt;/p&gt;

&lt;p&gt;The only change from master was to revert back to the old style of import calls.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14189">CONTRIB-29</key>
            <summary>Backport clojure.contrib.logging to clojure-1.0-compat branch</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 3 Sep 2009 17:15:00 -0500</created>
                <updated>Tue, 24 Aug 2010 07:24:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 07:24:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25601" author="importer" created="Tue, 24 Aug 2010 07:24:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/29&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/29&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-Backport-logging.clj-to-1.0-compatible-branch.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dIpoK8Mm4r3Rt6eJe5aVNr/download/dIpoK8Mm4r3Rt6eJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dIpoK8Mm4r3Rt6eJe5aVNr/download/dIpoK8Mm4r3Rt6eJe5aVNr&lt;/a&gt;&lt;br/&gt;
0001-Backport-logging-to-1.0-compatible-branch.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dd6JqgTpur3RF9eJe5afGb/download/dd6JqgTpur3RF9eJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dd6JqgTpur3RF9eJe5afGb/download/dd6JqgTpur3RF9eJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25602" author="importer" created="Tue, 24 Aug 2010 07:24:00 -0500"  >&lt;p&gt;technomancy said: [&lt;a href=&quot;file:dIpoK8Mm4r3Rt6eJe5aVNr&quot;&gt;file:dIpoK8Mm4r3Rt6eJe5aVNr&lt;/a&gt;]: logging backport patch&lt;/p&gt;</comment>
                    <comment id="25603" author="importer" created="Tue, 24 Aug 2010 07:24:00 -0500"  >&lt;p&gt;ataggart said: Out of curiosity, why was such an old version of c.c.logging used?  I&apos;ve added a number of performance improvements since then:&lt;br/&gt;
&lt;a href=&quot;http://github.com/richhickey/clojure-contrib/blob/master/src/clojure/contrib/logging.clj&quot;&gt;http://github.com/richhickey/clojure-contrib/blob/master/src/clojure/contrib/logging.clj&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25604" author="importer" created="Tue, 24 Aug 2010 07:24:00 -0500"  >&lt;p&gt;technomancy said: Alex: just because I did the backport a few weeks ago and procrastinated on submitting it. =)&lt;/p&gt;

&lt;p&gt;I&apos;ll create a new patch for the latest logging.clj.&lt;/p&gt;</comment>
                    <comment id="25605" author="importer" created="Tue, 24 Aug 2010 07:24:00 -0500"  >&lt;p&gt;technomancy said: [&lt;a href=&quot;file:dd6JqgTpur3RF9eJe5afGb&quot;&gt;file:dd6JqgTpur3RF9eJe5afGb&lt;/a&gt;]: Updated patch&lt;/p&gt;</comment>
                    <comment id="25606" author="importer" created="Tue, 24 Aug 2010 07:24:00 -0500"  >&lt;p&gt;tomfaulhaber said: Applied patch (commit bd3c20). Seems to work.&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>[CONTRIB-28] Add c.c.table namespace</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-28</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Add the namespace c.c.table, as described here:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/clojure-dev/browse_thread/thread/b60015723d81aa34&quot;&gt;http://groups.google.com/group/clojure-dev/browse_thread/thread/b60015723d81aa34&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, support functions described here:&lt;br/&gt;
&lt;a href=&quot;http://groups.google.com/group/clojure-dev/browse_thread/thread/4b20e40d83095c67&quot;&gt;http://groups.google.com/group/clojure-dev/browse_thread/thread/4b20e40d83095c67&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://groups.google.com/group/clojure-dev/browse_thread/thread/155c8b9893d673bc&quot;&gt;http://groups.google.com/group/clojure-dev/browse_thread/thread/155c8b9893d673bc&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sean&lt;/p&gt;</description>
                <environment></environment>
            <key id="14188">CONTRIB-28</key>
            <summary>Add c.c.table namespace</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="3" iconUrl="http://dev.clojure.org/jira/images/icons/status_inprogress.gif">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="devlinsf">Sean Devlin</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Fri, 28 Aug 2009 18:18:00 -0500</created>
                <updated>Tue, 24 Aug 2010 07:21:00 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25597" author="importer" created="Tue, 24 Aug 2010 07:21:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/28&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/28&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
create_c_c_table.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/c5HLnELeKr3R1ieJe5afGb/download/c5HLnELeKr3R1ieJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/c5HLnELeKr3R1ieJe5afGb/download/c5HLnELeKr3R1ieJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25598" author="importer" created="Tue, 24 Aug 2010 07:21:00 -0500"  >&lt;p&gt;devlinsf said: [&lt;a href=&quot;file:c5HLnELeKr3R1ieJe5afGb&quot;&gt;file:c5HLnELeKr3R1ieJe5afGb&lt;/a&gt;]: Changes to support table-utils&lt;/p&gt;</comment>
                    <comment id="25599" author="importer" created="Tue, 24 Aug 2010 07:21:00 -0500"  >&lt;p&gt;richhickey said: Please do not commit this (or any new libs) without approval from me first - thanks.&lt;/p&gt;</comment>
                    <comment id="25600" author="importer" created="Tue, 24 Aug 2010 07:21:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#28, #32, #45, #47, #51, #19)&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10013">Test</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CONTRIB-27] str-utils2: add type hints for returned values</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-27</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;clojure.contrib.str-utils2 is has type hints for function arguments, but not for the functions themselves, so return values are not type-hinted.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14187">CONTRIB-27</key>
            <summary>str-utils2: add type hints for returned values</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Fri, 28 Aug 2009 00:44:00 -0500</created>
                <updated>Tue, 24 Aug 2010 07:20:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 07:20:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25595" author="importer" created="Tue, 24 Aug 2010 07:20:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/27&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/27&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25596" author="importer" created="Tue, 24 Aug 2010 07:20:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/4b4f6ab5bcab58c4219eb50395bd366daea3ecc3&quot;&gt;revision:4b4f6ab5bcab58c4219eb50395bd366daea3ecc3&lt;/a&gt;) str_utils2.clj: added type hints for String return values; fixes #27&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-17] str-utils2: seq-like functions have different argument order</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-17</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;clojure.contrib.str-utils2 contains several functions with the same names as clojure.core functions: take, drop, butlast.  However, their argument order is reversed from the order used by the clojure.core functions.&lt;/p&gt;

&lt;p&gt;One of the stated design goals of str-utils2 is to have all functions take the string they are operating on as their first argument, to enable easy composition with -&amp;gt;&lt;/p&gt;

&lt;p&gt;Either these functions should be renamed, as &quot;str-take&quot;, or a note should be added to their documentation explaining the argument order.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14177">CONTRIB-17</key>
            <summary>str-utils2: seq-like functions have different argument order</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Tue, 18 Aug 2009 16:26:00 -0500</created>
                <updated>Tue, 24 Aug 2010 07:14:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 07:14:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25551" author="importer" created="Tue, 24 Aug 2010 07:14:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/17&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/17&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25552" author="importer" created="Tue, 24 Aug 2010 07:14:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/3b6d95140393bf78930c9f4045ba2feab36f3946&quot;&gt;revision:3b6d95140393bf78930c9f4045ba2feab36f3946&lt;/a&gt;) str_utils2.clj: explain argument order of take/drop/butlast, refs #17&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25553" author="importer" created="Tue, 24 Aug 2010 07:14:00 -0500"  >&lt;p&gt;stuart.sierra said: Added documentation, don&apos;t want longer function names or to break the string-argument-first design.&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>[CONTRIB-70] c.c.string: final migration (in c.c.repl-utils, c.c.command-line)</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-70</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Patch addresses remaining items to be converted to the new string lib: &lt;br/&gt;
 &#65533;&#65533;&#65533; &quot;str-join&quot; to &quot;join&quot; in c.c.command-line&lt;br/&gt;
 &#65533;&#65533;&#65533; &quot;re-partition&quot; to &quot;partition&quot; in c.c.repl-utils &lt;br/&gt;
 &#65533;&#65533;&#65533; correction to the example function call in c.c.string/partition&apos;s docs (reversed order of arguments)&lt;/p&gt;</description>
                <environment></environment>
            <key id="14230">CONTRIB-70</key>
            <summary>c.c.string: final migration (in c.c.repl-utils, c.c.command-line)</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 3 Feb 2010 09:32:00 -0600</created>
                <updated>Tue, 24 Aug 2010 07:11:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 07:11:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25789" author="importer" created="Tue, 24 Aug 2010 07:11:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/70&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/70&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
c-c-string-fixes.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/djkmaEeoGr36OOeJe5afGb/download/djkmaEeoGr36OOeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/djkmaEeoGr36OOeJe5afGb/download/djkmaEeoGr36OOeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25790" author="importer" created="Tue, 24 Aug 2010 07:11:00 -0500"  >&lt;p&gt;stuart.sierra said: Please reformat the patch according to &lt;a href=&quot;http://clojure.org/patches&quot;&gt;http://clojure.org/patches&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25791" author="importer" created="Tue, 24 Aug 2010 07:11:00 -0500"  >&lt;p&gt;trolard said: [&lt;a href=&quot;file:djkmaEeoGr36OOeJe5afGb&quot;&gt;file:djkmaEeoGr36OOeJe5afGb&lt;/a&gt;]: Patch for remaining itesm in c.c.string migration.&lt;/p&gt;</comment>
                    <comment id="25792" author="importer" created="Tue, 24 Aug 2010 07:11:00 -0500"  >&lt;p&gt;trolard said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/af788ed71a5c92f32daa5bfc5673455bd8843faa&quot;&gt;revision:af788ed71a5c92f32daa5bfc5673455bd8843faa&lt;/a&gt;) c.c.string migration changes; fixes #70&lt;/p&gt;

&lt;p&gt;Signed-off-by: Stuart Sierra &amp;lt;mail@stuartsierra.com&amp;gt;&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25793" author="importer" created="Tue, 24 Aug 2010 07:11:00 -0500"  >&lt;p&gt;stu said: Updating tickets (#2, #3, #33, #38, #51, #52, #65, #67, #70)&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>[CONTRIB-13] Add test coverage for seq-utils</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-13</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;I realized that seq-utils is untested based on this discussion:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/clojure/browse_thread/thread/2be768e15d2b717a&quot;&gt;http://groups.google.com/group/clojure/browse_thread/thread/2be768e15d2b717a&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I&apos;ll be adding unit tests to ensure coverage, for future changes.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14173">CONTRIB-13</key>
            <summary>Add test coverage for seq-utils</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Fri, 7 Aug 2009 09:23:00 -0500</created>
                <updated>Tue, 24 Aug 2010 07:09:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 07:09:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25537" author="importer" created="Tue, 24 Aug 2010 07:09:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/13&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/13&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
create-seq-utils-test.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/aG1hp6G9Kr3REGeJe5afGb/download/aG1hp6G9Kr3REGeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/aG1hp6G9Kr3REGeJe5afGb/download/aG1hp6G9Kr3REGeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25538" author="importer" created="Tue, 24 Aug 2010 07:09:00 -0500"  >&lt;p&gt;devlinsf said: [&lt;a href=&quot;file:aG1hp6G9Kr3REGeJe5afGb&quot;&gt;file:aG1hp6G9Kr3REGeJe5afGb&lt;/a&gt;]: Test coverage for seq-utils&lt;/p&gt;</comment>
                    <comment id="25539" author="importer" created="Tue, 24 Aug 2010 07:09:00 -0500"  >&lt;p&gt;devlinsf said: Preliminary tests complete&lt;/p&gt;</comment>
                    <comment id="25540" author="importer" created="Tue, 24 Aug 2010 07:09:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/407ab8766349881d87d48409601337b1f0dc485a&quot;&gt;revision:407ab8766349881d87d48409601337b1f0dc485a&lt;/a&gt;) seq_utils_test.clj: add tests from Sean Devlin; fixes #13&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-11] Default log namespace is incorrect</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-11</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Currently the runtime value of &lt;b&gt;ns&lt;/b&gt; is used to namespace calls to log, instead of the ns of the code that calls log.  For example:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;user=&amp;gt; (ns foo (:use (clojure.contrib logging))) 
nil
foo=&amp;gt; (defn bar [] (log :fatal &lt;span class=&quot;code-quote&quot;&gt;&quot;in foo/bar&quot;&lt;/span&gt;)) 
#&apos;foo/bar
foo=&amp;gt; (bar)
#&amp;lt;Agent@4f961bac...&amp;gt;
foo=&amp;gt; (ns baz (:use (clojure.contrib logging)))
nil
baz=&amp;gt;  (foo/bar) 
#&amp;lt;Agent@4f961bac...&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;
and the output to the log is:
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;2009-08-06 11:05:19,817 FATAL foo - / - in foo/bar
2009-08-06 11:05:38,167 FATAL baz - / - in foo/bar&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The second printed namespace is &quot;baz&quot; and it should be the same as the first, &quot;foo&quot;.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14171">CONTRIB-11</key>
            <summary>Default log namespace is incorrect</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="ataggart">Alexander Taggart</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 6 Aug 2009 14:09:00 -0500</created>
                <updated>Tue, 24 Aug 2010 07:08:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 07:08:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25531" author="importer" created="Tue, 24 Aug 2010 07:08:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/11&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/11&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
logging-11.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/cnaHiKGR4r3RZOeJe5afGb/download/cnaHiKGR4r3RZOeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/cnaHiKGR4r3RZOeJe5afGb/download/cnaHiKGR4r3RZOeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25532" author="importer" created="Tue, 24 Aug 2010 07:08:00 -0500"  >&lt;p&gt;ataggart said: [&lt;a href=&quot;file:cnaHiKGR4r3RZOeJe5afGb&quot;&gt;file:cnaHiKGR4r3RZOeJe5afGb&lt;/a&gt;]: Patch to fix log namespacing&lt;/p&gt;</comment>
                    <comment id="25533" author="importer" created="Tue, 24 Aug 2010 07:08:00 -0500"  >&lt;p&gt;tomfaulhaber said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/90f7ea1dec4e7c835cf3a7f98e67c4e02d7d0f64&quot;&gt;revision:90f7ea1dec4e7c835cf3a7f98e67c4e02d7d0f64&lt;/a&gt;) Fixes #11; log-ns is now captured at macro-expansion-time.&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-68] clojure-contrib distclean maven target</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-68</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;It will be great if clojure-contrib can support distclean target for maven.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14228">CONTRIB-68</key>
            <summary>clojure-contrib distclean maven target</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sun, 31 Jan 2010 09:22:00 -0600</created>
                <updated>Tue, 24 Aug 2010 07:08:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 07:08:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25785" author="importer" created="Tue, 24 Aug 2010 07:08:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/68&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/68&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25786" author="importer" created="Tue, 24 Aug 2010 07:08:00 -0500"  >&lt;p&gt;stuart.sierra said: Maven doesn&apos;t have targets.  &quot;mvn clean&quot; removes all generated files, so it is equivalent to distclean.&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>[CONTRIB-51] Add let-kw to c.c.macros</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-51</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;As discussed &lt;a href=&quot;http://groups.google.com/group/clojure/browse_thread/thread/d6b5fa21073541c1&quot;&gt;in this thread&lt;/a&gt; on the main Clojure list, I&apos;m submitting the let-kw keyword argument processing macro. Please see the attached patch (against the master branch). This is the version &lt;a href=&quot;http://groups.google.com/group/clojure/msg/3ee695696c5ea1ec&quot;&gt;from this message&lt;/a&gt;, which uses symbols for binding, like the normal let form (rather than keywords). The attached patch has a few tests which also provide decent usage examples.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14211">CONTRIB-51</key>
            <summary>Add let-kw to c.c.macros</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sat, 12 Dec 2009 00:33:00 -0600</created>
                <updated>Tue, 24 Aug 2010 06:33:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 06:33:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25712" author="importer" created="Tue, 24 Aug 2010 06:33:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/51&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/51&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
let-kw.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/a_GQWq51ur3PBzeJe5afGb/download/a_GQWq51ur3PBzeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/a_GQWq51ur3PBzeJe5afGb/download/a_GQWq51ur3PBzeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25713" author="importer" created="Tue, 24 Aug 2010 06:33:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#28, #32, #45, #47, #51, #19)&lt;/p&gt;</comment>
                    <comment id="25714" author="importer" created="Tue, 24 Aug 2010 06:33:00 -0500"  >&lt;p&gt;vetoshev said: Canceling this ticket; similar functionality is now in Clojure core: &lt;a href=&quot;http://github.com/richhickey/clojure/commit/29389970bcd41998359681d9a4a20ee391a1e07c&quot;&gt;http://github.com/richhickey/clojure/commit/29389970bcd41998359681d9a4a20ee391a1e07c&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25715" author="importer" created="Tue, 24 Aug 2010 06:33:00 -0500"  >&lt;p&gt;stu said: Updating tickets (#2, #3, #33, #38, #51, #52, #65, #67, #70)&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>[CONTRIB-49] update pom.xml for contrib to include build.clojure.org and ticket 208 change</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-49</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;The pom refers to 1.1.0-alpha, but clojure&apos;s master branch is now called 1.1.0-master. Also, the canonical maven repo for clojure is now build.clojure.org.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14209">CONTRIB-49</key>
            <summary>update pom.xml for contrib to include build.clojure.org and ticket 208 change</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="scgilardi">Stephen C. Gilardi</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 10 Dec 2009 13:46:00 -0600</created>
                <updated>Tue, 24 Aug 2010 06:31:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 06:31:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25702" author="importer" created="Tue, 24 Aug 2010 06:31:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/49&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/49&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25703" author="importer" created="Tue, 24 Aug 2010 06:31:00 -0500"  >&lt;p&gt;chouser@n01se.net said: Fixed in commit e76ad0689697b03cf33da50304f62701d0bd4de8&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>[CONTRIB-48] Replace instances of ^ reader macro with (meta ...)</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-48</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Clojure 1.1 is deprecating the form ^x in favor of (meta x) in order to reclaim the ^ prefix.&lt;/p&gt;

&lt;p&gt;We need to get clojure.contrib to respect this in order to avoid having deprecation warnings.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14208">CONTRIB-48</key>
            <summary>Replace instances of ^ reader macro with (meta ...)</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="tomfaulhaber">Tom Faulhaber</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Mon, 7 Dec 2009 09:51:00 -0600</created>
                <updated>Tue, 24 Aug 2010 06:28:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 06:28:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25697" author="importer" created="Tue, 24 Aug 2010 06:28:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/48&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/48&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
meta.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dmYXqQ5Iyr3QaYeJe5afGb/download/dmYXqQ5Iyr3QaYeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dmYXqQ5Iyr3QaYeJe5afGb/download/dmYXqQ5Iyr3QaYeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25698" author="importer" created="Tue, 24 Aug 2010 06:28:00 -0500"  >&lt;p&gt;abscondment said: [&lt;a href=&quot;file:dmYXqQ5Iyr3QaYeJe5afGb&quot;&gt;file:dmYXqQ5Iyr3QaYeJe5afGb&lt;/a&gt;]: I believe this replaces all instances of the macro.&lt;/p&gt;</comment>
                    <comment id="25699" author="importer" created="Tue, 24 Aug 2010 06:28:00 -0500"  >&lt;p&gt;tomfaulhaber said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/e5b7819ef66410a87b8072417dc2f09ac4ddb03f&quot;&gt;revision:e5b7819ef66410a87b8072417dc2f09ac4ddb03f&lt;/a&gt;) Changed all instances of ^x across contrib to (meta x) since the ^x form is being deprecated in 1.1&lt;br/&gt;
refs #48&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25700" author="importer" created="Tue, 24 Aug 2010 06:28:00 -0500"  >&lt;p&gt;tomfaulhaber said: Sorry, Brendan I didn&apos;t see your patch before I did almost exactly the same thing. I went ahead and pushed my stuff instead since I don&apos;t think that yours would have passed test_contrib (the pprint test you modified would have failed in your version, I just took it out in my version). Let me know if  I missed anything.&lt;/p&gt;</comment>
                    <comment id="25701" author="importer" created="Tue, 24 Aug 2010 06:28:00 -0500"  >&lt;p&gt;abscondment said: Oh, no worries! The tests passed when I ran them (unless I&apos;ve gone totally crazy), but I don&apos;t think coverage is really worse off without that one.&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>[CONTRIB-46] make duck-streams work with java.net.Socket</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-46</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Add another type for the key multimethods in duck-streams.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14206">CONTRIB-46</key>
            <summary>make duck-streams work with java.net.Socket</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="devlinsf">Sean Devlin</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 12 Nov 2009 21:35:00 -0600</created>
                <updated>Tue, 24 Aug 2010 06:10:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 06:10:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25690" author="importer" created="Tue, 24 Aug 2010 06:10:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/46&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/46&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
expand-duck-streams.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/aky6QM0a4r3QwreJe5aVNr/download/aky6QM0a4r3QwreJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/aky6QM0a4r3QwreJe5aVNr/download/aky6QM0a4r3QwreJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25691" author="importer" created="Tue, 24 Aug 2010 06:10:00 -0500"  >&lt;p&gt;devlinsf said: [&lt;a href=&quot;file:aky6QM0a4r3QwreJe5aVNr&quot;&gt;file:aky6QM0a4r3QwreJe5aVNr&lt;/a&gt;]: expand reader/writer to work w/ sockets.&lt;/p&gt;</comment>
                    <comment id="25692" author="importer" created="Tue, 24 Aug 2010 06:10:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/2ae8ff46d348522efe9f96cfd31f6e9b6018cfdc&quot;&gt;revision:2ae8ff46d348522efe9f96cfd31f6e9b6018cfdc&lt;/a&gt;) duck_streams.clj: support Socket in reader &amp;amp; writer; fixes #46&lt;/p&gt;

&lt;p&gt;Patch by Sean Devlin&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-45] Add new functions to c.c.map-utils</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-45</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;This is a ticket for patches related to c.c.map-utils.  See the following discussions:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/clojure-dev/browse_thread/thread/9a518c853bfbba8b&quot;&gt;http://groups.google.com/group/clojure-dev/browse_thread/thread/9a518c853bfbba8b&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://groups.google.com/group/clojure-dev/browse_thread/thread/4b20e40d83095c67&quot;&gt;http://groups.google.com/group/clojure-dev/browse_thread/thread/4b20e40d83095c67&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
            <key id="14205">CONTRIB-45</key>
            <summary>Add new functions to c.c.map-utils</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="3" iconUrl="http://dev.clojure.org/jira/images/icons/status_inprogress.gif">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="devlinsf">Sean Devlin</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Tue, 10 Nov 2009 21:35:00 -0600</created>
                <updated>Tue, 24 Aug 2010 06:08:00 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25687" author="importer" created="Tue, 24 Aug 2010 06:08:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/45&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/45&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
map-utils-update.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/aH0Rc00aur3QaFeJe5afGb/download/aH0Rc00aur3QaFeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/aH0Rc00aur3QaFeJe5afGb/download/aH0Rc00aur3QaFeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25688" author="importer" created="Tue, 24 Aug 2010 06:08:00 -0500"  >&lt;p&gt;devlinsf said: [&lt;a href=&quot;file:aH0Rc00aur3QaFeJe5afGb&quot;&gt;file:aH0Rc00aur3QaFeJe5afGb&lt;/a&gt;]: A patch containing updates to map utils&lt;/p&gt;</comment>
                    <comment id="25689" author="importer" created="Tue, 24 Aug 2010 06:08:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#28, #32, #45, #47, #51, #19)&lt;/p&gt;</comment>
                </comments>
                    <attachments>
                </attachments>
            <subtasks>
        </subtasks>
                <customfields>
                                <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                <customfieldname>Approval</customfieldname>
                <customfieldvalues>
                        <customfieldvalue key="10013">Test</customfieldvalue>

                </customfieldvalues>
            </customfield>
                                                                                    <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-global-rank">
                <customfieldname>Global Rank</customfieldname>
                <customfieldvalues>
                    
                </customfieldvalues>
            </customfield>
                                                                                                            </customfields>
    </item>

<item>
            <title>[CONTRIB-8] Named agent-log function defined within log macro not found at runtime</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-8</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Per an email from Richard Newman:&lt;/p&gt;

&lt;p&gt;By adding print statements to the various &apos;discovery&apos; macros I could confirm that a logging framework was being found. However, when my app (servlet in this case) actually executed a log statement, I got an error that clojure.contrib.logging/agent-log was undefined.&lt;/p&gt;

&lt;p&gt;This confused me, because the presence of any send-log form should cause it to be defined in the macroexpansion. My code simply called (log :info &quot;some string&quot;), which eventually expands into (amongst other things) a send-log form.&lt;/p&gt;

&lt;p&gt;Simply lifting the function definition out of the macro made the problem go away&lt;/p&gt;</description>
                <environment></environment>
            <key id="14168">CONTRIB-8</key>
            <summary>Named agent-log function defined within log macro not found at runtime</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sun, 2 Aug 2009 22:37:00 -0500</created>
                <updated>Tue, 24 Aug 2010 06:06:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 06:06:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25521" author="importer" created="Tue, 24 Aug 2010 06:06:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/8&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/8&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
logging-3.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/cz6050F98r3RuieJe5aVNr/download/cz6050F98r3RuieJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/cz6050F98r3RuieJe5aVNr/download/cz6050F98r3RuieJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25522" author="importer" created="Tue, 24 Aug 2010 06:06:00 -0500"  >&lt;p&gt;ataggart said: [&lt;a href=&quot;file:cz6050F98r3RuieJe5aVNr&quot;&gt;file:cz6050F98r3RuieJe5aVNr&lt;/a&gt;]: Patch solves the issue as well as cleaned up the implementation.&lt;/p&gt;</comment>
                    <comment id="25523" author="importer" created="Tue, 24 Aug 2010 06:06:00 -0500"  >&lt;p&gt;tomfaulhaber said: Late on Sunday night, I didn&apos;t think about it too hard. So I hope Alex got it right and I applied it right!&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>[CONTRIB-37] Include math/lcm for more than 2 args</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-37</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Please pull changes from &lt;a href=&quot;http://github.com/neotyk/clojure-contrib/commit/b70d0c0fd16f6ea6b963fceb39b6d60f1ca55e95&quot;&gt;neotyk/clojure-contrib&lt;/a&gt;.&lt;br/&gt;
This is very small improvement of math/lcm just to accept more than two arguments.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14197">CONTRIB-37</key>
            <summary>Include math/lcm for more than 2 args</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sat, 17 Oct 2009 08:22:00 -0500</created>
                <updated>Tue, 24 Aug 2010 04:51:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 04:51:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25638" author="importer" created="Tue, 24 Aug 2010 04:51:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/37&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/37&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25639" author="importer" created="Tue, 24 Aug 2010 04:51:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25640" author="importer" created="Tue, 24 Aug 2010 04:51:00 -0500"  >&lt;p&gt;stu said: Hi Hubert,&lt;/p&gt;

&lt;p&gt;Have you signed the Contributor Agreement? If so, please let me know and resubmit this patch.&lt;/p&gt;

&lt;p&gt;Stu&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>[CONTRIB-33] Add delete-file and delete-file-recursively functions to java-utils</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-33</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Another one of those bizarre omissions from the JDK. Discussed this with Chouser on IRC, and he thinks it&apos;s a good idea.&lt;/p&gt;

&lt;p&gt;I&apos;ve added it to java-utils, though there are enough file-specific functions now that I think a new file-utils namespace could be spun off.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14193">CONTRIB-33</key>
            <summary>Add delete-file and delete-file-recursively functions to java-utils</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="technomancy">Phil Hagelberg</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Thu, 8 Oct 2009 21:38:00 -0500</created>
                <updated>Tue, 24 Aug 2010 04:46:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 04:46:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25621" author="importer" created="Tue, 24 Aug 2010 04:46:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/33&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/33&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0002-Added-test-for-delete-file.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/cjQBUaTi0r3R7MeJe5afGb/download/cjQBUaTi0r3R7MeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/cjQBUaTi0r3R7MeJe5afGb/download/cjQBUaTi0r3R7MeJe5afGb&lt;/a&gt;&lt;br/&gt;
0001-Add-delete-file-and-delete-file-recursively-function.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/cjQy7qTi0r3R7MeJe5afGb/download/cjQy7qTi0r3R7MeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/cjQy7qTi0r3R7MeJe5afGb/download/cjQy7qTi0r3R7MeJe5afGb&lt;/a&gt;&lt;br/&gt;
0003-Added-a-test-for-delete-file-recursively.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/cjQEqGTi0r3R7MeJe5afGb/download/cjQEqGTi0r3R7MeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/cjQEqGTi0r3R7MeJe5afGb/download/cjQEqGTi0r3R7MeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25622" author="importer" created="Tue, 24 Aug 2010 04:46:00 -0500"  >&lt;p&gt;technomancy said: [&lt;a href=&quot;file:cjQy7qTi0r3R7MeJe5afGb&quot;&gt;file:cjQy7qTi0r3R7MeJe5afGb&lt;/a&gt;]: Implementation&lt;/p&gt;</comment>
                    <comment id="25623" author="importer" created="Tue, 24 Aug 2010 04:46:00 -0500"  >&lt;p&gt;technomancy said: [&lt;a href=&quot;file:cjQBUaTi0r3R7MeJe5afGb&quot;&gt;file:cjQBUaTi0r3R7MeJe5afGb&lt;/a&gt;]: First test&lt;/p&gt;</comment>
                    <comment id="25624" author="importer" created="Tue, 24 Aug 2010 04:46:00 -0500"  >&lt;p&gt;technomancy said: [&lt;a href=&quot;file:cjQEqGTi0r3R7MeJe5afGb&quot;&gt;file:cjQEqGTi0r3R7MeJe5afGb&lt;/a&gt;]: Second test&lt;/p&gt;</comment>
                    <comment id="25625" author="importer" created="Tue, 24 Aug 2010 04:46:00 -0500"  >&lt;p&gt;chouser@n01se.net said: Did you try test-delete-file-recursively on Windows?  Looks like it might have issues there.  I&apos;ll apply the 0001 and 0002 patches, but please take a look at 0003 to see if there&apos;s a way to be sure it won&apos;t cause false negatives.&lt;/p&gt;</comment>
                    <comment id="25626" author="importer" created="Tue, 24 Aug 2010 04:46:00 -0500"  >&lt;p&gt;technomancy said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/8eef617aac7b077421d4aa9c84a2df189af6ee17&quot;&gt;revision:8eef617aac7b077421d4aa9c84a2df189af6ee17&lt;/a&gt;) java-utils: Add delete-file and delete-file-recursively functions&lt;/p&gt;

&lt;p&gt;Also added test for delete-file. Refs #33&lt;/p&gt;

&lt;p&gt;Signed-off-by: Chouser &amp;lt;chouser@n01se.net&amp;gt;&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25627" author="importer" created="Tue, 24 Aug 2010 04:46:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25628" author="importer" created="Tue, 24 Aug 2010 04:46:00 -0500"  >&lt;p&gt;stu said: Updating tickets (#2, #3, #33, #38, #51, #52, #65, #67, #70)&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>[CONTRIB-22] clojure.contrib.str-utils2 is not AOT compiled</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-22</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;build.xml is missing the line to pre-compile the namespace.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14182">CONTRIB-22</key>
            <summary>clojure.contrib.str-utils2 is not AOT compiled</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stu">Stuart Halloway</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sun, 23 Aug 2009 00:02:00 -0500</created>
                <updated>Tue, 24 Aug 2010 04:17:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 04:17:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25565" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/22&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/22&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
ticket-22.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/aQpl6KQH8r3Q2KeJe5afGb/download/aQpl6KQH8r3Q2KeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/aQpl6KQH8r3Q2KeJe5afGb/download/aQpl6KQH8r3Q2KeJe5afGb&lt;/a&gt;&lt;br/&gt;
0001-Automatically-locate-namespaces-to-AOT-compile.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/c5gnW-QIqr3RD1eJe5afGb/download/c5gnW-QIqr3RD1eJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/c5gnW-QIqr3RD1eJe5afGb/download/c5gnW-QIqr3RD1eJe5afGb&lt;/a&gt;&lt;br/&gt;
0001-Ticket-22-patch.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dAQ4d0QIKr3O-6eJe5afGb/download/dAQ4d0QIKr3O-6eJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dAQ4d0QIKr3O-6eJe5afGb/download/dAQ4d0QIKr3O-6eJe5afGb&lt;/a&gt;&lt;br/&gt;
0002-Reconcile-the-patch-s-copy-of-build.xml-fixing-XML-f.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dAVwG8QIKr3O-6eJe5afGb/download/dAVwG8QIKr3O-6eJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dAVwG8QIKr3O-6eJe5afGb/download/dAVwG8QIKr3O-6eJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25566" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;hlship said: The patch addresses a number of compilation problems, and fixes things so that a number of tests that were present (but not run) are now run.&lt;/p&gt;

&lt;p&gt;I think this is just a starting point, and we need seperate folders to identify main source code, gen classes, and tests so that we don&apos;t need so many exclude rules when identifying the namespaces to AOT compile.&lt;/p&gt;</comment>
                    <comment id="25567" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;hlship said: I&apos;m tyring to use the Eclipse Clojure plugin, but due to this bug, clojure.contrib.repl_ln is not pre-compiled and so it doesn&apos;t work. Please take a few minutes to apply the patch!&lt;/p&gt;</comment>
                    <comment id="25568" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;richhickey said: what patch?&lt;/p&gt;</comment>
                    <comment id="25569" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;hlship said: That&apos;s odd ... what did happen to the patch?&lt;/p&gt;

&lt;p&gt;I&apos;ll regenerate it, but this is very, very odd.  I remember adding it to this ticket (maybe I accidentally added it to a different ticket?).&lt;/p&gt;</comment>
                    <comment id="25570" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;hlship said: [&lt;a href=&quot;file:aQpl6KQH8r3Q2KeJe5afGb&quot;&gt;file:aQpl6KQH8r3Q2KeJe5afGb&lt;/a&gt;]: Patch file&lt;/p&gt;</comment>
                    <comment id="25571" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;hlship said: The patch automatically AOT compiles the code; it automatically locates namespaces to compile. I also located a number of &quot;dead&quot; tests (tests that were not being run), some of which needed to be corrected for the move of c.c.test-is to c.test.&lt;/p&gt;</comment>
                    <comment id="25572" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;richhickey said: Patches must be prepared with git format-patch:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://clojure.org/patches&quot;&gt;http://clojure.org/patches&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, your patch seems to contain many + lines that look to me identical to the lines they replace, which makes it very difficult to see what is new. Any idea why that is happening?&lt;/p&gt;</comment>
                    <comment id="25573" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;hlship said: [&lt;a href=&quot;file:c5gnW-QIqr3RD1eJe5afGb&quot;&gt;file:c5gnW-QIqr3RD1eJe5afGb&lt;/a&gt;]: patch via git format-patch&lt;/p&gt;</comment>
                    <comment id="25574" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;hlship said: I&apos;ve create the correct patch ... again, sorry for that.  I was rushing. &lt;/p&gt;

&lt;p&gt;I&apos;m not sure if that&apos;s a spaces vs. tabs issue, or a windows/mac line endings issue.&lt;/p&gt;</comment>
                    <comment id="25575" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;hlship said: I&apos;m redoing the patch, unstaging the whitespace differences inside build.xml.  I&apos;ll have it ready in a few minutes.&lt;/p&gt;</comment>
                    <comment id="25576" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;hlship said: The XML editor I was using put a space before /&amp;gt; in empty tags, thus the changes.  Ugh.&lt;/p&gt;</comment>
                    <comment id="25577" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;hlship said: [&lt;a href=&quot;file:dAQ4d0QIKr3O-6eJe5afGb&quot;&gt;file:dAQ4d0QIKr3O-6eJe5afGb&lt;/a&gt;]: Revised patch, part 1/2&lt;/p&gt;</comment>
                    <comment id="25578" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;hlship said: [&lt;a href=&quot;file:dAVwG8QIKr3O-6eJe5afGb&quot;&gt;file:dAVwG8QIKr3O-6eJe5afGb&lt;/a&gt;]: Revised patch, part 2/2&lt;/p&gt;</comment>
                    <comment id="25579" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;hlship said: Just added two new patch files that were created against the latest pull from GitHub master, and do not have the erroneous lines (an XML formatting issue).  Should be much more straight forward to apply. Sorry for the trouble.&lt;/p&gt;</comment>
                    <comment id="25580" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;stu said: looking at this now...&lt;/p&gt;</comment>
                    <comment id="25581" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;stu said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/04a22729691863a5b7e7b1b3c6c1157a02aff3b2&quot;&gt;revision:04a22729691863a5b7e7b1b3c6c1157a02aff3b2&lt;/a&gt;) compile str-utils2 and other build fixes, refs #22&lt;/p&gt;

&lt;p&gt;Branch: master&lt;/p&gt;</comment>
                    <comment id="25582" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;stu said: pushed to master (04a22729691863a5b7e7b1b3c6c1157a02aff3b2). Let me know if you see any issues.&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>[CONTRIB-23] Clojure AOT compilation will compile unwanted classes</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-23</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;My build file specifies the namespaces to AOT compile but if I include another namespace (even from a JAR dependency) that is not AOT compiled, the other namespace will be compiled as well.&lt;/p&gt;

&lt;p&gt;In my case, I was using clojure-contrib&apos;s clojure.contrib.str-utils2 namespace, and I got a bunch of clojure/contrib/str_utils2 classes in my output directory.&lt;/p&gt;

&lt;p&gt;I think that the AOT compiler should NOT precompile any namespaces that are transitively reached, only namespaces in the set specified by the command line are appropriate.&lt;/p&gt;

&lt;p&gt;As currently coded, you will frequently find unwanted third-party dependencies in your output JARs; further, if multiple parties depend on the same JARs, this could cause bloating and duplication in the eventual runtime classpath.&lt;/p&gt;

&lt;p&gt;Note: I&apos;m tracking against master for both clojure and clojure-contrib.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14183">CONTRIB-23</key>
            <summary>Clojure AOT compilation will compile unwanted classes</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="-1">Unassigned</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sun, 23 Aug 2009 00:06:00 -0500</created>
                <updated>Tue, 24 Aug 2010 04:17:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 04:17:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25583" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/23&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/23&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25584" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25585" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;stuart.sierra said: I don&apos;t quite understand this ticket, but clojure-contrib is no longer AOT-compiled by default except for those namespaces that need it.&lt;/p&gt;

&lt;p&gt;Note that Clojure generates one class per fn, so one AOT-compiled namespace produces many classes.&lt;/p&gt;</comment>
                    <comment id="25586" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;technomancy said: This is a Clojure issue, not a Contrib issue.&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>[CONTRIB-24] Dependency from clojure-contrib to clojure is incorrect (for Maven snapshot builds)</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-24</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;The version number of Clojure is still listed in pom.xml as 1.0-SNAPSHOT, but should be 1.1.0-alpha-SNAPSHOT to track the master of clojure-contrib against the master of clojure-lang.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14184">CONTRIB-24</key>
            <summary>Dependency from clojure-contrib to clojure is incorrect (for Maven snapshot builds)</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="hlship">Howard Lewis Ship</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sun, 23 Aug 2009 00:10:00 -0500</created>
                <updated>Tue, 24 Aug 2010 04:17:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 04:17:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25587" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/24&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/24&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-Change-version-number-of-clojure-lang-dependency.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/d0vOJgKN8r3PeveJe5aVNr/download/d0vOJgKN8r3PeveJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/d0vOJgKN8r3PeveJe5aVNr/download/d0vOJgKN8r3PeveJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25588" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;hlship said: [&lt;a href=&quot;file:d0vOJgKN8r3PeveJe5aVNr&quot;&gt;file:d0vOJgKN8r3PeveJe5aVNr&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25589" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;hlship said: I believe this is the last problem with the CI server build (and thus the Maven nightlies). Because the version number is wrong, clojure-contrib can&apos;t build on the CI server, since clojure-contrib master needs clojure-lang master but is getting clojure-lang 1.0.&lt;/p&gt;</comment>
                    <comment id="25590" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;hlship said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/0ef485fc1e2c80d6d531b5f8874f051e0f4c7d0a&quot;&gt;revision:0ef485fc1e2c80d6d531b5f8874f051e0f4c7d0a&lt;/a&gt;) Change version number of clojure-lang dependency.&lt;/p&gt;

&lt;p&gt;Closes #24&lt;/p&gt;

&lt;p&gt;Signed-off-by: scgilardi &amp;lt;scgilardi@gmail.com&amp;gt;&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-25] Clojure API documentation should identify the date the doc was generated and the version number of the library</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-25</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Failing to do this causes a lot of confusion (I&apos;ve already gotten bit) when you have stable releases out in the world and the docs reflect an alpha version.  This has been painful, for example, with the shift of clojure.contrib.test-is to clojure.test.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14185">CONTRIB-25</key>
            <summary>Clojure API documentation should identify the date the doc was generated and the version number of the library</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="3" iconUrl="http://dev.clojure.org/jira/images/icons/status_inprogress.gif">In Progress</status>
                    <resolution id="-1">Unresolved</resolution>
                                <assignee username="tomfaulhaber">Tom Faulhaber</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sun, 23 Aug 2009 00:21:00 -0500</created>
                <updated>Tue, 24 Aug 2010 04:17:00 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25591" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/25&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/25&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25592" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&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>[CONTRIB-26] Compatibility from clojure.contrib.test-is to clojure.test</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-26</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;It would be nice if there was a compatibility layer for older code compiled against 1.0&apos;s clojure.contrib.test-is to work with 1.1&apos;s clojure.test.  In other words, have a clojure.contrib .test-is namespace that re-exports the corresponding code from the new clojure.test.  Handling the change in the (are) macro&apos;s semantics will be a challenge, however.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14186">CONTRIB-26</key>
            <summary>Compatibility from clojure.contrib.test-is to clojure.test</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sun, 23 Aug 2009 00:23:00 -0500</created>
                <updated>Tue, 24 Aug 2010 04:17:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 04:17:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25593" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/26&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/26&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25594" author="importer" created="Tue, 24 Aug 2010 04:17:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/cdbfc8de5723bc352ee4fb54bd3eeb4502835362&quot;&gt;revision:cdbfc8de5723bc352ee4fb54bd3eeb4502835362&lt;/a&gt;) test_is.clj: compatibility bridge to the new clojure.test; refs #26&lt;/p&gt;

&lt;p&gt;Includes support for the old syntax of the &quot;are&quot; macro.&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-18] java-utils/as-str could be variadic</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-18</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Compojure has a function called str* that works like clojure.core/str but uses the &lt;em&gt;names&lt;/em&gt; of symbols/keywords instead of their literal representation.&lt;/p&gt;

&lt;p&gt;clojure.contrib.java-utils/as-str fulfills the same purpose, but only accepts a single argument.&lt;/p&gt;

&lt;p&gt;as-str could be 100% compatible with str if it became variadic:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(defn as-str
  [&amp;amp; args]
  (apply str (map (fn [x] (&lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (instance? clojure.lang.Named x)
                            (name x) x))
                  args)))

user&amp;gt; (as-str &lt;span class=&quot;code-quote&quot;&gt;&quot;Hello, &quot;&lt;/span&gt; :World)
&lt;span class=&quot;code-quote&quot;&gt;&quot;Hello, World&quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
            <key id="14178">CONTRIB-18</key>
            <summary>java-utils/as-str could be variadic</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 19 Aug 2009 09:32:00 -0500</created>
                <updated>Tue, 24 Aug 2010 04:15:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 04:15:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25554" author="importer" created="Tue, 24 Aug 2010 04:15:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/18&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/18&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25555" author="importer" created="Tue, 24 Aug 2010 04:15:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/5dbecc380cbb65afff33648325f1e3b44b535143&quot;&gt;revision:5dbecc380cbb65afff33648325f1e3b44b535143&lt;/a&gt;) java_utils.clj: made as-str variadic like str, fixes #18&lt;/p&gt;

&lt;p&gt;This commit also includes tests for this function.&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-19] Re-add auto-agent.clj</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-19</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;This was &lt;a href=&quot;http://groups.google.com/group/clojure-dev/browse_frm/thread/8fe671d08d8e275c?hl=en&quot;&gt;discussed briefly on the clojure dev list&lt;/a&gt;, but no consensus was reached.  Instead, I have attached the changes that have fixed the original library and if the clojure-contrib members wish to include it (again), then it&apos;s readily available.  &lt;/p&gt;

&lt;p&gt;The original code by Sierra required 2 changes to get working.  First, @ was macro-expanding to a lazy-seq, so the filtering based on list? would fail.  Second, I added a check for an explicit call to (deref).  Also, I re-added auto-agent namespace for compilation to build.xml.&lt;/p&gt;

&lt;p&gt;My live changes can be found at: &lt;a href=&quot;http://github.com/fogus/clojure-contrib/tree/auto-agent-again&quot;&gt;http://github.com/fogus/clojure-contrib/tree/auto-agent-again&lt;/a&gt;.  The tests can be run with (run-tests &apos;clojure.contrib.auto-agent).&lt;/p&gt;

&lt;p&gt;If it is merged back into the contrib master, then I would be happy to roll the tests into the test-contrib framework.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14179">CONTRIB-19</key>
            <summary>Re-add auto-agent.clj</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <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="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 19 Aug 2009 10:29:00 -0500</created>
                <updated>Tue, 24 Aug 2010 04:15:00 -0500</updated>
                                                                            <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25556" author="importer" created="Tue, 24 Aug 2010 04:15:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/19&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/19&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
auto-agent-again.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/dHYyXWJour3OEFeJe5afGb/download/dHYyXWJour3OEFeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/dHYyXWJour3OEFeJe5afGb/download/dHYyXWJour3OEFeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25557" author="importer" created="Tue, 24 Aug 2010 04:15:00 -0500"  >&lt;p&gt;fogus said: [&lt;a href=&quot;file:dHYyXWJour3OEFeJe5afGb&quot;&gt;file:dHYyXWJour3OEFeJe5afGb&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25558" author="importer" created="Tue, 24 Aug 2010 04:15:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#28, #32, #45, #47, #51, #19)&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>[CONTRIB-21] Private logging macros aren&apos;t private</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-21</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;E.g.,&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;(defmacro commons-logging
  &lt;span class=&quot;code-quote&quot;&gt;&quot;....&quot;&lt;/span&gt;
  #^{:&lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;}&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;

should be
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;(defmacro commons-logging
  &lt;span class=&quot;code-quote&quot;&gt;&quot;....&quot;&lt;/span&gt;
  {:&lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
            <key id="14181">CONTRIB-21</key>
            <summary>Private logging macros aren&apos;t private</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="ataggart">Alexander Taggart</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 19 Aug 2009 23:15:00 -0500</created>
                <updated>Tue, 24 Aug 2010 04:15:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 04:15:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25562" author="importer" created="Tue, 24 Aug 2010 04:15:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/21&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/21&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
logging-21.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/aL9cSKJver3RM6eJe5aVNr/download/aL9cSKJver3RM6eJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/aL9cSKJver3RM6eJe5aVNr/download/aL9cSKJver3RM6eJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25563" author="importer" created="Tue, 24 Aug 2010 04:15:00 -0500"  >&lt;p&gt;ataggart said: [&lt;a href=&quot;file:aL9cSKJver3RM6eJe5aVNr&quot;&gt;file:aL9cSKJver3RM6eJe5aVNr&lt;/a&gt;]: Fix making impl macros private&lt;/p&gt;</comment>
                    <comment id="25564" author="importer" created="Tue, 24 Aug 2010 04:15:00 -0500"  >&lt;p&gt;ataggart said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/cd69d778f5a08810d4b934dbfc08f400ed34146a&quot;&gt;revision:cd69d778f5a08810d4b934dbfc08f400ed34146a&lt;/a&gt;) Fixed attr-maps on private macros.&lt;br/&gt;
Signed-off-by: Tom Faulhaber &amp;lt;git_net@infolace.com&amp;gt;&lt;br/&gt;
See #21&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-16] duck-streams/copy bug on InputStream-to-Writer</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-16</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;clojure.contrib.duck-streams/copy works incorrectly when copying an InputStream to a Writer.  It does not use the correct buffer size when the buffer is less than full.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14176">CONTRIB-16</key>
            <summary>duck-streams/copy bug on InputStream-to-Writer</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="stuart.sierra">Stuart Sierra</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Mon, 17 Aug 2009 13:40:00 -0500</created>
                <updated>Tue, 24 Aug 2010 04:14:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 04:14:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25548" author="importer" created="Tue, 24 Aug 2010 04:14:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/16&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/16&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25549" author="importer" created="Tue, 24 Aug 2010 04:14:00 -0500"  >&lt;p&gt;stuart.sierra said: Fixed in github, waiting to see if Assembla will notice the commit.&lt;/p&gt;</comment>
                    <comment id="25550" author="importer" created="Tue, 24 Aug 2010 04:14:00 -0500"  >&lt;p&gt;stuart.sierra said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/386168c1b3c64f3402dbf7068f6626b55ac825ec&quot;&gt;revision:386168c1b3c64f3402dbf7068f6626b55ac825ec&lt;/a&gt;) duck_streams.clj: use correct array size, Fixes #16&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-2] Clojure tests: sets</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-2</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Tracking ticket for work on Clojure contributed test suite.&lt;/p&gt;

&lt;p&gt;First basic commit in forked GitHub repo:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://github.com/rnewman/clojure-contrib/commit/1c2d3d6f9ae91abf5a7861706e0173f3290dd926&quot;&gt;http://github.com/rnewman/clojure-contrib/commit/1c2d3d6f9ae91abf5a7861706e0173f3290dd926&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This covers difference, project, join.&lt;/p&gt;

&lt;p&gt;Maintainers: I know the Clojure patch doc says &quot;create a patch&quot;. Would a link to the commit suffice? It seems that a `git pull` and a link to a permanent record of the contents would serve better than using the issue tracker and patch files as a primitive form of version control, at least for real work-in-progress stuff&#65533;&#65533;&#65533;&lt;/p&gt;</description>
                <environment></environment>
            <key id="14162">CONTRIB-2</key>
            <summary>Clojure tests: sets</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="2">Declined</resolution>
                                <assignee username="rnewman">rnewman</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Fri, 19 Jun 2009 08:14:00 -0500</created>
                <updated>Tue, 24 Aug 2010 00:45:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 00:45:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25494" author="importer" created="Tue, 24 Aug 2010 00:45:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/2&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/2&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25495" author="importer" created="Tue, 24 Aug 2010 00:45:00 -0500"  >&lt;p&gt;mikehinchey said: This ticket should be closed as invalid. Clojure tests were moved from contrib to clojure. Also, Richard&apos;s link to github is now dead.&lt;/p&gt;</comment>
                    <comment id="25496" author="importer" created="Tue, 24 Aug 2010 00:45:00 -0500"  >&lt;p&gt;stuart.sierra said: Updating tickets (#1, #2, #3, #4, #6, #20, #23, #25, #30, #31, #33, #34, #35, #37, #38, #52, #55, #58, #59, #60, #61, #62, #63, #64)&lt;/p&gt;</comment>
                    <comment id="25497" author="importer" created="Tue, 24 Aug 2010 00:45:00 -0500"  >&lt;p&gt;oranenj said: I&apos;m just closing this as invalid as it doesn&apos;t seem relevant anymore. Contrib tickets seem to have become unmaintained :/ &lt;/p&gt;

&lt;p&gt;If someone disagrees, please reopen&lt;/p&gt;</comment>
                    <comment id="25498" author="importer" created="Tue, 24 Aug 2010 00:45:00 -0500"  >&lt;p&gt;stu said: Updating tickets (#2, #3, #33, #38, #51, #52, #65, #67, #70)&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>[CONTRIB-10] Implementation-specific logging functions are using reflection</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-10</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;As reported by Richard Newman via email.  &lt;/p&gt;

&lt;p&gt;The lack of type hinting results in multiple reflective calls even if the logging level is disabled.  Not fast.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14170">CONTRIB-10</key>
            <summary>Implementation-specific logging functions are using reflection</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="ataggart">Alexander Taggart</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Wed, 5 Aug 2009 06:44:00 -0500</created>
                <updated>Tue, 24 Aug 2010 00:07:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 00:07:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25527" author="importer" created="Tue, 24 Aug 2010 00:07:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/10&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/10&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
logging-type-hinting.diff - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/aoZzXWGI0r3PQKeJe5afGb/download/aoZzXWGI0r3PQKeJe5afGb&quot;&gt;https://www.assembla.com/spaces/clojure/documents/aoZzXWGI0r3PQKeJe5afGb/download/aoZzXWGI0r3PQKeJe5afGb&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25528" author="importer" created="Tue, 24 Aug 2010 00:07:00 -0500"  >&lt;p&gt;ataggart said: [&lt;a href=&quot;file:aoZzXWGI0r3PQKeJe5afGb&quot;&gt;file:aoZzXWGI0r3PQKeJe5afGb&lt;/a&gt;]: Patch to stop reflection&lt;/p&gt;</comment>
                    <comment id="25529" author="importer" created="Tue, 24 Aug 2010 00:07:00 -0500"  >&lt;p&gt;ataggart said: Implementation-specific functions no longer need reflection.  Now the only reflection warnings remaining are a result of the proxy methods for the log-stream (flush and reset), which I can&apos;t figure out how to solve.&lt;/p&gt;</comment>
                    <comment id="25530" author="importer" created="Tue, 24 Aug 2010 00:07:00 -0500"  >&lt;p&gt;tomfaulhaber said: (In &lt;a href=&quot;http://github.com/clojure/clojure-contrib/commit/6dd2205627cd524894b1175da20ce9c5ac65aef7&quot;&gt;revision:6dd2205627cd524894b1175da20ce9c5ac65aef7&lt;/a&gt;) Added type hints to remove reflection when implementation-specific functions are invoked.&lt;br/&gt;
Fixes #10&lt;/p&gt;

&lt;p&gt;Branch: master&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>[CONTRIB-44] AOT compilation of clojure-contrib.jar pre-sets logging implementation</title>
                <link>http://dev.clojure.org/jira/browse/CONTRIB-44</link>
                <project id="10012" key="CONTRIB">Clojure-Contrib</project>
                        <description>&lt;p&gt;Using ant to build clojure-contrib.jar causes clojure.contrib.logging to be AOT-compiled.&lt;/p&gt;

&lt;p&gt;This means that the classpath at contrib build time affects which logging implementation is used, not the classpath in use when the code &lt;b&gt;using&lt;/b&gt; c.c.l is compiled.&lt;/p&gt;

&lt;p&gt;Using a standard pre-built clojure-contrib.jar one can never use anything but java.util.logging! That&apos;s bad for anyone who uses released snapshots, or who uses different log implementations on different projects, but doesn&apos;t want to maintain different builds of clojure-contrib.jar.&lt;/p&gt;

&lt;p&gt;Furthermore, someone building clojure-contrib.jar with, say, log4j in their classpath will produce a jar in which c.c.l will fail when log4j is unavailable:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;user=&amp;gt; (use &apos;clojure.contrib.logging)
    java.lang.NoClassDefFoundError: org/apache/log4j/Level (NO_SOURCE_FILE:0)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;c.c.l should be adjusted so that the logging implementation is not discovered until runtime, or otherwise be removed from the AOT-compiled set.&lt;/p&gt;</description>
                <environment></environment>
            <key id="14204">CONTRIB-44</key>
            <summary>AOT compilation of clojure-contrib.jar pre-sets logging implementation</summary>
                <type id="1" iconUrl="http://dev.clojure.org/jira/images/icons/bug.gif">Defect</type>
                                        <status id="6" iconUrl="http://dev.clojure.org/jira/images/icons/status_closed.gif">Closed</status>
                    <resolution id="1">Completed</resolution>
                                <assignee username="ataggart">Alexander Taggart</assignee>
                                <reporter username="-1">None</reporter>
                        <labels>
                    </labels>
                <created>Sun, 8 Nov 2009 23:25:00 -0600</created>
                <updated>Tue, 24 Aug 2010 00:06:00 -0500</updated>
                    <resolved>Tue, 24 Aug 2010 00:06:00 -0500</resolved>
                                                                    <due></due>
                    <votes>0</votes>
                        <watches>0</watches>
                        <comments>
                    <comment id="25662" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/44&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/44&lt;/a&gt;&lt;br/&gt;
Attachments:&lt;br/&gt;
0001-Delayed-detection-of-logging-implementation.-See-44.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/deght-7A8r3P1ZeJe5aVNr/download/deght-7A8r3P1ZeJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/deght-7A8r3P1ZeJe5aVNr/download/deght-7A8r3P1ZeJe5aVNr&lt;/a&gt;&lt;br/&gt;
logging-aotc-compatible.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/asSL5Ea1qr34B3eJe5aVNr/download/asSL5Ea1qr34B3eJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/asSL5Ea1qr34B3eJe5aVNr/download/asSL5Ea1qr34B3eJe5aVNr&lt;/a&gt;&lt;br/&gt;
actual-aotc-fix.patch - &lt;a href=&quot;https://www.assembla.com/spaces/clojure/documents/b3wOBUbi0r37IeeJe5aVNr/download/b3wOBUbi0r37IeeJe5aVNr&quot;&gt;https://www.assembla.com/spaces/clojure/documents/b3wOBUbi0r37IeeJe5aVNr/download/b3wOBUbi0r37IeeJe5aVNr&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="25663" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;rnewman said: This simple diff fixes things, albeit at the cost of runtime work.&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;diff --git a/build.xml b/build.xml
index e72d36e..fa1161c 100644
--- a/build.xml
+++ b/build.xml
@@ -118,6 +118,7 @@
         &amp;lt;exclude name=&lt;span class=&quot;code-quote&quot;&gt;&quot;**/repl_utils/javadoc.clj&quot;&lt;/span&gt;/&amp;gt;
         &amp;lt;exclude name=&lt;span class=&quot;code-quote&quot;&gt;&quot;clojure/contrib/load_all.clj&quot;&lt;/span&gt;/&amp;gt;
         &amp;lt;exclude name=&lt;span class=&quot;code-quote&quot;&gt;&quot;**/tests.clj&quot;&lt;/span&gt;/&amp;gt;
+        &amp;lt;exclude name=&lt;span class=&quot;code-quote&quot;&gt;&quot;**/logging.clj&quot;&lt;/span&gt;/&amp;gt;
       &amp;lt;/fileset&amp;gt;
       &amp;lt;chainedmapper&amp;gt;
         &amp;lt;packagemapper from=&lt;span class=&quot;code-quote&quot;&gt;&quot;${src}/*.clj&quot;&lt;/span&gt; to=&lt;span class=&quot;code-quote&quot;&gt;&quot;*&quot;&lt;/span&gt; /&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                    <comment id="25664" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;cemerick said: That&apos;s not really a solution, especially for those of us who can&apos;t (or don&apos;t want to) ship .clj files.&lt;/p&gt;

&lt;p&gt;Would folks be amenable to having each logging system setup fn return a map of implementation fns, which can sit in a top-level delay?  This would push selection of a logging system out of compile-time, regardless of AOT.  Adds the cost of a deref to each logging call, but I can certainly live with that.&lt;/p&gt;</comment>
                    <comment id="25665" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;rnewman said: Yes, I don&apos;t consider it a solution, but it at least allows me and other people to use something other than j.u.l until Alex rewrites this library.&lt;/p&gt;

&lt;p&gt;Sure would be nice to have eval-when&#65533;&#65533;&#65533;&lt;/p&gt;</comment>
                    <comment id="25666" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;cemerick said: I don&apos;t think what I suggested this morning would require much.  If Alex et al. are amenable to it, I&apos;d be happy to produce a patch when I have some spare moments.&lt;/p&gt;</comment>
                    <comment id="25667" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;mattrevelle said: I&apos;m going to go ahead and write up a patch for Chas&apos; proposition.  Alex, if you already have something in mind then feel free to kick me off the ticket.&lt;/p&gt;</comment>
                    <comment id="25668" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;mattrevelle said: [&lt;a href=&quot;file:deght-7A8r3P1ZeJe5aVNr&quot;&gt;file:deght-7A8r3P1ZeJe5aVNr&lt;/a&gt;]&lt;/p&gt;</comment>
                    <comment id="25669" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;mattrevelle said: Patch attached above.  Feedback very welcome.&lt;/p&gt;</comment>
                    <comment id="25670" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;ataggart said: I didn&apos;t notice this ticket until today; guess the initial assignment got lost in all the email noise.&lt;/p&gt;

&lt;p&gt;I&apos;ll take a look at what&apos;s been done so far.&lt;/p&gt;</comment>
                    <comment id="25671" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;ataggart said: I must say, I&apos;m a bit put off by the notion that we should have to discard perfectly useful aspects of Clojure to suit some peoples reaction to whether a JAR contains some .clj files vs. exclusively .class files.  AOT should be an option for code, not a mandate that infects all code in contrib.&lt;/p&gt;

&lt;p&gt;That said, I&apos;m still going to go over the proposed changes.&lt;/p&gt;</comment>
                    <comment id="25672" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;technomancy said: I recommend turning off AOT until Alex gets a chance to go over this patch in more detail.&lt;/p&gt;</comment>
                    <comment id="25673" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;scgilardi said: if nobody objects, I plan to make Phil&apos;s suggested minimal workaround patch &quot;change build.xml to turn off aot for this one file&quot; today.&lt;/p&gt;</comment>
                    <comment id="25674" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;mattrevelle said: Sounds good.&lt;/p&gt;</comment>
                    <comment id="25675" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;scgilardi said: Checked in to the master branch: change to build.xml so it doesn&apos;t compile logging.clj. (suggested by Richard Newman, Phil Hagelberg).&lt;/p&gt;

&lt;p&gt;Do we need this interim change on the 1.1.x branch? Re: 1.1.x, Stuart mentioned &quot;assume all library code is frozen on these branches&quot;. I don&apos;t plan to push this change to the 1.1.x branch without more discussion.&lt;/p&gt;</comment>
                    <comment id="25676" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;rnewman said: The problem is actually worse for people who use a pre-packaged  &lt;br/&gt;
release: c.c.logging will use the logging implementation available on  &lt;br/&gt;
the machine on which the release was built. I&apos;m in favor of pushing  &lt;br/&gt;
the fix wherever it can go.&lt;/p&gt;</comment>
                    <comment id="25677" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;stuart.sierra said: Added to 1.1.x branch, included in 1.1.0-RC2&lt;/p&gt;</comment>
                    <comment id="25678" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;stuart.sierra said: That is, the temporary fix (not compiling logging.clj) is in 1.1.x and 1.1.0-RC2&lt;/p&gt;</comment>
                    <comment id="25679" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;timothypratley said: The issue remains in clojure-contrib-1.1.0-master-20100111.160148-18.jar  (do RC live elsewhere than &lt;a href=&quot;http://build.clojure.org/snapshots&quot;&gt;http://build.clojure.org/snapshots&lt;/a&gt; ?)&lt;/p&gt;

&lt;p&gt;Might it be possible to have the best of both worlds by having a dynamic binding of the macros? By this I mean the log macros can be rebound when the lib is used, so macro expansions after loading the lib will use the current environment. This would preclude AOT libs from &lt;b&gt;using&lt;/b&gt; logging though, as the macro would be different in the lib compile environment and the user compile environment.&lt;/p&gt;

&lt;p&gt;It seems the most robust solution would be to allow the choice of either fully dynamic log binding (might be useful for libs), or macro expanded logging... which would require two namespaces: clojure.contrib.logging and clojure.contrib.logging-dynamic or something like that.&lt;/p&gt;</comment>
                    <comment id="25680" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;ataggart said: [&lt;a href=&quot;file:asSL5Ea1qr34B3eJe5aVNr&quot;&gt;file:asSL5Ea1qr34B3eJe5aVNr&lt;/a&gt;]: patch to handle aotc issues&lt;/p&gt;</comment>
                    <comment id="25681" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;ataggart said: I&apos;ve taken Matt&apos;s idea regarding delays and made a less invasive change.&lt;/p&gt;

&lt;p&gt;The patch also contains some switches that can be set during compilation to obviate certain performance penalties introduced in order to handle AOTC.&lt;/p&gt;

&lt;p&gt;See the note at the bottom of the ns docs for more info.&lt;/p&gt;</comment>
                    <comment id="25682" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;ataggart said: Ok, I clearly was working on this too late in the evening.  There are some kinks to work out.  Setting back to new until I have them ironed out.&lt;/p&gt;</comment>
                    <comment id="25683" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;ataggart said: [&lt;a href=&quot;file:b3wOBUbi0r37IeeJe5aVNr&quot;&gt;file:b3wOBUbi0r37IeeJe5aVNr&lt;/a&gt;]: Final (I hope) patch attempt&lt;/p&gt;</comment>
                    <comment id="25684" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;ataggart said: Wow, I&apos;m an idiot.&lt;/p&gt;

&lt;p&gt;The solution was simply to make the implementation-specific-def&apos;ing macros (e.g., log4j-logging) into functions that call eval at runtime.&lt;/p&gt;

&lt;p&gt;Sigh.&lt;/p&gt;</comment>
                    <comment id="25685" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;ataggart said: Not sure what &quot;Next Release&quot; means, but the latest patch (on Jan 18 15:59) can be pushed to master at anytime.&lt;/p&gt;</comment>
                    <comment id="25686" author="importer" created="Tue, 24 Aug 2010 00:06:00 -0500"  >&lt;p&gt;stuart.sierra said: Applied in commit 655060b3f265026ef3b45b44f5ab22d8897b3034&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>
</channel>
</rss>