- #143 Strip unquoting from refer replacement messages (@arrdem).
- #142 Improve replacement messages from refer (@arrdem).
- #136 Support
^:deprecated
annotations on single fn arities (@arrdem). - #138 Roll back deprecation of
clojure-version
,*clojure-version*
(@arrdem). - #135 Make
get
throw on non-associative arguments (@arrdem). - #164 Add
defn
style docstring and attr-map support todefonce
(@arrdem). - #155 Add
defn
style docstring and attr-map support todefprotocol
(@arrdem).
- #133 Bugfix: demote refer-clojure from macro to fn so it works outside the ns form (@arrdem).
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 Add support for
.jnt
files (@arrdem).load-file
now chooses the first file of.class
,.jnt
,.clj
,.cljc
.
- #129 Emit
^:uses
metadata onFn
instances (@arrdem). - #126 Add reader support for
Infinity
,NaN
(@arrdem). - #123 Add support for
:jnt
in reader conditionals (@arrdem).- Update to Java 1.8
- Implement
java.lang.Iterable
overclojure.lang.Seqable
using a Java 8 interface default method - Add
clojure.lang.RT.union(set, seq):set
- #122 Catch and print exceptions encountered loading
user.clj
(@arrdem). - #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.
- Deprecate
- #117 Fix typo in arglists (@arrdem).
- #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
.
- Add
- #111 Add a warning when expanding deprecated macros (@arrdem).
- #108 Add tests against CIDER (@arrdem).
- #107 Set version to 0.1.0 (@arrdem).
- Fix a minor bug in
*jaunt-version*
loading due to the Maven qualifier being empty/nil
- Refactor
ns
forms to prefer explicit full ns macro docstrings, attrs over^{}
- Standardize
^:added
version metadata on namespaces and vars - Standardize
^:deprecated
version metadata on namespaces and vars - Add
^:authors
metadata on namespaces, replacing^:author
- Fix a minor bug in
- #72 Impose cljfmt linting of clj sources (@arrdem).
- #105 Run CircleCI tests in parallel (@arrdem).
- Adds
etc/bin/run-tests.sh
- If on CircleCI, tests will be run "normally" (CircleCI is configured to use two containers
when building Jaunt, choose which half of the test suite to run by the the
$CIRCLE_NODE_INDEX
var.) - If not on CircleCI, spawn a pair of subshells simulating CircleCI containers as above, check their exit codes and report back.
- If on CircleCI, tests will be run "normally" (CircleCI is configured to use two containers
when building Jaunt, choose which half of the test suite to run by the the
- Configures CircleCI to use
run-tests.sh
- Adds
- #95 Introduce
*jaunt-version*
, deprecating*clojure-version*
(@arrdem). - #101 Add small (64px, 128px) logos (@arrdem).
- #99 Bugfix: make
private?
check^:private
(@arrdem).- Fix
private?
to check the correct metadata - Add tests of
private?
- Add tests of
deprecated?
- Fix
- #98 Add and use a logo (@arrdem).
- #94 Provide a thread binding of compiler-options so it may be set! (@arrdem).
- #93 Display the correct project name in the REPL banner (@arrdem).
- #92 Fix refer/alias warnings not displaying at the REPL (@arrdem).
- #89 Add ^:once support to Vars (@arrdem).
- This changeset enables analysis tooling to distinguish between
Var
s which are bound 'once' and those which are simply bound. - Add
clojure.lang.Var.isOnce()
,clojure.lang.Var.setOnce()
,clojure.lang.Var.setOnce(bool)
. - Refactor
clojure.core/defonce
to useisOnce
and set^:once
rather than simply checking if theVar
is bound. clojure.core/defonce
now returns the definedVar
same asdef
.- Add tests of
clojure.core/defonce
with regards to all of the above behavior.
- This changeset enables analysis tooling to distinguish between
- #60 Versioned namespaces in support of reloading (@arrdem).
- This changeset reworks the namespace macro and namespace system to provide better reloading
support with fewer gotchas requiring a repl restart.
- Namespace aliases are now cleared when reloading. This enables users to
(:require :as ...)
reusing names without restarting the system. - Namespaces now have a concept of version, being the number of times they have been
reset/reevaluated (
clojure.lang.Namespace.getRev()
). - Vars track the version of the Namespace in which they are defined, synchronizing versions
whenever their root binding is altered say by a
def
form. - Namespace bound Vars can now report if they were defined in the current version of their
parent Namespace (
clojure.lang.Var.isStale()
). - The compiler emits warnings when analyzing uses of Vars which are not up to date with their
parent Namespace. This allows users to detect uses of deleted defs without a system
restart. This warning is controlled by the compiler flag
:warn-on-stale
, which istrue
by default.
- Namespace aliases are now cleared when reloading. This enables users to
- This changeset reworks the namespace macro and namespace system to provide better reloading
support with fewer gotchas requiring a repl restart.
- #87 Send build notifications to gitter (@arrdem).
- #86 Fix false changelog linter failures on develop, master, release/* (@arrdem).
- #84 Whole bag of project changes (@arrdem).
- Set the project base version to 1.9.0.
- Emit CircleCI artifact jars on a successful build.
- Randomly (p 50%) refresh deps on CircleCI because Maven is awful.
- Add a linter checking that changelog entries have been added.
- Move the licenses into /etc/licenses.
- Move the scripts into /etc/bin.
- Remove some project cruft.
- #78 Clean up warnings from #62 (@arrdem).
- Fix warning that
clojure.core/global-higherarchy
looses^:private
during reloading due to a forward declaration lacking the appropriate tag. - Fix warning that
clojure.core/process-annotation
looses^:private
during reloading due to a forward declaration lacking the appropriate tag.
- Fix warning that
- #76 Rename project to Jaunt (@arrdem).
- Renames the project from
me.arrdem/clojarr
toorg.jaunt-lang/jaunt
.
- Renames the project from
- #71 Bugfix: CLJ-1579 (@arrdem).
- Fixes a bug where
clojure.repl/source-fn
could fail to read the source for a symbol if the symbol makes textual use of reader namespaced keywords.
- Fixes a bug where
- #62 Var metadata contracts (@arrdem).
- Enforce a strict contract between
^:private
,^:dynamic
,^:once
as metadata on aVar
and theisDynamic
/setDynamic
,isOnce
/setOnce
,isPublic
/setPublic
methods on theVar
. Ensures that for instance aVar
can never haveisDynamic → true
without having the^:dynamic
metadata, and that if the^:dynamic
flag is lost, theVar
will correctly stateisDynamic → false
. - Adds a warning when
^:private
is discarded. - Adds a warning when
^:dynamic
is discarded. - Adds a warning when
^:once
is discarded.
- Enforce a strict contract between
- #52 Add
clojure.core/*line*
andclojure.core/*column*
(@arrdem).- Exposes the line and column positions (as integers) of the top level form being compiled/evaluated.
- #50 Add
clojure.core/ns?
(@arrdem).- Adds a
ns?
type predicate.
- Adds a
- #48 Promote
clojure.core/ns-name
from ^:deprecated (@arrdem).- Removes the
^:deprecated
flag fromns-name
- Use
clojure.lang.Namespace.name:Symbol
rather than making a newSymbol
from the ns's nameString
.
- Removes the
- #44 Bugfix: correct
clojure.core/ns-name
return type (@arrdem).- Corrects
ns-name
to return aSymbol
as before. - Broken by #38
- Corrects
- #38 Named on Namespaces (@arrdem).
- Implements the
clojure.lang.Named
interface overclojure.lang.Namespace
. - Breaks
clojure.lang.Namespace.getName()
. Previously returnedSymbol
, now returnsString
.
- Implements the
- #37 Named on Vars (@arrdem).
- Implements the
clojure.lang.Named
interface overclojure.lang.Var
.
- Implements the
- #2 Pedantic compiler options (@arrdem).
- Added
:warn-on-deprecated
(true by default) as a compiler option. When true, the compiler will emit warnings when^:deprecated
Vars or Namespaces are used from outside of a^:deprecated
context (deprecated ns or def). - Added
:warn-on-access-violation
(true by defautl) as a compiler option. When true, the compiler will emit warnings if^:private
Vars are accessed from outside the namespace in which they are defined. - Added
:warn-on-earmuffs
(true by default) as a compiler option. When true, the compiler will emit warnings if a Var is named with "earmuffs" (matches#"^\*.+\*$"
) and is not^:dynamic
. This warning was already present in Clojure, but there was no way to turn it off. - Added
:pedantic
(false by default) as a compiler option. When true, all compiler warnings are enabled. False by default so that users may more easily selectively mask warnings.
- Added
- Jaunt was forked from Clojure just after the 1.8 release, see Clojure's changelog for project history.