ctn-find/find-namespaces-in-dir
no longer swallows exceptions when the ns
form can't be read, instead it returns a triplet of
[::ctn-find/reader-exception io-file exception]clojure.tools.namespace
as lambdaisland.tools.namespace
Ignore :require-macros
and :use-macros
when parsing namespace
dependencies. This is a change in behavior from previous 0.3
alphas and is a more robust fix for TNS-38. tools.namespace
currently only models one dependency graph at a time, so it treats
Clojure and ClojureScript as separate worlds and will not attempt
to analyze dependency relationships which cross that boundary.
Fix TNS-40: do not catch exceptions in c.t.n.file
. Instead,
catch and ignore only syntax exceptions (identified by ex-data
from tools.reader). This is a change in behavior from
0.3.0-alpha2 and 0.2. It should have minimal impact on users but
make some errors (such as an incompatible version of tools.reader)
more obvious.
Known bugs not yet fixed: TNS-42 When the same namespace is
defined in both .clj
and .cljc
files, dependencies may be read
from either, when it should prefer the .clj
file.
Fix TNS-38: ignore circular dependency from .cljs
file to
.clj
file in :require-macros
tools.reader version 0.10.0
java.classpath version 0.2.3
Add clojure.tools.namespace.parse/name-from-ns-decl
Partial ClojureScript Support TNS-35
Platform-neutral namespaces were converted to conditional-read
(.cljc
) files: c.t.n.dependency, c.t.n.track, and
c.t.n.parse. These namespaces can be used in ClojureScript
programs.
Added support for finding, parsing, and analyzing
ClojureScript source files (.cljs
and .cljc
) in
c.t.n.file, c.t.n.parse, c.t.n.dir, and c.t.n.find with
optional "platform" arguments. These namespaces still only
run on the Clojure(JVM) platform.
Reloading and interactive features remain Clojure(JVM) only for now: c.t.n.move, c.t.n.reload, and c.t.n.repl
Uses tools.reader for platform-independent parsing and conditional-reader support.
Minimum Clojure version is 1.7.0
Breaking change: c.t.n.parse/read-ns-decl
no longer returns
nil
on syntax errors. Instead, exceptions are allowed to
propagate up from tools.reader. This change only affects code
which calls read-ns-decl
directly. c.t.n.file and c.t.n.find
will catch and ignore reader exeptions when trying to read
namespace declarations.
Enhancement TNS-36: Use java.classpath for better JVM classpath resolution
Possible breaking change: parse/read-ns-decl does not capture reader errors
Some definitions deprecated; see source code or Var metadata for details.
Adds dependency on java.classpath
Fix TNS-20: Undefined 'unload' order after namespaces are first added to an new, empty tracker.
Improvement TNS-21: Support ns
clauses which use vectors
instead of lists for clauses, contrary to docs.
Improvement TNS-32: Support ns
clauses which use symbols as
clause heads instead of keywords, contrary to docs.
Improvement TNS-31: Specific error message when :after
symbol
passed to refresh
cannot be resolved.
Fix TNS-26: namespace alias recovery after failed reload did not work due to local binding shadowing global Var
clojure.tools.namespace.parse/read-ns-decl
asserts that its
argument is a PushbackReader, instead of silently returning nil
Fix TNS-22: broken clojure.string/replace
with Windows path
separator
New clojure.tools.namespace.repl/clear
empties the state of the
REPL dependency tracker. This can help repair the dependency
tracker after a failed load or a circular dependency error.
Enhancement TNS-19: deps-from-ns-decl
should return an empty
set instead of nil. This may be a breaking change for some but
is consistent with the original docstring.
Enhancement TNS-18: Compute transitive dependencies in linear time.
Enhancement TNS-17: The ns
form doesn't need to be the first
top-level form in a file.
Fix TNS-16: Don't depend on specific hash ordering in tests. Exposed by new hash functions in Clojure 1.6.0.
Fix TNS-15: Handle spaces in classpath directories (old
clojure.tools.namespace
)
Fix TNS-12: Duplicate definition of jar-file?
Fix TNS-10: Forbid circular dependency when a namespace depends on itself
Fix TNS-8: In move-ns
, do not modify files whose contents does
not change
New: Add :after
option to refresh
New: Add clojure.tools.namespace.move
Fix TNS-4, reflection warnings
Fix: Restore deprecated 0.1.x APIs in clojure.tools.namespace
Fix TNS-3, actually use refresh-dirs
Not recommended for use: this release introduced breaking API changes (renaming core namespaces and functions) without backwards-compatibility. Applications with dependencies on both the 0.2.x and 0.1.x APIs cannot use this version.
New dependency tracking & reloading features
Eliminate dependency on java.classpath
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close