ClojureScript

1.10.866 リリース

2021年5月24日
ClojureScriptチーム

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

注目すべき変更点

  • Closure Compilerがv20210505に更新されました。

新しいコア機能

コンパイラパスとしてのand / or最適化

ClojureScriptは、ブール値に適用されたand / orに対して、&& / ||を用いて効率的なJavaScriptを生成します。以前は、これらの最適化はand / orマクロによって直接実装されていました。このリリースでは、代わりにコンパイラパスで実装されます。

これらの最適化をコード生成フェーズに移行した結果、簡素化されたand / orマクロはcore.asyncのようなコードウォーキングライブラリと互換性があります。

require文に展開されるマクロのサポート

注記:この変更は、後続のリリースで元に戻されました。ClojureScript Canaryを含む多くのテストの後、動作しないシナリオが多数存在することが判明したためです。再導入されることはありません。

このリリースでは、次の例に示すように、コードにrequire文に展開されるマクロを含めることができます。

(ns foo.bar
  (:require-macros [foo.baz :refer [macro-that-expands-to-require]]))
(macro-that-expands-to-require)

注目すべき修正

contains?でのIAssociative -contains-key?プロトコルチェックのサポート

IAssociativeプロトコルは-contains-key?を定義しており、アソシエイティブコレクションにキーが存在するかどうかを直接テストすることを容易にします。コアのcontains?関数は、このリリースで改訂され、IAssociativeプロトコルを実装するコレクションに対してそのような呼び出しを行うようになりました。

高階チェック付き配列

このリリースでは、チェック付き配列アクセス機能が、agetasetの高階の使用に拡張されました。例えば、

(apply aget [(into-array [0]) 100])

コンパイラ設定でこの機能を有効にすると、実行時に警告またはエラーが発生します。

変更リスト

ClojureScript 1.10.866の更新の完全なリストについては、変更ログを参照してください。

貢献者

ClojureScript 1.10.866に貢献してくれたコミュニティの皆様に感謝いたします。

  • Arne Brasseur

  • Dieter Komendera

  • Dominic Monroe

  • Erik Assum

  • Wilker Lúcio