Skip to content

Releases: candid82/joker

v0.9.1

03 Apr 00:25
Compare
Choose a tag to compare
v0.9.1 Pre-release
Pre-release

General improvements

  • added new functions to standard library: joker.os/stat, joker.html/escape, joker.html/unescape, joker.html/start-file-server

Linter improvements

  • Joker will now execute the following files (if they exist) before linting the file: .jokerd/linter.cljc (for both Clojure and ClojureScript), .jokerd/linter.clj (Clojure only), .jokerd/linter.cljs (ClojureScript only). The rules for locating .jokerd directory are the same as for locating .joker file. See #50 for details.
  • Joker will now warn on duplicate var definition

v0.9.0

09 Mar 06:04
Compare
Choose a tag to compare
v0.9.0 Pre-release
Pre-release

General improvements

  • added joker.http/start-server function
  • added many new functions to joker.time namespace (see docs)

Linter improvements

  • strings are now allowed for lib names in require (ClojureScript only) (#48)

Fixes

  • case macro now works properly (#47)

v0.8.9

09 Feb 04:50
Compare
Choose a tag to compare
v0.8.9 Pre-release
Pre-release

General improvements

  • added swap-vals! and reset-vals! functions (from Clojure 1.9)
  • added new functions to standard library: joker.http/send, joker.os/mkdir, joker.os/cwd, joker.os/ls, joker.base64/encode-string, joker.math/sin, joker.math/cos, joker.math/hypot, joker.math/pi (a var).
  • made ExInfo (return by ex-info) a map with :message, :cause, and :data keys.

v0.8.8

08 Jan 05:21
Compare
Choose a tag to compare
v0.8.8 Pre-release
Pre-release

General improvements

  • added joker.core/pprint function (very basic pretty printing)
  • added new command line parameter: -e <expression> will execute provided expression and exit
  • added new command line parameter: --hashmap-threshold <number>. Tells Joker the maximum number of slots in array map. A slot is used for either key or value. If there is more keys and values than provided number (defaults to 16), persistent hashmap will be used instead. Negative value means "no limit", so Joker will always use array maps. This parameter is useful when Joker is used to pretty print EDN data structures: setting it to negative value allows prevents Joker from using persistent hashmaps (which don't preserve keys order) and forces it to use array maps instead (which do preserve keys order). For example, the following command can be used to pretty print EDN data structure (read from stdin):
joker --hashmap-threshold -1 -e "(pprint (read))"

Linter improvements

  • added new rule :no-forms-threading to .joker file. If false, Joker won't issue a warning on threading macros with no forms (i.e. (-> a)). Defaults to true. See #36 for details.
  • removed Joker specific core functions when linting in Clojure(Script) (#33)
  • stacktraces are not printed in linter mode anymore (#41)

Fixes

  • case expressions are now implicitly quoted (#40)

v0.8.7

13 Dec 03:45
Compare
Choose a tag to compare
v0.8.7 Pre-release
Pre-release

General improvements

Linter improvements

  • added new command line arguments: --dialect, --working-dir (#32). Thanks @nicwest!
  • removed Joker's standard namespaces when linting Clojure(Script) files (#33)
  • added arity check on map and set calls (i.e. ({}) will now issue a warning)

v0.8.6

04 Nov 04:33
Compare
Choose a tag to compare
v0.8.6 Pre-release
Pre-release

General improvements

  • Joker doesn't require itself to build its own source code anymore
  • implemented map namespace syntax (#29)

Linter improvements

  • fixed false positives when destructuring maps with namespaced keywords in ClojureScript
  • added warning on unused private macro
  • added warning on calling =, ==, < and similar functions with only one argument

Fixes

  • fixed reading unicode characters (#27)

v0.8.5

03 Oct 05:08
Compare
Choose a tag to compare
v0.8.5 Pre-release
Pre-release

Linter improvements

  • handle :refer-macros properly #23
  • demote "No namespace found" error to warning #21
  • don't panic on duplicate alias
  • understand . call
  • allow callable namespaces in ClojureScript code #11
  • implement :known-namespaces option in .joker file. It allows to avoid false positives in some edge cases. See #21 for details. Example:
{:known-namespaces [clojure.spec.gen.test]}
  • improve arity checks for functions from standard library
  • warn on wrong arity for keyword calls
  • implement :known-tags option in .joker file. See #24 for details. Example:
{:known-tags [db/fn]}
  • implement better support for defrecord, deftype, defmethod, defprotocol, extend-type, reify, extend-protocol

  • fix false positives on BigDecimal

  • fix false positives on symbols with $

v0.8.4

02 Sep 04:17
Compare
Choose a tag to compare
v0.8.4 Pre-release
Pre-release

General improvements

  • implemented splicing reader conditionals

Linter improvements

  • Joker now understands alias and create-ns and won't complain about symbols or keywords in aliased or created namespaces. See #21 for more details.
  • Joker now allows to specify symbols that are introduced by a macro in .joker file:
{:known-macros [[riemann.streams/where [service event]]]}

So each element in :known-macros vector can now be either a symbol (as before) or a vector with two elements: macro's name and a list of symbols introduced by this macro. See #20 for the discussion that led to this feature.

  • fixed false positive on new call

Fixes

  • division by zero doesn't crash Joker anymore
  • fixed loading .joker file on windows

v0.8.3

17 Aug 04:30
Compare
Choose a tag to compare
v0.8.3 Pre-release
Pre-release

General improvements

  • updated to the latest version of readline. This, in particular, allows to build Joker for Solaris.
  • new joker.core/joker-version function
  • new joker.core/*joker-version* var
  • new joker.json/write-string function
  • new joker.time standard namespace, currently with only one function joker.time/sleep

Linter improvements

  • fixed false positive on array call in ClojureScript (#18)
  • warning on re-declaration of core vars

Fixes

  • fixed str for string, regex and chars

v0.8.2

28 Jun 00:54
Compare
Choose a tag to compare
v0.8.2 Pre-release
Pre-release

Linter improvements

  • Joker can now infer types in trivial cases and warn on argument type mismatch for a subset of core functions. For example, this code (map [1 2] inc) will result in a warning:
Parse warning: arg[1] of #'joker.core/map must have type Seqable, got Fn

Fixes

  • fixed reading unicode characters
  • fixed the crash when reading blank keyword '(:)'
  • joker.os/sh result now includes correct :success value (was always true before, now will be false if the process exits with non-zero code)