ClojureScript

1.11.51 リリース

2022年5月13日
ClojureScriptチーム

ClojureScriptの新しいリリースを発表できることを嬉しく思います。ClojureScriptの既存ユーザーの方は、以下のリリースノートをよくお読みください。

Clojure 1.11との互換性

このリリースには、:as-aliasのサポートが含まれています。update-valsupdate-keysが追加され、clojure.mathを使用するコードの移植性を提供するcljs.math名前空間が導入されました。また、iterationNaN?parse-longparse-doubleparse-booleanparse-uuidも追加されました。

このリリースでは、シーケンスのマップデストラクチャリングサポートにおける末尾に追加可能な要素のサポートを追加するCLJ-2608も移植されています。

tools.reader、data.json、transit-cljのバンドル化

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の更新の完全なリストについては、こちらをご覧ください。

貢献者

ClojureScript 1.11.51に貢献してくれたコミュニティメンバーの皆さんに感謝します。

  • Tom Connors

  • Roland Thiolliere

  • David Frese

  • Paula Gearon

  • Matthew Huebert

  • Hyun-woo Nam

  • Timothy Pratley

  • Henry Widd