Skip to content
This repository has been archived by the owner on Jan 28, 2019. It is now read-only.

Strict ns #117

Open
2 of 4 tasks
arrdem opened this issue Mar 30, 2016 · 0 comments
Open
2 of 4 tasks

Strict ns #117

arrdem opened this issue Mar 30, 2016 · 0 comments

Comments

@arrdem
Copy link
Collaborator

arrdem commented Mar 30, 2016

For all that the ns form is "just" a macro, the reality of use is that it's treated as the module header and isn't an especially simple or easy one at that. This issue tracks simplifying the ns macro and making it strict with regards to only performing module-meaningful Namespace manipulations and simplifying/reducing those manipulations to those in common usage and considered good style.

  • Deprecate clojure.core/use Deprecate clojure.core/use #112
  • Deprecate clojure.core/refer Deprecate clojure.core/refer #113 / Deprecated refer #116
  • Make ns strict with reference to what directives it'll accept rather than magically accepting anything in clojure.core.
  • Forms which are legal within the strict ns form should emit warnings or be illegal outside of the ns form. For example top level require and import out of the ns line should probably be a cause for complaint. However this one is up for debate since there are load order reasons to not be strict about this.
arrdem added a commit that referenced this issue Apr 9, 2016
Vist 0.2.0 upon the world

This release focuses on fleshing Jaunt out as a separate platform atop
Clojure, adding support for the `.jnt` file extension and the `:jnt`
reader conditional directive. Other changes include the deprecation and
automatic refactoring hinting of `use` and `refer`, the addition of
`^:uses` metadata fo `AFn` instances in support of future static
analysis work and migration to JDK8 for the entire project although few
JDK8 features are used at this time.

- [#131](#131) Add support for `.jnt` files (@arrdem).
  - `load-file` now chooses the first file of `.class`, `.jnt`, `.clj`, `.cljc`.
- [#129](#129) Emit `^:uses` metadata on `Fn` instances (@arrdem).
- [#126](#126) Add reader support for `Infinity`, `NaN` (@arrdem).
- [#123](#123) Add support for `:jnt` in reader conditionals (@arrdem).
  - Update to Java 1.8
  - Implement `java.lang.Iterable` over `clojure.lang.Seqable` using a Java 8 interface default method
  - Add `clojure.lang.RT.union(set, seq):set`
- [#122](#122) Catch and print exceptions encountered loading `user.clj` (@arrdem).
- [#116](#116) Deprecate `clojure.core/refer` (@arrdem).
  - Deprecate `clojure.core/refer`
  - Refactor `clojure.core/refer` to emit a warning describing how to rewrite refer into require.
- [#117](#117) Fix typo in arglists (@arrdem).
- [#112](#112) Self-refactoring use (@arrdem).
  - Add `clojure.core/sift`.
  - Refactor `clojure.core/use` to emit a warning describing how to rewrite use into require/refer.
  - Refactor out uses of `use`.
- [#111](#111) Add a warning when expanding deprecated macros (@arrdem).
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant