This is a meta-issue spread across many patches and mailing-list discussions.
Problems
- New users are frequently confused by the differences among require, use, import, and ns
- Ahead-of-time-compiled Clojure sources break when internal Clojure APIs change
Tickets
- CLJ-879: Allow :require to support a :refer clause
- CLJ-461: require namespace implicitly
- CLJ-322: Enhance AOT compilation process to emit classfiles only for explicitly-specified namespaces
- CLJ-272: load/ns/require/use overhaul
- CLJ-148: Poor reporting of symbol conflicts when using (ns)
- CLJ-42: GC Issue 38: When using AOT compilation, "load"ed files are not reloaded on (require :reload 'name.space)
- CLJ-8: GC Issue 3: Re-enable detection of circular loads
Discussions
- ns/use/require/import inconsistent and confusing, Clojure thread started 11/30/2011
- simplifying the require/use situation, clojure-dev thread started 11/16/2011
- Namespace loading upon deftype/defrecord class init?, clojure-dev thread started 1/1/2011
- Bugfix release for 1.4, leiningen thread started 12/12/2010
- AOT, CLJ-322, Leiningen, and you, Clojure thread started 12/12/2010
- require namesapces implicitly, clojure-dev thread started 9/26/2010
- "need" - add to contrib?, clojure-dev thread started 4/27/2010
- Suggestion: alias for single part namespaces, clojure-dev thread started 4/7/2010
- Managing Namespaces, blog post by khinsen, 2/17/2010
- ns/load/require/use overhaul, clojure-dev thread started 2/13/2010
- Issue request: RT.load's "don't load if already loaded" mechanism breaks ":reload-all", clojure-dev thread started 2/6/2010
- Datatypes and protocols - update, clojure message 12/12/2009
- Better documentation and error messages are needed for the ns macro, clojure thread started 11/10/2009
Sample Code
- clj-nstools: permits any namespace to serve as a template for constructing other namespaces
- need: a macro to load Clojure namespaces
Labels: