Clojure

開発者向け変更ログ

公式変更ログは、主要な安定版バージョン間の差分を追跡しています。このページには、開発中の暫定的な開発リリースに関するお知らせを集めています。

開発リリースの命名ガイド

  • アルファ版 - 開発中の新機能と機能強化

  • ベータ版 - バグ修正のみで、新機能の開発は想定されていません

  • RC版 - リリース候補版。重大な問題が見つからない限り、最終リリースとして公開されます

注記:すべての開発リリースは、前回のリリース以降の新機能による破壊的変更の可能性があります。

1.12.0 リリース

1.12.0-alpha9 (2024年3月8日)

CVE-2024-22871の修正(GHSA-vr64-r9qj-h27fに詳細が記載されています)

  • CLJ-2839 - `iterate`、`cycle`、`repeat` - 無限シーケンスのhashCode()が無限になります

1.12.0-alpha8 (2024年2月21日)

機能強化

  • CLJ-2568 - `clojure.walk/walk` - リストとシーケンスのメタデータを保持します

  • CLJ-2783 - 非推奨のURLコンストラクタへの呼び出しを置き換えます

元に戻されました

  • CLJ-1162 - `deref` - 非IDRefで呼び出された場合のエラーメッセージを改善します

1.12.0-alpha7 (2024年2月8日)

元に戻されました

  • CLJ-2783 - 非推奨のURLコンストラクタへの呼び出しを置き換えます

1.12.0-alpha6 (2024年2月8日)

機能

  • CLJ-2793 - メソッド値

  • CLJ-2806 - 一様な修飾メソッド構文

  • CLJ-2805 - `:param-tags` メタデータ

  • CLJ-2807 - 配列クラスシンボル

  • CLJ-2792 - Java Supplierとの相互運用性

  • CLJ-2775 - Javaストリームに対するseq、into、reduce、transduce

  • CLJ-2791 - PersistentVectorがSpliterableを実装します

機能強化

  • CLJ-2777 - `clojure.java.process/start` - 親環境から環境変数をクリアする` :clear-env`オプションを追加します

  • CLJ-2828 - `clojure.java.process/capture` - 削除されました。代わりに`slurp`を使用してください。

  • CLJ-1162 - `deref` - 非IDRefで呼び出された場合のエラーメッセージを改善します

  • CLJ-2225 - `assert`と`**assert**` - 文脈を追加するためにdocstringsを改善します

  • CLJ-2290 - `into` - 0引数と1引数をdocstringに追加します

  • CLJ-2552 - `reify` - docstringを改善し、例を修正します

  • CLJ-2640 - `ex-info` - nilのデータマップを処理できるようになりました

  • CLJ-2783 - 非推奨のURLコンストラクタへの呼び出しを置き換えます

バグ修正

  • CLJ-2788 - `clojure.repl.deps/add-lib` - `*print-length*`設定の影響を受けなくなりました

  • CLJ-2813 - 匿名関数の引数リーダー - 無効な引数シンボルを受け付けなくなりました

  • CLJ-2803 - #instプリンター - ThreadLocalフォーマッタを使用しなくなりました

1.12.0-alpha5 (2023年10月20日)

  • CLJ-2804 lazy-seq、delay - 同期ブロック内でユーザーコードを実行しないように、synchronizedをReentrantLockに置き換えました

1.12.0-alpha4 (2023年6月28日)

バグ修正

  • CLJ-2686 clojure.core.server/parse-props - 初期化中にシステムプロパティが同時に変更された場合の例外を修正しました

  • CLJ-2694 Long/MIN_VALUEを使用したときの比率不変量の違反を修正しました

以前の1.12.0アルファリリースでの作業からの修正

  • CLJ-2772 drop、nthrest、nthnext - nが正の整数ではない場合の動作の回帰を修正しました

  • CLJ-2741 drop - StringSeqに対して不適切に保持されていたメタデータを修正しました

  • CLJ-2767 add-libs - REPLチェックが常に使用を許可する問題を修正しました

  • CLJ-2769 add-libs - stdinを使用することで行制限の問題を修正しました

  • CLJ-2773 c.j.process/[from,to]-file - パラメータとdocstringの不一致を修正しました

  • CLJ-2776 c.j.process/exec - redirectErrorStreamの誤った使用を修正しました

  • CLJ-2774 c.j.process/exec - 上書きを許可するためにオプションのマージ順序を修正しました

  • CLJ-2778 c.j.process/capture - docstringのタイプミスを修正しました

  • CLJ-2779 c.j.process/start - デフォルトでカバーされている検証チェックを削除しました

1.12.0-alpha3 (2023年4月19日)

  • CLJ-2521 別のバグ(CLJ-2743)が見られるため、alpha2からのこの修正を元に戻しました。これらはまとめて再検討します。

1.12.0-alpha2 (2023年4月12日)

新機能

1.12.0-alpha1での修正

  • CLJ-2742 range - IDropの変更前にようにチャンク化を使用するように戻しました

  • CLJ-2740 PersistentVector seq drop - 不要な呼び出しを削除しました

  • CLJ-2715 partitionv - 最後のパディングされたパーティションのエラーを修正しました

  • CLJ-2718 repeat - シーケンスの最後またはそれを超えて行くdropのバグを修正しました

バグ修正と機能強化

  • CLJ-2521 コンパイラ - try/loop/tryをネストした場合の無効なクラスを修正しました

  • CLJ-2739 ArityException - 関数が20個以上の引数で誤って呼び出された場合のメッセージを修正しました

  • CLJ-2726 #uuidデータリーダー - 無効な入力に対する例外を修正し、リーダーを通して流れるようにしました

  • CLJ-2709 range - int引数に対して最適化されたrangeを使用します

  • CLJ-2721 range - 最適化されていないrangeにメタを追加する場合の無効な引数順序を修正しました

  • CLJ-2683 with-open - 展開時に.closeメソッドを修飾しないように修正しました

  • CLJ-2724 clojure.java.io/do-copy - 不正確な型ヒントを修正しました

1.12.0-alpha1 (2022年6月30日)

新機能

  • CLJ-2713 永続的またはアルゴリズム的コレクションに対する効率的なdropとpartition

  • CLJ-1327 Clojure型のserialVersionUIDを1.10.3の値に固定します

  • CLJ-2711 独自のネームスペース内のインターニングされたvarは、referまたはinternによって置き換えられないようなネームスペースインターニングポリシーを実装します

  • CLJ-2712 CLJ-1604の修正を元に戻します。AOTのバグにより、clojure.core関数のオーバーライドが妨げられていました

機能強化

  • CLJ-1872 シーケンス可能ではないカウント可能なコレクション(トランジェントなど)に`empty?`を拡張します

1.11.2 リリース

1.11.2 (2024年3月8日)

CVE-2024-22871の修正(GHSA-vr64-r9qj-h27fに詳細が記載されています)

  • CLJ-2839 - `iterate`、`cycle`、`repeat` - 無限シーケンスのhashCode()が無限になります

1.11.1 リリース

1.11.1-rc1 (2022年4月1日)

  • CLJ-2701 バイナリシリアライゼーションを維持するために、KeywordとArraySeqのserialVersionUIDを1.10.3の値に戻します

1.11.0 リリース

1.11.0-rc1 (2022年2月16日)

  • CLJ-2697 1.11の変更ログを追加します

  • CLJ-2695 parse-doubleのテストを追加します

1.11.0-beta1 (2022年2月2日)

  • CLJ-2690 `iteration`のdocstringと引数名を改善します

  • CLJ-2689 浮動小数点比較に対してより寛容になるようにclojure.mathのテストを修正します

  • CLJ-2685 `iteration`の生成テストの失敗を修正します

  • CLJ-2529 `Compiler.load()`による呼び出しで、ランタイムエラーがコンパイラエラーとして誤って報告される問題を修正します

  • CLJ-2620 preplで`:exception` `:val`の非対称な処理を修正します

  • CLJ-1180 `defprotocol`でのクラス型ヒントの解決を修正します

  • CLJ-1973 生成されたクラスで出力されるプロトコルメソッドの順序を再現可能にします

  • CLJ-2493の変更をロールバックしました

  • CLJ-2493 clojure.java.browse - xdg-openへの呼び出しで`browse-url`がハングする問題を修正します(新しい変更はよりターゲットを絞っており、より多くのケースに対応しています)

1.11.0-alpha4 (2022年1月13日)

  • CLJ-2673 `abs`を追加し、`min`と`max`を可能な限りMathの実装を使用するように更新します

  • CLJ-2555 `iteration`ジェネレータ関数を追加します

  • CLJ-2621 インスタンスメソッド式に対するステートメントコンテキストで、使用されていない戻り値の不要なボクシングを修正します

  • CLJ-2663 無限シーケンスで呼び出されたときのベクトルの`=`が終了しない問題を修正します

  • CLJ-2679 シンボルに対する`case`式でのハッシュ衝突を修正します

  • CLJ-2670 パフォーマンスのために、チェックされたlong算術演算にMath.exact…メソッドを使用します

  • CLJ-2680 一致する型ヒントを持つプリミティブなローカルに型ヒントを付与してもエラーにならないように修正します

  • CLJ-2234 グローバル階層のみを使用するマルチメソッドプリファレンスを修正します

  • CLJ-2556 `into`の完了を修正し、`halt-when`が機能するようにします

  • CLJ-2665 `:as`と`:as-alias`を使用してrequireがロードされるように修正します

  • CLJ-2677 clojure.math - 本体とインラインでのメソッドリフレクションを修正し、docstringsを修正し、名前を変更しました

  • CLJ-1379 clojure.test - `:pass`マップでの`:actual`形式の引用を修正します

  • CLJ-2493 clojure.java.browse - xdg-openへの呼び出しで`browse-url`がハングする問題を修正します

  • CLJ-2611 clojure.xml - デフォルトでXXE展開の処理を停止します

  • CLJ-2684 contribの依存関係を最新版に更新します(spec.alpha、test.check、test.generative)

1.11.0-alpha3 (2021年11月23日)

  • CLJ-2667 文字列から単一のlong/double/uuid/booleanをパースする関数の追加

  • CLJ-2668 NaN?とinfinite?述語の追加

  • CLJ-1925 random-uuidの追加

  • CLJ-2664 clojure.java.math名前空間、java.lang.Mathのラッパーの追加

  • CLJ-2666 Clojure Java APIのJavadocテキストを例と一致させる

  • CLJ-1360 末尾の空の部分に関するclojure.string/splitのdocstringの更新

  • CLJ-2249 集合、文字列、配列、ILookupに関するclojure.core/getのdocstringの明確化

  • CLJ-2488 reifyのdocstringへの定義の追加

  • CLJ-1808 map-invertはreduce-kvとtransientを使用する必要がある

  • CLJ-2065 SubVectorでのIKVReduceのサポート

  • depをspec.alpha (0.3.214)に更新

1.11.0-alpha2 (2021年9月14日)

  • CLJ-2123 requireに:asと同様に動作するがロードしない:as-aliasオプションを追加

  • CLJ-1959 update-keysの実装を追加

  • CLJ-2651 update-valsの実装を追加

  • CLJ-1908 単一テストをフィクスチャ付きで実行し、レポートするclojure.test api run-testとrun-test-varを追加

  • CLJ-1879 IKVReduce - 古い遅いパス(IPersistentMap)を高速化し、Objectに拡張し、完全に列挙可能な型の集合から分離する

  • CLJ-2600 delayのrealized?を保留中の結果でブロックしない

  • CLJ-2649 3つの述語の場合のsome-fnとevery-predのチェック順序を、他の展開と一致するように修正する

  • CLJ-2636 *clojure-version*を定義する際に、java.util.Propertiesでのリフレクションを削除する

  • CLJ-2350 キーワードのarity例外メッセージを改善する

  • CLJ-2444 test-vars docstringのタイプミスを修正する

  • CLJ-1509 より多くのClojure名前空間をAOTコンパイルする

  • CLJ-2387 ソケットサーバーポート検証におけるオフバイワンエラーを修正する

  • depをcore.specs.alpha (0.2.62)に更新

1.11.0-alpha1 (2021年3月18日)

  • CLJ-2603 Clojureキーワード引数関数は、マップも受け入れるようになりました。詳細を参照ください。

リリース 1.10.3

1.10.3-rc1 (2021年2月16日)

  • CLJ-2564 以前のエラーメッセージの変更を元に戻す

  • CLJ-2453 preplでリーダー条件式を許可する

リリース 1.10.2

1.10.2-rc3 (2021年1月15日)

  • CLJ-2602 テストの変更の印刷をプラットフォーム非依存にする

1.10.2-rc2 (2021年1月6日)

  • CLJ-2597 ProxyはJava 1.8バイトコードを出力する必要がある

  • CLJ-2599 spec.alphaのdepを0.2.194に、core.specs.alphaのdepを0.2.56に上げる

1.10.2-rc1 (2020年12月11日)

  • CLJ-1005 zipmapで一時マップを使用する

  • CLJ-2585 正規表現マッチャーでのnth with not-foundは、最後のグループインデックスでnot-foundを返す

  • CLJ-1445 `*print-meta*`がtrueの場合、pprintはコレクションのメタデータを出力しない

  • CLJ-2495 preplのdocstringが間違っている

  • CLJ-2169 conjの:arglistsが古くなっている

  • CLJ-2459 jarをjava -jarで実行するとExceptionInInitializerErrorが発生する

1.10.2-alpha4 (2020年11月5日)

  • CLJ-2587 CLJ-1364からのgvecのリフレクション警告を修正する

1.10.2-alpha3 (2020年11月2日)

  • CLJ-2492 非推奨のClass.newInstance()の使用を削除する

  • CLJ-2534 JDK 11以降のJavadoc URLを修正する

  • CLJ-1364 vector-ofはequalsまたはハッシュメソッドを実装していない

  • CLJ-2549 vector-ofはメタデータに対してIObjを実装していない

  • CLJ-1187 空のリテラルコレクションの引用されたメタデータが失われる

1.10.2-alpha2 (2020年9月25日)

  • CLJ-2571 ex-causeにThrowable戻り値型ヒントを追加する

  • CLJ-2572 clojure.dataでのリフレクションを回避する

  • CLJ-2295 特殊形式の重複するdoc文字列の印刷を排除する

  • CLJ-2564 `case`のエラーメッセージを改善する

  • CLJ-2580 コンパイルエラーを引き起こしたcase式ブランチ解析を修正する

  • CLJ-2469 名前空間構文を持つ一部のマップの印刷におけるエラーを修正する

1.10.2-alpha1 (2020年3月5日)

  • CLJ-1472 検証者向けに、モニターオブジェクトをスタック上に配置する

  • CLJ-2502 clojure.stacktrace/print-stack-traceのリフレクション警告を修正する

  • CLJ-2517 プリミティブ引数を持つ静的インターフェースメソッドの呼び出しに関する修正を追加

リリース 1.10.1

1.10.1-RC1 (2019年5月21日)

  • 1.10.1の変更ログを更新しました。

1.10.1-beta3 (2019年5月16日)

  • CLJ-2504 clojure.mainでのエラーレポートにさらに多くのオプションを提供する

1.10.1-beta2 (2019年4月11日)

  • CLJ-2497 エラーレポートの位置を独自の行に配置する

  • CLJ-2499 一部のコンパイラexpr evalsが間違ったフェーズとしてレポートされる

1.10.1-beta1 (2019年3月21日)

  • CLJ-2484 user.cljの初期化をRT<clinit>から移動する

  • CLJ-2463 clojure.mainの未処理例外処理

  • CLJ-2491 Java 12で動作し、より堅牢な脆弱なテストを作る

リリース 1.10

1.10.0-RC5 (2018年12月11日)

  • CLJ-2454 - 一致する反射呼び出しの呼び出しからのIllegalAccessExceptionを修正する

1.10.0-RC4 (2018年12月7日)

  • CLJ-2449 - serialized-requireをプライベートにする

1.10.0-RC3 (2018年12月3日)

  • CLJ-2447 - clojure.datafyのdocstringがありません

  • CLJ-2448 - async-requireの名前をserialized-requireに変更する

1.10.0-RC2 (2018年11月26日)

変更ログの更新以外に変更はありません。

1.10.0-beta8 (2018年11月21日)

  • CLJ-2438 - 実行エラーメッセージのソース位置のデマングルを行う

  • CLJ-2437 - async-requireを追加し、requiring-resolveから使用する

  • CLJ-2436 - reflect.javaのリフレクション警告を修正する

1.10.0-beta7 (2018年11月19日)

  • CLJ-2435 - コンパイルおよびマクロ展開エラーに根本原因のクラス名を含める

1.10.0-beta6 (2018年11月16日)

1.10.0-beta6での変更

  • 1.10.0-beta5に追加されたメタデータプロトコル拡張は、プロトコルが定義されるときに、:extend-via-metadataを使用してオプトインが必要になりました。

  • clojure.reflectの下のJavaReflectorはデータ化されました。

  • CLJ-2432 - `resolve`に似ていますが、必要に応じてシンボルの名前空間をrequireするclojure.core/requiring-resolveを追加しました。

  • CLJ-2427 - 例外文字列を作成中に二次例外が発生する可能性のあるCompilerException.toString()のバグを修正し、元の例外を隠蔽していました。

  • CLJ-2430 - エラーフェーズ、ex-triageに関する作業を続け、preplが新しいエラーレポートインフラストラクチャをより適切に利用できるようにする

1.10.0-beta5 (2018年11月6日)

1.10.0-beta5での変更

  • 以前の拡張方法に加えて、値は、キーがプロトコル関数の完全修飾シンボルであり、値が関数実装であるメタデータを追加することで、プロトコルを拡張できるようになりました。プロトコルの実装は、まず直接定義(defrecord、deftype、reify)、次にメタデータ定義、次に外部拡張(extend、extend-type、extend-protocol)で確認されます。datafyは、このメカニズムを使用するように更新されました。

  • 対応するシンボルを取得するために、`symbol`にvarまたはキーワードを渡せるようになりました。

  • CLJ-2420 - エラーレポートの強化 - より洗練されたフェーズレポート、clojure.main/ex-strから分割された新しいclojure.main/ex-triage、実行エラーはスタックトレースの上位**ユーザー**行を報告し、コアからのフレームを省略し、フォームのメタデータを使用してファイルと行を提供するための強化

  • CLJ-2425 Java 11 Javadoc URLを追加

  • CLJ-2424 CLJ-2417からのテストのバグを修正

1.10.0-beta4 (2018年10月22日)

1.10.0-beta4には、1.10.0-beta3以降の変更が含まれています。

  • CLJ-2417 sortとsort-byはメタデータを保持する必要があります

1.10.0-beta3 (2018年10月12日)

1.10.0-beta3には、1.10.0-RC1以降の変更が含まれています。

  • datafy - データ化されたクラスと名前空間に:nameを追加し、データ化されたすべての場合のメタデータに:classを追加する

  • CLJ-1079 - リーダーは、リストとシーケンスの:line :columnメタデータを上書きするのではなく、保持する必要があります。また、clojure.mainは:fileメタデータに基づいて*file*をバインドします。

1.10.0-RC1 (2018年10月11日)

1.10.0-RC1は、1.10.0-beta2と同じコードです(変更ログの小さな更新のみ)。

1.10.0-beta2 (2018年10月9日)

1.10.0-beta2には、1.10.0-beta1以降の変更が含まれています。

  • CLJ-2414 - 反射的にデフォルトメソッドを見つける際の回帰

  • CLJ-2415 - エラーの原因は常にエラーメッセージの2行目にある必要があります

  • clojure.datafyを追加しました。

    • clojure.datafyは、オブジェクトからデータへの変換機能です。`datafy`関数と`nav`関数は、オブジェクトグラフを変換し(遅延して)、移動するために使用できます。データ変換プロセスは、プロトコルまたはメタデータを使用してコンシューマーによって影響を受ける可能性があります。datafyはアルファ版であり、変更される可能性があります。

1.10.0-beta1 (2018年10月5日)

1.10.0-beta1 は、1.10.0-alpha9 以降の以下の変更を含みます。

  • CLJ-1550 の変更を元に戻しました - `deftype` と `defrecord` で生成されたクラスは、`.getPackage` とうまく連携しません。

  • CLJ-1435 の変更を元に戻しました - `'numerator` と `'denominator` は、整数値(例:N/1)を処理できません。

  • 1.9 以降の変更ログを追加しました。

  • prepl をアルファ版としてマークしました。

1.10.0-alpha9 (2018年10月4日)

1.10.0-alpha9 は、1.10.0-alpha8 以降の以下の変更を含みます。

  • CLJ-2374 - JDK 11での反射の曖昧さを解決するために型ヒントを追加しました。

  • CLJ-1209 - `clojure.test` のエラーレポートに `ex-data` を出力します。

  • CLJ-1120 - 移植可能なエラー処理のために、CLJS と同様に `ex-cause` と `ex-message` を追加しました。

  • CLJ-2385 - tap-loop スレッドの開始を遅らせました(Graal Native Image の問題に対処します)。

  • CLJ-2407 - 単体テストのエラーを修正しました。

  • CLJ-2066 - Java 9+ の `--illegal-access` 警告に対する反射によるフォールバックを追加しました。

  • CLJ-2375 - 非推奨の JDK API の使用を修正しました。

  • CLJ-2358 - `read+string` の無効なアリティを修正しました。

1.10.0-alpha8 (2018年9月14日)

1.10.0-alpha8 は、1.10.0-alpha7 以降の以下の変更を含みます。

  • CLJ-2297 - `without` でキーが削除されると `PersistentHashMap` がメモリリークします。

  • CLJ-1587 - `PersistentArrayMap` の `assoc` は `HASHTABLE_THRESHOLD` を尊重しません。

  • CLJ-2050 - `HashCollisionNode` で冗長なキー比較を削除しました。

  • CLJ-2349 - `clojure.test` で未処理の `ExceptionInfo` の正しい行番号を報告します。

  • CLJ-1403 - `ns-resolve` は `ClassNotFoundException` をスローする可能性がありますが、`nil` を返す必要があります。

  • CLJ-1654 - `some` でシーケンスを再利用します。

  • CLJ-1764 - 無限パーティションの1つの要素にアクセスすると、`partition-by` が無限ループを実行します。

  • CLJ-2044 - `clojure.instant` の関数に `arglist` メタデータを追加しました。

  • CLJ-1797 - `require` が失敗した場合、エラーに `cljc` を記載します。

  • CLJ-1832 - `unchecked-*` 関数は、プリミティブな long と boxed Long で異なる動作をします。

  • CLJ-1366 - 空のマップリテラルは、毎回異なるマップとして読み取られます。

  • CLJ-1550 - `deftype` と `defrecord` で生成されたクラスは、`.getPackage` とうまく連携しません。

  • CLJ-2031 - `clojure.walk/postwalk` は `MapEntry` 型オブジェクトを保持しません。

  • CLJ-1435 - `'numerator` と `'denominator` は、整数値(例:N/1)を処理できません。

  • CLJ-2257 - ドックストリング:`proxy` のタイプミスを修正しました。

  • CLJ-2332 - ドックストリング:`remove-tap` の繰り返しを修正しました。

  • CLJ-2122 - ドックストリング:`flatten` の結果を遅延処理として説明しました。

1.10.0-alpha7 (2018年9月5日)

Clojure 1.10.0-alpha7 が利用可能になりました。

1.10.0-alpha7 は、1.10.0-alpha6 以降の以下の変更を含みます。

  • 依存関係を最新の spec.alpha (0.2.176) と core.specs.alpha (0.2.44) に更新しました。

  • CLJ-2373 - REPL での例外メッセージの出力の分類と見直しを行いました。

  • CLJ-1279 - マクロ内の関数アリティエラーの正しいアリティ数を報告します。

  • CLJ-2386 - `ex-info` の構築スタックフレームを省略します。

  • CLJ-2394 - 構文エラーのスタックトレースが実行前に失敗したことを pst で警告します。

  • CLJ-2396 - デフォルトの説明プリンターを使用している場合、spec 関数のエラーを出力するときに `:in` 節を省略します。

1.10.0-alpha6 (2018年7月4日)

Clojure 1.10.0-alpha6 が利用可能になりました。

1.10.0-alpha6 は、1.10.0-alpha5 以降の以下の変更を含みます。

  • CLJ-2367 - ASM の回帰修正を取り込み、ケーステストを追加しました - パッチを提供してくれた Sean Corfield 氏、および追跡に協力してくれた Daniel Sutton 氏と Ghadi Shayban 氏に感謝します。

1.10.0-alpha5 (2018年6月27日)

Clojure 1.10.0-alpha5 が利用可能になりました。

1.10.0-alpha5 は、1.10.0-alpha4 以降の以下の変更を含みます。

  • CLJ-2363 - Clojure の最小要件を Java 8 に変更しました(埋め込み ASM も最新版に更新しました) - Ghadi Shayban 氏に感謝します!

  • CLJ-2284 - Java 9+ での静的インターフェースメソッド呼び出しに対する無効なバイトコード生成を修正しました - Ghadi Shayban 氏に感謝します!

  • CLJ-2330 - シリアライゼーションのずれにより Java 10 ビルドで失敗する壊れやすいテストを修正しました。

  • CLJ-2362 - 新しいメタデータが以前のものと同一の場合、`withMeta()` は同一性を返す必要があります。

  • CLJ-1130 - 静的メソッドと一致できない場合、エラーメッセージを改善しました。

  • CLJ-2089 - デフォルトのコンパレーターを使用したソート済みコレクションは、最初の要素が Comparable であることを確認しません。

  • CLJ-2163 - var のシリアライゼーションのテストを追加しました。

  • spec.alpha の依存関係のバージョンを最新版の 0.2.168 に更新しました(変更点を参照)。

  • core.specs.alpha の依存関係のバージョンを最新版の 0.2.36 に更新しました(変更点を参照)。

1.10.0-alpha5 は、Java 6 と 7 のサポートを廃止し、Java 8 を最小要件としました。コンパイルは Java 8 レベルのバイトコードを生成します(以前のバージョンの Java では実行できません)。このリリースをライブラリまたはプロジェクトで試して、エラー、パフォーマンスの違い(良いか悪いか)、互換性などに関するフィードバックを提供いただけると幸いです。

`clj` ツールと deps.edn を使用する場合、`~/.clojure/deps.edn` にエイリアスを追加することをお勧めします。

{:aliases
 {:clj/next
  {:override-deps
   {org.clojure/clojure {:mvn/version "1.10.0-alpha5"}}}}}

その後、`clj` でエイリアスをアクティブ化することで、最新の Clojure 開発リリースを使用して任意のプロジェクトを実行できます。

clj -A:clj/next

1.10.0-alpha4 (2018年2月9日)

  • `read+string` の 0 アリティのバグを修正しました。

1.10.0-alpha3 (2018年2月8日)

  • prepl - プログラマティック REPL

1.10.0-alpha2 (2018年1月19日)

  • CLJ-2313 - 文字列キャプチャモードの修正

1.10.0-alpha1 (2018年1月18日)

  • `LineNumberingPushbackReader` に文字列キャプチャモードを追加しました。

Release 1.9

1.9.0-RC2 (2017年11月27日)

  • 依存関係を含む実行可能な Clojure jar(および test.check)をビルドするための新しい Maven プロファイルと Ant ターゲットがビルドに追加されました。これは、Clojure 自体の開発や、リポジトリのクローン作成と簡単なビルドによる実行可能ファイルの取得に役立ちます。

  • ローカル jar の作成と実行方法に関する情報を含むように、readme.txt が更新されました。

  • リリースの一部として、clojure-VERSION.zip ファイルの公開を停止しました。

1.9.0-RC1 (2017年11月7日)

  • 1.9.0-beta4 と同じです。

1.9.0-beta4 (2017年10月31日)

  • CLJ-2259 - 1.9 で追加された不要な `bigdec?` 述語を削除しました。

  • spec.alpha の依存関係を 0.1.143 に更新しました。

1.9.0-beta3 (2017年10月25日)

  • CLJ-2254 - マクロでの spec チェックをオフにするために使用できるシステムプロパティ `clojure.spec.skip-macros` (デフォルト = false) を追加しました。

1.9.0-beta2 (2017年10月6日)

1.9.0-beta2 は、1.9.0-beta1 以降の以下の変更を含みます。

  • CLJ-700 - (修正) 一時コレクションで `contains?`、`get`、`find` が壊れていました。

  • CLJ-2247 - (回帰) `{min,max}-key` の最後のマッチのセマンティクスを復元して文書化しました。

  • CLJ-2239 - (回帰) Guava の javadoc の場所を修正しました。

  • spec.alpha 0.1.134 に依存関係を更新しました - 変更点を参照。

1.9.0-beta1 (2017年9月18日)

1.9.0-beta1 は、1.9.0-alpha20 以降の以下の変更を含みます。

  • CLJ-2077 - Java 9 では、ブートクラスパスから Clojure をロードできません。

1.9.0-alpha20 (2017年9月7日)

1.9.0-alpha20 は、1.9.0-alpha19 以降の以下の変更を含みます。

  • CLJ-1074 - (新規) 記号値のための新しい `##` リーダーマクロを追加し、`##Inf`、`##-Inf`、`##NaN` の double 値に対する読み取り/出力サポートを追加しました。

  • CLJ-1454 - (新規) 古い値と新しい値の両方を返す `swap-vals!` と `reset-vals!` を追加しました。

  • CLJ-2184 - (エラー) エラーレポートを改善するために、`doto` フォームでメタデータを伝播します。

  • CLJ-2210 - (パフォーマンス) コンパイラの性能を向上させるために、コンパイラでクラスの導出をキャッシュします。

  • CLJ-2070 - (パフォーマンス) `clojure.core/delay` - パフォーマンスを向上させました。

  • CLJ-1917 - (パフォーマンス) 文字列に対するシーケンスの削減は、ループの外で `String/length` を呼び出す必要があります。

  • CLJ-1901 - (パフォーマンス) `amap` - `alength` を一度だけ呼び出す必要があります。

  • CLJ-99 - (パフォーマンス) `min-key` と `max-key` - 各引数に対して k を最大で一度評価します。

  • CLJ-2188 - (パフォーマンス) `slurp` - 戻り値の型を String としてマークします。

  • CLJ-2108 - (起動時間) specおよびコアspecの遅延読み込み (これに関する作業はまだあります)

  • CLJ-2204 - (セキュリティ) プロキシクラスのシリアル化を無効化して、逆シリアル化時の潜在的な問題を回避します

  • CLJ-2048 - (修正) JVMによってスタックトレースが省略された場合にClassCastExceptionを回避するために型を指定します

  • CLJ-1887 - (修正) IPersistentVector.length() - 欠落しているメソッドを実装します

  • CLJ-1841 - (修正) bean - イテレータが壊れていました

  • CLJ-1714 - (修正) 型ヒントでクラスを使用しても、そのクラスは読み込まれません

  • CLJ-1398 - (修正) clojure.java.javadoc/javadoc - ドキュメントのURLを更新します

  • CLJ-1371 - (修正) Numbers.divide(Object, Object) - NaNのチェックを追加します

  • CLJ-1358 - (修正) ドキュメント - 特殊なケース(try、catch)を正しく展開しません

  • CLJ-1705 - (修正) vector-of - 認識されない型が指定された場合のNullPointerExceptionを修正します

  • CLJ-2170 - (ドキュメント) 不正な位置にあるdocstringsを修正します

  • CLJ-2156 - (ドキュメント) clojure.java.io/copy - doc char[]サポート

  • CLJ-2051 - (ドキュメント) clojure.instant/validated docstring - タイプミスを修正

  • CLJ-2104 - (ドキュメント) clojure.pprint docstring - タイプミスを修正

  • CLJ-2028 - (ドキュメント) filter、filterv、remove、take-while - docstringsを修正します

  • CLJ-1873 - (ドキュメント) require、*data-readers* - docstringsに.cljcファイルを追加します

  • CLJ-1159 - (ドキュメント) clojure.java.io/delete-file - docstringを改善します

  • CLJ-2039 - (ドキュメント) deftype - docstringのタイプミスを修正します

  • CLJ-1918 - (ドキュメント) await - shutdown-agentsに関するdocstringを改善します

  • CLJ-1837 - (ドキュメント) index-of、last-index-of - docstringsを明確化します

  • CLJ-1826 - (ドキュメント) drop-last - docstringを修正します

  • CLJ-1859 - (ドキュメント) zero?、pos?、neg? - docstringsを修正します

1.9.0-alpha19 (2017年8月24日)

  • RTでデフォルトのインポートセットを公開します

1.9.0-alpha18 (2017年8月23日)

  • *reader-resolver*をLispReader$Resolverの実装にバインドして、自動解決されたキーワードとマップを解決する際の、リーダーによる名前空間の相互作用の使用を制御できるようになりました。

  • 当初の意図どおり、自動解決されたキーワードと自動解決された名前空間マップ構文を厳格化して、**エイリアスのみ**をサポートします

  • core.specs.alpha 0.1.24を使用するように更新しました

1.9.0-alpha17 (2017年5月26日)

  • CLJ-1793 - テールポジションでの呼び出しの前に'this'をクリアします

  • CLJ-2091 clojure.lang.APersistentVector#hashCodeはスレッドセーフではありません

  • CLJ-1860 -0.0のハッシュを0.0と一致させます

  • CLJ-2141 修飾された述語からtrue/falseのみを返します

  • CLJ-2142 名前空間マップ構文による重複キーのチェックを修正します

  • CLJ-2128 マクロ展開中のspecエラーは、場所を示すコンパイラ例外をスローしなくなりました

  • spec.alpha 0.1.123を使用するように更新しました

1.9.0-alpha16 (2017年4月27日)

1.9.0-alpha16には、1.9.0-alpha15以降の変更が含まれています

  • 名前空間clojure.spec、clojure.spec.gen、clojure.spec.testは、Clojureが依存関係を介して含める外部ライブラリspec.alphaに移動されました

  • これらの名前空間は変更され、 ".alpha" が追加されました: clojure.spec.alpha、clojure.spec.gen.alpha、clojure.spec.test.alpha

  • clojure.spec内のすべてのキーワード定数(:clojure.spec/invalidなど)は、同じ名前空間の変更に従います(現在は:clojure.spec.alpha/invalid)

  • アサーションに関連するspec関連のシステムプロパティは変更されませんでした

  • 名前空間clojure.core.specs内のclojure.core自体のspecは、Clojureが現在依存している外部ライブラリcore.specs.alphaに移動されました

  • clojure.core.specs名前空間はclojure.core.specs.alphaに変更されました。その名前空間内のすべての修飾されたspec名は、同じ名前空間の変更に従います(ほとんどの人はこれらを直接使用していませんでした)

ほとんどの場合、Clojure 1.9.0-alphaXの使用方法をClojure 1.9.0-alpha16に更新するには、

  1. Clojureの依存関係を[org.clojure/clojure "1.9.0-alpha16"]に更新します - これにより、追加の2つのダウンストリームライブラリが自動的にプルされます

  2. specを宣言または使用する名前空間の名前空間宣言を変更します

(:require [clojure.spec.alpha :as s]
          [clojure.spec.gen.alpha :as gen]
          [clojure.spec.test.alpha :as stest])

1.9/spec分割 (2017年4月26日)

specをClojureのリポジトリ/アーティファクトからライブラリに移動して、Clojureとは別にspecを進化させやすくします。specをClojure 1.9の重要な部分と考えていますが、最終決定する前に解決する必要がある設計上の懸念事項がいくつかあります。これにより、specのアルファ版に依存するプロダクションClojureリリース(1.9)に向けて進むことができます。ユーザーは、必要に応じて、新しいバージョンのspecアルファライブラリを選択することもできます。さらに、これはClojure内で依存関係を活用するためのサポートを強化するための最初のステップです。

次の(名前が変更された)名前空間を含む2つの新しいcontribライブラリを作成します

org.clojure/spec.alpha
    clojure.spec.alpha          (previously clojure.spec)
    clojure.spec.gen.alpha      (previously clojure.spec.gen)
    clojure.spec.test.alpha     (previously clojure.spec.test)

org.clojure/core.specs.alpha
    clojure.core.specs.alpha    (previously clojure.core.specs)

ほとんどの場合、ユーザーはspec名前空間への参照にエイリアスを付けており、変更された名前空間に更新するには、requireの時点で1つの変更のみが必要になります。

ClojureScriptのspec実装はどのように変更されますか?

ClojureScriptも、Clojureに一致する名前空間名を変更します。最終的には、ClojureScriptの実装はClojureScriptからspec.alphaライブラリに移動される可能性があります-これはまだ議論中です。

ライブラリと名前空間がalphaで終わるのはなぜですか?

"alpha"は、specのAPIと実装がまだ変更される可能性があることを示しています。

spec apiがalphaではなくなった場合はどうなりますか?

その時点で、specライブラリの非アルファバージョン(非アルファの名前空間付き)をリリースする予定です。ユーザーは、依存するClojureのバージョンとともに、そのバージョンのspecをすぐに使用できます。Clojure自体は、後でそれに依存するようになります。これらのアクションのタイミングは未定です。

ライブラリはClojure 1.8またはそれ以前のバージョンをサポートしますか?

いいえ。specはClojure 1.9の新しい関数を使用しており、古いバージョンでspecを提供することは目標ではありませんでした。むしろ、安定したClojure 1.9のリリースを迅速化して、ユーザーがspecのアルファバージョンにアクセスできる安定したプロダクションリリースにマイグレーションし、利用可能になり次第、継続的に更新されたバージョンにアクセスできるようにしようとしています。

1.9.0-alpha15 (2017年3月14日)

1.9.0-alpha15には、1.9.0-alpha14以降の変更が含まれています

  • CLJ-2043 - コンフォーマーのs/formが壊れています

  • CLJ-2035 - コレクションspecのs/formが壊れています

  • CLJ-2100 - s/form of s/nilableには、解決済みのspecではなく、元のspecを含める必要があります

Specs

  • CLJ-2062 - importおよびrefer-clojureのspecを追加しました

  • CLJ-2114 - ::defn-args specは、関数本体ではなく、prepostとしてマップ本体を誤って解析します

  • CLJ-2055 - binding-form specは、シンボルのみのマップを誤って解析します

インフラストラクチャ

  • CLJ-2113 - Clojure Mavenビルドが更新されました

1.9.0-alpha14 (2016年10月28日)

1.9.0-alpha14には、1.9.0-alpha13以降の変更が含まれています

  • 新規 into は、0引数([]を返す)と1引数(渡されたcollを返す)を持つようになりました

  • 新規 halt-when は、predが満たされたときに変換を終了するトランスデューサです。完了した結果と述語をトリガーした入力を使用して呼び出されるオプションのfnを受け入れます。

  • CLJ-2042 - clojure.spec/form of clojure.spec/?は、predを解決するようになりました

  • CLJ-2024 - clojure.spec.test/checkは、エイリアスの付いたfspecを完全に解決するようになりました

  • CLJ-2032 - fspecに:args specがない場合の混乱するエラーを修正しました

  • CLJ-2027 - beanインスタンスの印刷に関する1.9の回帰を修正しました

  • CLJ-1790 - Java配列にプロトコルを拡張する際のエラーを修正しました

  • CLJ-1242 - 互換性のないコンパレータを持つソートされたセットまたはマップに対する=は、例外をスローするのではなくfalseを返すようになりました

1.9.0-alpha13 (2016年9月26日)

1.9.0-alpha13には、1.9.0-alpha12以降の変更が含まれています

  • s/conform of nilableは、常にconformed値ではなく、渡された値を返していました

  • s/nilableは、10%の確率でnilを返すジェネレータを作成するようになりました(50%ではなく)

  • s/nilableは、述語specの実現を最初の使用まで遅らせるようになりました(再帰的なspecの作成に適しています)

  • clojure.spec.genは、clojure.test.check.generators/frequencyのdynloadバージョンを提供するようになりました

1.9.0-alpha12 (2016年9月7日)

1.9.0-alpha12には、1.9.0-alpha11以降の変更が含まれています

  • 多くのユースケースでspecのパフォーマンスが向上しました

  • spec explainプリンターは、explain-dataを受け取り*out*に出力する関数である必要がある動的変数clojure.spec/*explain-out*を介してプラグイン可能になりました

  • マクロ展開中にマクロspecが失敗した場合、IllegalArgumentExceptionではなく、explain-dataペイロードを含むex-infoをスローします

  • *print-namespace-maps*がtrueの場合、pprintは名前空間リテラル構文を使用してマップを出力します

  • CLJ-1988 - coll-of、everyはシーケンスを正しく適合させるように拡張されました

  • CLJ-2004 - マルチspecフォームにretagがありませんでした

  • CLJ-2006 - docstring内の古い関数名を修正しました

  • CLJ-2008 - checkable-symsからマクロを省略します

  • CLJ-2012 - クラス名を許可するようにgen-classシグネチャのns specを修正しました

  • CLJ-1224 - レコードインスタンスは、マップのようにhasheqとhashCodeをキャッシュするようになりました

  • CLJ-1673 - clojure.repl/dir-fnは、名前空間エイリアスで動作するようになりました

1.9.0-alpha11 (2016年8月19日)

1.9.0-alpha11には、1.9.0-alpha10以降の変更が含まれています

Clojureには、次のclojure.coreマクロのspecが含まれるようになりました。let、if-let、when-let、defn、defn-、fn、ns。マクロspecはマクロ展開中にチェックされるため、これらのマクロ内の無効な構文は、コンパイル時に失敗するようになりました。以前は、一部のエラーは実行時に検出され、一部はまったく検出されませんでした。

  • CLJ-1914 - 並行範囲の実装における競合状態を修正

  • CLJ-1870 - defmultiの再読み込み時にvarのメタデータが削除される問題を修正

  • CLJ-1744 - 使用されていないローカル変数をクリアし、場合によってはメモリリークを防ぐ

  • CLJ-1423 - 無限長の引数リストでvarを呼び出すことを許可(高速化も実現)

  • CLJ-1993 - キーが同じ名前空間からのマップに対して名前空間マップ構文を使用するかどうかを制御する*print-namespace-maps*動的varを追加。デフォルトはfalseだが、標準REPLバインディングではtrueに設定される。

  • CLJ-1985 - with-genでコンフォーマーのunform関数が失われる問題を修正

  • clojure.spec.test/checkが、specで定義されたマクロをスキップするように修正

  • 1.9.0-alpha8からの回帰、デストラクチャリング内の型ヒントが失われる問題を修正

  • clojure.spec/mergeのdocstringを修正し、mergeが適合済みの値を流さないことを明記

  • 正規表現演算が、使用されている場合はgenのオーバーライドを使用するように修正

1.9.0-alpha10 (2016年7月11日)

1.9.0-alpha10には、1.9.0-alpha9以降の以下の変更が含まれています。

  • 新規 clojure.core/any? - 任意のものにマッチする述語。any?はビルトインのgenサポートを持つ。:clojure.spec/any specは削除された。さらに、some?にもgenサポートが追加された。

  • keys*がgenを生成するようになった。

  • genオーバーライド(c.s/gen、c.s./exercise、c.s.t/check、c.s.t/instrumentを参照)は、genではなく、genを返す引数なし関数を期待するようになった。

  • CLJ-1977 - スタックトレースが空の場合のThrowableのデータ変換におけるalpha9からの回帰を修正

1.9.0-alpha9 (2016年7月5日)

1.9.0-alpha9には、1.9.0-alpha8以降の以下の変更が含まれています。

  • 新規 clojure.spec/assert - コードにspecアサーションを追加するための機能。詳細は、*compile-asserts*とassertのドキュメントを参照。

  • clojure.spec/merge - conform/unformにおいて、値を流すのではなくマージするようになった。

  • clojure.spec.test/instrumentは、:args specの失敗の原因となった呼び出し元を報告し、specで定義されたマクロを無視するようになった。

  • clojure.spec.test - testtest-fntestable-symsは、目的をより反映させるため、checkcheck-fncheckable-symsに名前が変更された。さらに、checkの戻り値構造の一部が改善された。

  • clojure.core/Throwable→mapは、以前はStackTraceElementsを返し、後でプリンターによって処理されていた。現在、StackTraceElementsはデータに変換されるため、戻り値は意図したとおり純粋なClojureデータとなる。

1.9.0-alpha8 (2016年6月28日)

1.9.0-alpha8には、1.9.0-alpha7以降の以下の変更が含まれています。

コレクションspecのサポートが大幅に強化され、適合、生成、カウント、重複要素、コレクションの種類を制御するための新しいコントロールが追加された。詳細は、every、every-kv、coll-of、map-ofのドキュメントを参照。

インストルメンテーションとテストが合理化され、より構成可能になり、specとgenのオーバーライド、スタブ、モックのための強力な新機能が追加された。clojure.spec.testのinstrument、test、enumerate-ns、summarize-results関数のドキュメントを参照。

名前空間付きキーワードのリーダーフォーマット、印刷、デストラクチャリングが強化され、キーに対して名前空間を昇格させ、完全修飾キーワードのより簡潔な使用をサポートするようになった。更新されたドキュメントはまもなくclojure.orgに追加される。

キーspecのマージ、fnの実行、Java 1.8タイムスタンプ、bounded-countなど、多くのユーティリティが追加された。

変更ログ

clojure.spec

  • [変更] map-of - すべての値とオプションですべてのキーを適合させるようになり、追加のkind、count、genオプションを持つようになった。

  • [変更] coll-of - すべての要素を適合させるようになり、追加のkind、count、genオプションを持つようになった。init-collパラメータは不要になった。

  • [追加] every - サンプリングによってコレクションを検証し、多くの追加オプションを持つ。

  • [追加] every-kv - サンプリングによってマップを検証し、多くの追加オプションを持つ。

  • [追加] merge

  • [変更] genオーバーライドは、名前またはパスで指定できるようになった。

  • [変更] fspecジェネレーター - :ret specに従って戻り値を生成する関数を作成し、:fn specを無視する。

  • [追加] explain-out - explain-dataの結果からexplain出力文字列を生成する。

  • [変更] explain-data - 出力は、パスをキーとするマップではなく、:path要素を持つ問題のベクトルになった。

  • [追加] get-spec - キーワードまたはシンボルでレジストリからspecを検索する。

  • [削除] fn-spec - get-specを参照。

  • [追加] exercise-fn - specで定義された関数を与えると、生成された引数と戻り値を返す。

  • すべてのinstrument関数はclojure.spec.testに移動された。

clojure.spec.test

  • [変更] instrument - 以前はvarを取っていたが、現在はシンボル、名前空間シンボル、またはシンボルや名前空間のコレクションを取ることができ、スタブやモックのための多くの新しいオプションが追加された。詳細はdocstringを参照。

  • [削除] instrument-ns - instrumentを参照。

  • [削除] instrument-all - instrumentを参照。

  • [変更] unstrument - 以前はvarを取っていたが、現在はシンボル、名前空間シンボル、またはシンボルや名前空間のコレクションを取る。

  • [削除] unstrument-ns - unstrumentを参照。

  • [削除] unstrument-all - unstrumentを参照。

  • [追加] instrumentable-syms - インストルメントできるシンボル。

  • [追加] with-instrument-disabled - スコープ内の呼び出しのinstrumentによるチェックを無効にする。

  • [変更] check-varはtestに名前が変更され、シグネチャが変更された。ドキュメントを参照。

  • [変更] run-tests - testを参照。

  • [変更] run-all-tests - testを参照。

  • [変更] check-fnはtest-fnに名前が変更された。

  • [追加] abbrev-result - テストのより簡潔な説明を返す。

  • [追加] summarize-result - 多くのテストのサマリーを返す。

  • [追加] testable-syms - テストできるシンボル。

  • [追加] enumerate-namespace - 名前空間内のvarのシンボルを提供する。

clojure.core

  • [変更] - ClojureをJava 8で使用する場合、inst-msはjava.time.Instantインスタンスで動作するようになった。

  • [追加] bounded-count - collがcounted?であればそのカウントを返し、そうでなければそのseqを使用してcollの先頭n個の要素を最大限にカウントする。

1.9.0-alpha7 (2016年6月15日)

1.9.0-alpha7には、1.9.0-alpha6以降の以下の変更が含まれています(alpha5/6と比較してすべて破壊的変更)。

clojure.core: - long? ⇒ int? - 現在はすべてのJava固定精度整数型(byte、short、integer、long)をチェックする - pos-long? ⇒ pos-int? - neg-long? ⇒ neg-int? - nat-long? ⇒ nat-int?

clojure.spec: - long-in-range? ⇒ int-in-range? - long-in ⇒ int-in

long?を具体的にチェックしたい場合は、#(instance? Long %)を使用してください。

変更をお詫びし、alphatownへようこそ!

1.9.0-alpha6 (2016年6月14日)

1.9.0-alpha6には、1.9.0-alpha5以降の以下の変更が含まれています。

  • &正規表現演算子は、正規表現が通過しても述語が通過しない場合、高速に失敗するようになった。

  • alt/orからの戻り値は、2要素のベクトルではなく、マップエントリ(キー/値をサポート)になった。

  • [破壊的変更] fn-specsはfn-specに名前が変更され、登録されたfspecまたはnilを返すようになった。

  • fspecはfn?ではなくifn?を受け入れるようになった。

  • fspecの実装は、その:args、:ret、:fn specのキーワードルックアップをサポートする。

  • キーが不足していたfspec describeを修正し、:args/ret/fn specの説明を改善。

  • instrumentは、varの:args specのみをチェックするようになった - :retと:fn specをテストするには、clojure.spec.test関数を使用する。

  • alpha5で誤って省略されていたbytes?とuri?に対するジェネレーターサポートを追加。

1.9.0-alpha5 (2016年6月7日)

1.9.0-alpha5には、1.9.0-alpha4以降の以下の変更が含まれています。

修正: - specが存在しない場合、docが"Spec"と印刷していた問題を修正 - ? explainを修正

コアにおける新しい述語(すべてspecでビルトインのジェネレーターサポートも持つようになった): - seqable? - boolean? - long?, pos-long?, neg-long?, nat-long? - double?, bigdec? - ident?, simple-ident?, qualified-ident? - simple-symbol?, qualified-symbol? - simple-keyword?, qualified-keyword? - bytes? (byte[]用) - indexed? - inst? (および新しいinst-ms) - uuid? - uri?

specの新機能: - unform - specと適合した値を与えると、適合前の値を返す - 新しい述語: long-in-range?, inst-in-range? - 新しいspec(genサポート付き): long-in, inst-in, double-in

1.9.0-alpha4 (2016年5月31日)

1.9.0-alpha4には、1.9.0-alpha3以降の以下の変更が含まれています。

  • 空のcatのdescribeを修正

  • update-inのパフォーマンスを向上

  • seq(&)デストラクチャリングを最適化

1.9.0-alpha3 (2016年5月26日)

1.9.0-alpha3には、1.9.0-alpha2以降の以下の変更が含まれています。

  • マクロfdef specは、暗黙的な&formまたは&envをspec指定する必要がなくなった[破壊的変更]

  • multi-specは、パスにディスパッチ値を含めるようになった。

  • multi-specは、特別なデフォルトメソッドを必要としなくなった。

  • rep*のバグを修正

  • explain-strを追加(文字列を返すexplain)

  • s/+ explainを改善

  • explain出力を調整

  • テストレポートを修正

1.9.0-alpha2 (2016年5月25日)

1.9.0-alpha2には、1.9.0-alpha1以降の以下の変更が含まれています。

  • s/+のdescribeを改善

  • gen呼び出し時にrecursion-limitをキャプチャ

  • explain-dataは、入力パスの:inキーを含むようになった。

  • CLJ-1931 - with-genがAbstractMethodErrorをスローする問題を修正

1.9.0-alpha1 (2016年5月24日)

1.9.0-alpha1には、clojure.specの最初のリリースが含まれています。

specの使用ガイドは、https://clojure.dokyumento.jp/guides/specで確認できます。