Small Clojure interpreter, linter and formatter.
EPL-1.0 License
Bot releases are visible (Hide)
joker.time
functions work with BigInts and Doubles, not just Intsjoker.json/read-string
: try to read integers as Ints, not Doublesns-sources
's argumentslurp
work with reader objects (like *in*
)spit
work with non-string content (like in Clojure) and with writer objects (like *out*
)CTRL+Z
and CTRL+\
properly (thanks @jcburley!).jokerd/linter.joke
(along with .jokerd/linter.clj[s/c]
)joker.os/env
when =
is present in values (thanks @jcburley!)(exit)
causes bash to misbehave (https://github.com/candid82/joker/issues/391)joker.core/exit
function, add zero arity to joker.os/exit
functionjoker.time/in-timezone
functiondeftest
joker.io/pipe
and joker.io/close
functionsjoker.bolt
namespace (bindings for Bolt, in-process key/value store)joker.os/temp-dir
, joker.os/mkdir-temp
and joker.os/create-temp
:known-macros
from .joker
config when linting .joke
files.*core-namespaces*
private variable (thanks @jcburley!)joker.core/go-spew
private function (when built with go_spew
tag) (thanks @jcburley!)joker.string/split
now supports string as a separator argument (thanks @jcburley!)joker.string/re-quote
function (thanks @jcburley!)joker.os/get-env
functionjoker.pprint/print-table
functionrequire
them (thanks @jcburley!)joker.uuid/new
functionjoker.better-cond
namespace (based on https://github.com/Engelberg/better-cond) (thanks @hlship!)joker.hiccup
namespace (thanks @hlship!)joker.os/remove
and joker.os.remove-all
(thanks @jcburley!)ns-sources
ns
and in-ns
are now always resolvable (like in Clojure)--error-to-repl
command line argument (thanks @jcburley!)--file/--expr
input for history playback when --*-to-repl
in effect (thanks @jcburley!)tag
to vars' meta in standard namespaces (thanks @jcburley!)joker.math
namespace (thanks @jcburley!)Double
:keywords?
option to joker.json/read-string
joker.repl/doc
now supports types (Thanks @jcburley!):stdout
and :stderr
option to joker.os/exec.:stdin
, :stdout
and :stderr
options in joker.os/exec
to accept IOReader
and IOWriter
instead of :pipe
keyword (see https://github.com/candid82/joker/issues/266#issuecomment-537793109)--exit-to-repl [socket]
and --file
command line options (thanks @jcburley!)joker.io
namespace and joker.io/copy
function*main-file*
varnil
instead of throwing an exception (previous behavior).BigFloat
:append
option in spit
(doc <namespace>)
(thanks @jcburley!)try
without catch
or finally
try
or finally
with empty bodydo
with 0 or 1 formswhen
and when-not
with empty bodyRatio
operationsjoker.time/parse
and joker.time/add-date
functions (thanks @mrichards42!)stdin
handling in joker.os/exec
(thanks @rwstauner and @jcburley!)ex-message
now works with built-in errorsjoker.os/exists?
functionread-string
:unused-keys
rule (see https://github.com/candid82/joker/issues/240 for details)ex-cause
for nil casejoker.filepath
namespacejoker.time
letfn
*print-namespace-maps*
joker.os/exec
joker.crypto
and joker.hex
namespacesJOKER_CLASSPATH
env varwith-meta
condp
with no clauses or default expression only#()
reader macrojoker.os/set-env
function. Thanks @charlesg3!joker.os/exec
functionjoker.repl/apropos
function and joker.repl/dir
macro. Thanks @jcburley!joker.strconv
namespaceproxy
macrounused-fn-parameters
warning in defprotocol
joker.string
functions now accept char arguments in addition to strings. Thanks @mrichards42! https://github.com/candid82/joker/pull/184
joker.string/triml
and joker.string/trimr
. Thanks @mrichards42! https://github.com/candid82/joker/pull/185
joker.tools.cli
namespace (port of clojure.tools.cli
). Thanks @mrichards42! https://github.com/candid82/joker/pull/186
BigInteger
, Thread$State
and Thread$UncaughtExceptionHandler
are now recognized by linter. Thanks @conormcd! https://github.com/candid82/joker/pull/180
read
arities to linter. https://github.com/candid82/joker/issues/182
deref
. https://github.com/candid82/joker/issues/188
re-seq
and re-find
now return nil
when appropriate. Thanks @mrichards42! https://github.com/candid82/joker/pull/183
joker.test
and joker.set
namespaces (thanks @jcburley!)Bool
type to Boolean
(this is a BREAKING CHANGE)quot
, rem
and mod
(https://github.com/candid82/joker/issues/158)quot
now returns double if one of the arguments is double (https://github.com/candid82/joker/issues/159)+
when reading numbers (https://github.com/candid82/joker/issues/156)load
and load-file
now throw an error on failures (https://github.com/candid82/joker/issues/157)Ratio
is now coerced to Int
when possible