Releases: babashka/sci
Releases · babashka/sci
v0.2.4
v0.2.3
See CHANGELOG.md for details.
v0.2.2
See CHANGELOG.md for details.
v0.2.1
See CHANGELOG.md for release notes.
v0.2.0
See CHANGELOG.md for release notes.
v0.1.0
See CHANGELOG.md for release notes.
v0.0.12
Solved issues
- Add
alter-meta!
,alter-var-root
,any?
,condp
,defonce
,ifn?
,inst?
,instance?
,reset-meta!
,some->>
and various transient functions - Add
sci.core/alter-var-root
for manipulating sci vars def
returns the var instead of the value of the var- #163: support pre- and post-conditions in
fn
- #178: check variadic arg conditions like clojure
- #180: support nested syntax quote
- #182, #184: fully qualify symbols in syntax-quote
- #186: fix bug with map literal in syntax-quote
- #188: implement
let-fn
- #190: throw error when using special symbol as value when it's not a binding
- #192: add
:file
metadata on vars - #193: add
clojure.core/delay
- #195, #196, #198: ns macro improvements
- #197: add
defn-
- #213: add
macroexpand
- #214: implement
alias
- #217: fix list in
case
- #241: add
find-ns
- #243: add
ns-aliases
- #245: add
ns-publics
- #246: performance improvements
- Add
:name
and:ns
metadata to vars - Allow metadata in
defn
- Support
:reload
inrequire
form - JS interop improvements
v0.0.11
New
- #126: support reader conditionals
- #130: add
assert
,ex-message
,fn?
,namespace
,prn-str
,print-str
,doall
,dorun
,run!
,reset-vals!
,swap-vals!
,some->
(thanks @jeroenvandijk for adding some of these) - #137: add sci logo (thanks @lread)
- #146, #147 interop support via reflection. See https://borkdude.github.io/sci/#classes.
- #169: implement namespaces
- #174: add the
clojure.walk
namespace - #175: add reified vars,
binding
,with-in-str
,with-out-str
, andfuture
. See https://borkdude.github.io/sci/#vars.
Enhancements
- #118: support
&form
and&env
in macros - #145: better error message for incorrect
def/defn/fn
syntax - #154: better performance by avoiding unnecessary analysis
Fixes
- #113: fix function return value when using recur
- #114: fix for denying/allowing symbols with explicit clojure.core ns
- #117, #152, #164: various fixes for try/catch
- #124: adding vars to
clojure.core
in:namespaces
didn't get merged in - #132: fix location of arity error in ex-data (thanks @sogaiu)
- #140, #141: fix issue with
for
- #143: fix macro named binding
- #150: keep fully qualified clojure.core symbol visible when binding has same name
- #156: fix for syntax-quote/quote
v0.0.10
New
- provide a macro as a binding:
user=> (sci/eval-string "(do-twice (f))" {:bindings {'do-twice ^:sci/macro (fn [x] (list 'do x x)) 'f #(println "hello")}})
hello
hello
nil
- user defined macros:
user=> (sci/eval-string "(defmacro do-twice [x] (list 'do x x)) (do-twice (f))" {:bindings {'f #(println "hello")}})
hello
hello
nil
-
Add
:deny
,:allow
,:realize-max
and:preset
options (see usage) -
Add
loop
,recur
,for
,doseq
,comment
(thanks @kannangce) ,require
,cond
,case
(only syntactically),try/catch/finally
,throw
. -
Java and JavaScript APIs (see README)