Change Log
Upcoming
- #143 Strip unquoting from refer replacement messages (@arrdem).
- #142 Improve replacement messages from refer (@arrdem).
- #136 Support
^:deprecatedannotations on single fn arities (@arrdem). - #138 Roll back deprecation of
clojure-version,*clojure-version*(@arrdem). - #135 Make
getthrow on non-associative arguments (@arrdem). - #164 Add
defnstyle docstring and attr-map support todefonce(@arrdem). - #155 Add
defnstyle docstring and attr-map support todefprotocol(@arrdem).
Jaunt 0.2.1
- #133 Bugfix: demote refer-clojure from macro to fn so it works outside the ns form (@arrdem).
Jaunt 0.2.0
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
.jntfiles (@arrdem).load-filenow chooses the first file of.class,.jnt,.clj,.cljc.
- #129 Emit
^:usesmetadata onFninstances (@arrdem). - #126 Add reader support for
Infinity,NaN(@arrdem). - #123 Add support for
:jntin reader conditionals (@arrdem).- Update to Java 1.8
- Implement
java.lang.Iterableoverclojure.lang.Seqableusing 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/referto 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/useto 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).
Jaunt 0.1.0
- #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
nsforms to prefer explicit full ns macro docstrings, attrs over^{} - Standardize
^:addedversion metadata on namespaces and vars - Standardize
^:deprecatedversion metadata on namespaces and vars - Add
^:authorsmetadata 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_INDEXvar.) - 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
Vars 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/defonceto useisOnceand set^:oncerather than simply checking if theVaris bound. clojure.core/defoncenow returns the definedVarsame asdef.- Add tests of
clojure.core/defoncewith 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
defform. - 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 istrueby 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-higherarchylooses^:privateduring reloading due to a forward declaration lacking the appropriate tag. - Fix warning that
clojure.core/process-annotationlooses^:privateduring 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/clojarrtoorg.jaunt-lang/jaunt.
- Renames the project from
- #71 Bugfix: CLJ-1579 (@arrdem).
- Fixes a bug where
clojure.repl/source-fncould 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,^:onceas metadata on aVarand theisDynamic/setDynamic,isOnce/setOnce,isPublic/setPublicmethods on theVar. Ensures that for instance aVarcan never haveisDynamic → truewithout having the^:dynamicmetadata, and that if the^:dynamicflag is lost, theVarwill correctly stateisDynamic → false. - Adds a warning when
^:privateis discarded. - Adds a warning when
^:dynamicis discarded. - Adds a warning when
^:onceis 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-namefrom ^:deprecated (@arrdem).- Removes the
^:deprecatedflag fromns-name - Use
clojure.lang.Namespace.name:Symbolrather than making a newSymbolfrom the ns's nameString.
- Removes the
- #44 Bugfix: correct
clojure.core/ns-namereturn type (@arrdem).- Corrects
ns-nameto return aSymbolas before. - Broken by #38
- Corrects
- #38 Named on Namespaces (@arrdem).
- Implements the
clojure.lang.Namedinterface overclojure.lang.Namespace. - Breaks
clojure.lang.Namespace.getName(). Previously returnedSymbol, now returnsString.
- Implements the
- #37 Named on Vars (@arrdem).
- Implements the
clojure.lang.Namedinterface 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^:deprecatedVars or Namespaces are used from outside of a^:deprecatedcontext (deprecated ns or def). - Added
:warn-on-access-violation(true by defautl) as a compiler option. When true, the compiler will emit warnings if^:privateVars 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
Clojure 1.8
- Jaunt was forked from Clojure just after the 1.8 release, see Clojure's changelog for project history.