(April)
ClojureScript Team
We’re happy to announce a new release of ClojureScript. If you’re an existing user of ClojureScript please read over the following release notes carefully, There are two very significant changes. First, ClojureScript now ships with greatly enhanced support for integration with popular JavaScript bundling tools such as Webpack and Metro. Second, due to continuing changes to Google Closure Compiler and Library, we’ve decided to drop support for the Rhino and Nashorn REPLs to lower the maintenance burden around releases.
Noteworthy Changes
Closure Compiler has been updated to
v
Closure Library has been updated to
0.0 - - 6ae1f (f)
Rhino, Nashorn, and GraalJS REPLs have been removed
The latest Closure Compiler & Library releases included a number of breaking changes which significantly increased the maintenance burden for this release. Given Closure Compiler & Library’s recent pace of change, we’ve decided to focus our energies on the essential browser and Node.js REPLs. We’ve also begun enrichening the CLI & REPL APIs to ease third party efforts to target these JavaScript environments.
JavaScript Bundler Support
: target: bundle
: bundle-cmd
: target-fn
A new
- install-deps CLI option
We're happy to announce a significant new feature - the : bundle
target. This target generates output that can be fed directly into popular JavaScript bundlers such as Webpack and Metro (for React Native). Not only does this greatly ease usage of Node modules, library creators can now distribute ClojureScript artifacts that depend on Node modules and be confident that users can consume these artifacts regardless of which build tool they may prefer.
There's much more to say about the : bundle
target, and we'll be releasing a separate post and guide soon.
Iterator Support
It is now possible to call seq
on any object implementing JavaScript's Iterator protocol. A new core predicate,
cljs.core / js-iterable?
- is introduced with this feature.
For example,
(js-iterable? (Js / Set.)) (is
true
and
(-> (doto (js / Set.) (.add 1) (.add 2)) seq)
can now produce (1 2)
.
Symbol Support
A new core predicate cljs.core / js-symbol?
has been added and printing has been revised to allow printing of symbols:
cljs.user=> (js / Symbol "abc") #object [Symbol(abc)]
Warning Improvements
Single arity arithmetic operations will now warn on bad arguments:
cljs.user=> ( “foo”) WARNING: cljs.core / , all arguments must be numbers, got [string] instead at line 1
(Performance Improvements
re-pattern ,
re-matches , and (re-find are now faster
Code gen better facilitates protocol static dispatch inlining
Fast initial prompt for browser REPL
Output size minimized for trivial "Hello World" programs
Change List
For a complete list of updates in ClojureScript 1.
see Changes .
Noteworthy Changes
Closure Compiler has been updated to
- v
Closure Library has been updated to
0.0 - - 6ae1f (f)
Rhino, Nashorn, and GraalJS REPLs have been removed
The latest Closure Compiler & Library releases included a number of breaking changes which significantly increased the maintenance burden for this release. Given Closure Compiler & Library’s recent pace of change, we’ve decided to focus our energies on the essential browser and Node.js REPLs. We’ve also begun enrichening the CLI & REPL APIs to ease third party efforts to target these JavaScript environments.
JavaScript Bundler Support
: target: bundle
: bundle-cmd
: target-fn
A new
- install-deps CLI option
We're happy to announce a significant new feature - the : bundle
target. This target generates output that can be fed directly into popular JavaScript bundlers such as Webpack and Metro (for React Native). Not only does this greatly ease usage of Node modules, library creators can now distribute ClojureScript artifacts that depend on Node modules and be confident that users can consume these artifacts regardless of which build tool they may prefer.
There's much more to say about the : bundle
target, and we'll be releasing a separate post and guide soon.
Iterator Support
It is now possible to call seq
on any object implementing JavaScript's Iterator protocol. A new core predicate,
cljs.core / js-iterable?
- is introduced with this feature.
For example,
(js-iterable? (Js / Set.)) (is
true
and
(-> (doto (js / Set.) (.add 1) (.add 2)) seq)
can now produce (1 2)
.
Symbol Support
A new core predicate cljs.core / js-symbol?
has been added and printing has been revised to allow printing of symbols:
cljs.user=> (js / Symbol "abc") #object [Symbol(abc)]
Warning Improvements
Single arity arithmetic operations will now warn on bad arguments:
cljs.user=> ( “foo”) WARNING: cljs.core / , all arguments must be numbers, got [string] instead at line 1
(Performance Improvements
re-pattern ,
re-matches , and (re-find are now faster
Code gen better facilitates protocol static dispatch inlining
Fast initial prompt for browser REPL
Output size minimized for trivial "Hello World" programs
Change List
For a complete list of updates in ClojureScript 1.
see Changes .
: target: bundle
- is introduced with this feature.
For example,
- (js-iterable? (Js / Set.)) (is
- true
- and
- (-> (doto (js / Set.) (.add 1) (.add 2)) seq)
can now produce
(1 2)
.
: bundle-cmd
: target-fn
A new
- - install-deps CLI option
We're happy to announce a significant new feature - the : bundle
target. This target generates output that can be fed directly into popular JavaScript bundlers such as Webpack and Metro (for React Native). Not only does this greatly ease usage of Node modules, library creators can now distribute ClojureScript artifacts that depend on Node modules and be confident that users can consume these artifacts regardless of which build tool they may prefer.
There's much more to say about the : bundle
target, and we'll be releasing a separate post and guide soon.
Iterator Support
It is now possible to call seq
on any object implementing JavaScript's Iterator protocol. A new core predicate,
cljs.core / js-iterable?
Symbol Support
A new core predicate cljs.core / js-symbol?
has been added and printing has been revised to allow printing of symbols:
cljs.user=> (js / Symbol "abc") #object [Symbol(abc)]
Warning Improvements
Single arity arithmetic operations will now warn on bad arguments:
cljs.user=> ( “foo”) WARNING: cljs.core / , all arguments must be numbers, got [string] instead at line 1
Single arity arithmetic operations will now warn on bad arguments:
re-pattern ,
re-matches , and (re-find are now faster
Code gen better facilitates protocol static dispatch inlining
Fast initial prompt for browser REPL
Output size minimized for trivial "Hello World" programs
Change List
For a complete list of updates in ClojureScript 1.
see Changes .
- re-pattern
,
re-matches , and (re-find are now faster
Code gen better facilitates protocol static dispatch inlining
Fast initial prompt for browser REPL
Output size minimized for trivial "Hello World" programs
Change List
For a complete list of updates in ClojureScript 1.
GIPHY App Key not set. Please check settings