2022年5月13日
ClojureScriptチーム
ClojureScriptの新しいリリースを発表できることを嬉しく思います。ClojureScriptの既存ユーザーの方は、以下のリリースノートをよくお読みください。
このリリースには、:as-aliasのサポートが含まれています。update-valsとupdate-keysが追加され、clojure.mathを使用するコードの移植性を提供するcljs.math名前空間が導入されました。また、iteration、NaN?、parse-long、parse-double、parse-boolean、parse-uuidも追加されました。
このリリースでは、シーケンスのマップデストラクチャリングサポートにおける末尾に追加可能な要素のサポートを追加するCLJ-2608も移植されています。
ClojureScriptは、Clojureエコシステムで最大規模のライブラリの1つです。2万行を超えるClojureコードを毎回コンパイルする必要があるため、REPLの起動時間やその他の一般的なタスクに大きな影響を与えます。そのため、ClojureScriptはAhead-of-Time(AOT)コンパイルされます。
しかし、AOTの微妙な側面により、解決できない依存関係の競合が発生する可能性があります。ユーザーは、宣言された依存関係のほとんどすべて(transit-clj、data.json、tools.reader)でこの問題に遭遇しています。
Clojureチームと協議した結果、これらの依存関係をすべてバンドルすることにしました。これにより、すべてをAOTコンパイルでき、通常の依存関係管理では簡単に修正できない競合が発生しないという確信を持つことができます。ClojureScriptはtransit-cljではなく、transit-javaのみに依存するようになりました。data.jsonへの依存関係は削除されました。ClojureScriptのtools.readerへの依存関係は、コンパイラをJavaScriptにブートストラップするあまり一般的ではないユースケースのためです。
後方互換性を確保するために注意が払われ、ユーザーが遭遇する可能性のある問題に関心を寄せています。
ClojureScriptの最小Clojureバージョンは1.10になりました。Google Closure Compilerが5月のリリースに更新されました。
ClojureScript 1.11.51の更新の完全なリストについては、こちらをご覧ください。