英語版
このページの英語版を見る

変更ログ 2.100.1

前バージョン: - 次のバージョン:

Download D 2.100.1
2022年7月15日リリース

2.100.1には1つの大きな変更と16の修正されたBugzillaの問題が含まれている。 多大なる感謝を 14人の貢献者 に感謝する。

D 2.100.1におけるすべてのバグ修正と機能強化のリスト。

コンパイラの変更

  1. scope(failure) return を含むブロックは非推奨となった。

    このリリースから、return ステートメントを本文に持つことは非推奨となった。scope(failure) 文の本文に。現在、エラーはscope(failure) でも処理されるため、このようなブロックからreturn を実行することはエラーになりやすい。このため、次のような状況になる:

    ulong get () @safe nothrow
    {
        scope (failure) return 10;
        throw new Error("");
    }
    
    void main () @safe
    {
        assert(get() == 10);  // 合格
    }
    

    ここでエラーはリターンによって回避される。もし本当にリターンが必要なら このような状況では、単にtry-catchブロックを使うのが解決策である。 を使うことである。

    注釈:scope(exit)scope(success) はすでにこの制限を設けている。


D 2.100.1におけるすべてのバグ修正と機能強化のリスト:

DMDコンパイラのリグレッション修正

  1. Bugzilla 23100: スコープパラメータに渡される空の配列リテラルが'falsey'でなくなった。
  2. Bugzilla 23148: テンプレート関数がデストラクタを持つ構造体とラムダを持つテンプレートをインスタンス化する不変量を宣言し、mainがラムダを持つ場合、静的ライブラリで不変量シンボルが欠落していた。
  3. Bugzilla 23170: ラムダでマップに渡された配列リテラルがネストされた関数から返されると、メモリが破壊される。
  4. Bugzilla 23172: [REG2.100] 三項演算子と非int列挙型に誤ったキャストが挿入される
  5. Bugzilla 23181: [REG 2.099] AssertError@src/dmd/e2ir.d(6094):参照 _d_arraysetctor を試している。

DMDコンパイラのバグ修正

  1. Bugzilla 20143: 実数0/0がdoubleとして返された場合のオプティマイザでのICE
  2. Bugzilla 21443: スコープ(失敗)を返すと安全性が損なわれる。
  3. Bugzilla 21723: リンカーエラー:2モジュールの静的ライブラリ、メインはインラインでコンパイルされ、関数、型エイリアス、エイリアスラムダを定義する不変量がある。
  4. Bugzilla 23082: によってアクセスされた関数でオーバーロードされたテンプレートエイリアスの文字列: segfault.
  5. Bugzilla 23102: pinholeopt, "Conditional jump or move depends on uninitialised value(s)" (条件付きジャンプまたは移動は、初期化されていない値に依存する。
  6. Bugzilla 23108: ICE:AssertError@src/dmd/clone.d(567):アサーション失敗
  7. Bugzilla 23109: ICE: アサーション失敗:AssertError@src/dmd/dclass.d(449):アサーション失敗
  8. Bugzilla 23114: noreturn オペランドを算術式で使用できない。
  9. Bugzilla 23120: dmd 不正命令スロー式
  10. Bugzilla 23166: インラインコンパイル時のseg fault

phobosリグレッションの修正

  1. Bugzilla 23132: v2.099.0から2つの範囲を等しく比較する "フレームポインタにアクセスできない"

このリリースへの貢献者 (14)

このリリースを可能にしてくれたすべての素晴らしい人々に多大な感謝を捧げる。

前バージョン: - 次のバージョン: