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

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

<item>
            <title>[CLJ-272] load/ns/require/use overhaul</title>
                <link>http://dev.clojure.org/jira/browse/CLJ-272</link>
                <project id="10010" key="CLJ">Clojure</project>
                        <description>&lt;p&gt;Creating this ticket to describe various things people have wanted to change about how ns works:&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;Minimalneeds&quot;&gt;&lt;/a&gt;Minimal needs  &lt;/h2&gt;

&lt;ol&gt;
	&lt;li&gt;there should be a primitive level of loading (presumably &lt;tt&gt;load&lt;/tt&gt;) that just loads without question.&lt;/li&gt;
	&lt;li&gt;the api should be unified across the ns and direct forms. No more keywords or quoting! So &lt;tt&gt;(use foo)&amp;lt;/code&amp;gt; not &amp;lt;code&amp;gt;(use &apos;foo)&amp;lt;/code&amp;gt;. This makes &amp;lt;code&amp;gt;use&amp;lt;/code&amp;gt; et al macros, so there should also be new fn versions (maybe &amp;lt;code&amp;gt;use*&lt;/tt&gt;).&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;&lt;a name=&quot;Otherpossibilitiestodiscuss.&quot;&gt;&lt;/a&gt;Other possibilities to discuss.&lt;/h2&gt;

&lt;ol&gt;
	&lt;li&gt;Feature addressing the {{:like&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;:clone&amp;lt;/code&amp;gt; ideas from &lt;a href=&quot;http://onclojure.com/2010/02/17/managing-namespaces/&quot;&gt;http://onclojure.com/2010/02/17/managing-namespaces/&lt;/a&gt;. I think I would prefer a single new option &amp;lt;code&amp;gt;:clone&amp;lt;/code&amp;gt; which allows &amp;lt;code&amp;gt;:only&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;:exclude}} features as subspecifiers.&lt;/li&gt;
	&lt;li&gt;Convenience fn to unmap all names in a namespace?&lt;/li&gt;
&lt;/ol&gt;
</description>
                <environment></environment>
            <key id="13669">CLJ-272</key>
            <summary>load/ns/require/use overhaul</summary>
                <type id="4" iconUrl="http://dev.clojure.org/jira/images/icons/improvement.gif">Enhancement</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>Thu, 18 Feb 2010 03:47:00 -0600</created>
                <updated>Tue, 28 Feb 2012 03:56:11 -0600</updated>
                                                    <fixVersion>Backlog</fixVersion>
                                        <due></due>
                    <votes>3</votes>
                        <watches>6</watches>
                        <comments>
                    <comment id="23522" author="importer" created="Tue, 24 Aug 2010 09:27:00 -0500"  >&lt;p&gt;Converted from &lt;a href=&quot;http://www.assembla.com/spaces/clojure/tickets/272&quot;&gt;http://www.assembla.com/spaces/clojure/tickets/272&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="23523" author="importer" created="Tue, 24 Aug 2010 09:27:00 -0500"  >&lt;p&gt;stu said: Suggestions from Volkan Yazici:&lt;/p&gt;

&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;I saw your &quot;load/ns/require/use overhaul&quot; ticket&lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; and would like to&lt;br/&gt;
ask for a few extra overhaulings. I have a project called retop, and&lt;br/&gt;
here is its file hiearachy:&lt;/p&gt;

&lt;p&gt; tr/edu/bilkent/cs/retop.clj&lt;br/&gt;
 tr/edu/bilkent/cs/retop/km.clj&lt;br/&gt;
 tr/edu/bilkent/cs/retop/graph.clj&lt;br/&gt;
 tr/edu/bilkent/cs/retop/main.clj&lt;br/&gt;
 tr/edu/bilkent/cs/retop/util.clj&lt;/p&gt;

&lt;p&gt;In retop.clj, I have below ns definition.&lt;/p&gt;

&lt;p&gt; (ns tr.edu.bilkent.cs.retop&lt;br/&gt;
   (:gen-class)&lt;br/&gt;
   (:import&lt;br/&gt;
    (com.sun.jna&lt;br/&gt;
     Function&lt;br/&gt;
     Pointer)&lt;br/&gt;
    (com.sun.jna.ptr&lt;br/&gt;
     IntByReference)&lt;br/&gt;
    (tr.edu.bilkent.cs.patoh&lt;br/&gt;
     HyperGraph&lt;br/&gt;
     HyperGraphException&lt;br/&gt;
     Parititoning&lt;br/&gt;
     ParititoningParameters))&lt;br/&gt;
   (:load&lt;br/&gt;
    &quot;retop/util&quot;&lt;br/&gt;
    &quot;retop/km&quot;&lt;br/&gt;
    &quot;retop/graph&quot;&lt;br/&gt;
    &quot;retop/main&quot;))&lt;/p&gt;

&lt;p&gt;And in every .clj file in retop/ directory I have below in-ns in the&lt;br/&gt;
very first line.&lt;/p&gt;

&lt;p&gt; (in-ns &apos;tr.edu.bilkent.cs.retop)&lt;/p&gt;

&lt;p&gt;The problems with the ns decleration are:&lt;/p&gt;

&lt;p&gt;1) Most of the :import&apos;s in retop.clj only belong to a single .clj file.&lt;br/&gt;
  For instance,&lt;/p&gt;

&lt;p&gt;    (tr.edu.bilkent.cs.patoh&lt;br/&gt;
     HyperGraph&lt;br/&gt;
     HyperGraphException&lt;br/&gt;
     Parititoning&lt;br/&gt;
     ParititoningParameters)&lt;/p&gt;

&lt;p&gt;  imports are only used by graph.clj. Yep, I can add an (import ...)&lt;br/&gt;
  line just after the (in-ns ...), but wouldn&apos;t it be better if I can&lt;br/&gt;
  specify that in (in-ns ...) form?&lt;/p&gt;

&lt;p&gt;2) See (:load ...) clause in (ns ...) form. There are lots of&lt;br/&gt;
  unnecessary directory prefixes. I&apos;d be prefer something ala Common&lt;br/&gt;
  Lisp&apos;s defpackage:&lt;/p&gt;

&lt;p&gt;    (:load&lt;br/&gt;
     &quot;packages&quot;   ; packages.clj&lt;br/&gt;
     (&quot;retop&quot;&lt;br/&gt;
      &quot;util&quot;      ; retop/util.clj&lt;br/&gt;
      &quot;km&quot;        ; retop/km.clj&lt;br/&gt;
      &quot;graph&quot;     ; retop/graph.clj&lt;br/&gt;
      (&quot;graph&quot;&lt;br/&gt;
       &quot;foo&quot;      ; retop/graph/foo.clj&lt;br/&gt;
       &quot;bar)      ; retop/graph/bar.clj&lt;br/&gt;
      &quot;main&quot;))    ; retop/main.clj&lt;/p&gt;

&lt;p&gt;  Also, being able to use wildcards would be awesome.&lt;/p&gt;

&lt;p&gt;3) There are inconsistencies between macros and functions. For instance,&lt;br/&gt;
  consider:&lt;/p&gt;

&lt;p&gt;    (ns foo.bar.baz (:use mov))&lt;br/&gt;
    (in-ns &apos;foo.bar.baz)&lt;br/&gt;
    (use &apos;mov)&lt;/p&gt;

&lt;p&gt;  I&apos;d like to get rid of quotations in both cases.&lt;/p&gt;

&lt;p&gt;I&apos;m not sure if I&apos;m using the right tools and doing the right approach&lt;br/&gt;
for such a project. But if you agree with the above overhauling&lt;br/&gt;
requirements, I&apos;d like to see them appear in the same assembla ticket as&lt;br/&gt;
well.&lt;/p&gt;</comment>
                    <comment id="23524" author="importer" created="Tue, 24 Aug 2010 09:27:00 -0500"  >&lt;p&gt;stuart.sierra said: My requests:&lt;/p&gt;

&lt;p&gt;1. If writing macros that do not evaluate their arguments, provide function versions that do evaluate their arguments.&lt;/p&gt;

&lt;p&gt;2. Do not support prefix lists for loading Clojure namespaces.  It&apos;s hard to parse with external tools.&lt;/p&gt;

&lt;p&gt;3. Do not conflate importing Java classes with loading Clojure namespaces.  They are fundamentally different operations with different semantics.&lt;/p&gt;

&lt;p&gt;I have implemented some ideas in a macro called &quot;need&quot; at &lt;a href=&quot;http://github.com/stuartsierra/need&quot;&gt;http://github.com/stuartsierra/need&lt;/a&gt;&lt;/p&gt;</comment>
                    <comment id="26026" author="stuart.sierra" created="Sun, 12 Dec 2010 16:08:30 -0600"  >&lt;p&gt;Further requests:&lt;/p&gt;

&lt;p&gt;Permit tools to read the &quot;ns&quot; declaration and statically determine the dependencies of a namespace, without evaluating any code.&lt;/p&gt;</comment>
                    <comment id="27883" author="pmoriarty" created="Tue, 28 Feb 2012 03:56:11 -0600"  >&lt;blockquote&gt;&lt;p&gt;Permit tools to read the &quot;ns&quot; declaration and statically determine the dependencies of a namespace, without evaluating any code.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;This would be great for building OSGi bundles where Bnd is currently not  much help.&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>