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

変更ログ 2.099.1

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

Download D 2.099.1
リリース 2022年04月07日

2.099.1には2つの大きな変更と21のBugzilla問題の修正が含まれている。 多大なる感謝を 12人の貢献者 に感謝する。

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

コンパイラの変更

  1. foreach ループの__traits(parameters) の特殊なケースが削除された。

    以前は、オーバーロードされたopApply を使用してforeach 内で使用された場合、トレイト は、デリゲートへのパラメータを返し、foreach 内の関数は返さなかった。

    この動作は、特にforeach の集約の型がテンプレート・パラメータに依存している場合、直感的でない。 の型がテンプレートパラメータに依存する場合、この振る舞いは直感的でない。そのため、__traits(parameters) は一貫して レキシカルに囲む関数のパラメータを返すように変更された。

    class Tree {
        int opApply(int delegate(size_t, Tree) dg) {
            if (dg(0, this)) return 1;
            return 0;
        }
    }
    void useOpApply(Tree top, int x)
    {
        foreach(idx; 0..5)
        {
            static assert(is(typeof(__traits(parameters)) == AliasSeq!(Tree, int)));
        }
    
        foreach(idx, elem; top)
        {
            // 以前は:
            // static assert(is(typeof(__traits(parameters)) == AliasSeq!(size_t, Tree)));
    
            // 現在は:
            static assert(is(typeof(__traits(parameters)) == AliasSeq!(Tree, int)));
        }
    }
    

ライブラリーの変更

  1. std.experimental.logger のデフォルトレベルがinfo に変更された。warning

    2.099.0リリースでは、デフォルトのログレベルがwarningに変更された。

    しかし、これはinfo (情報) ログも含むと誤って想定していた。現在は、info のログメッセージも含まれる。


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

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

  1. Bugzilla 17434: [REG: 2.073] import lookupがpublic importを無視する。
  2. Bugzilla 20015: [REG 2.086] 非推奨の-preview, -revert, -transitionオプションがドキュメント化されない。
  3. Bugzilla 20717: [REG 2.086] 投機的コリジョンによる「未定義識別子」エラーの無音化
  4. Bugzilla 21285: 2.092と2.094(git master)の間でdelegate covarianceが壊れていた。
  5. Bugzilla 22175: 構造体の代入値が必要で構造体のサイズが奇数の場合、アサートが失敗する。
  6. Bugzilla 22639: デフォルト引数を持つコピーコンストラクタが呼び出されない
  7. Bugzilla 22858: [REG2.099] void*[0]のアラインメントが正しくない。
  8. Bugzilla 22859: Error: 互いに再帰的な変数isAssignable の前方参照。allSatisfy
  9. Bugzilla 22860: Error: unknown 相互に再帰的でネストされたSumTypeを持つ
  10. Bugzilla 22863: [REG2.099] -mainがリンクのみ(ソースモジュールなし)で使用された場合、動作しなくなった。
  11. Bugzilla 22969: エイリアス宣言の右側にマニフェスト定数の名前をミックスインできない

DMDコンパイラのバグ修正

  1. Bugzilla 22852: ImportC:レキサーが無効な wysiwyg および hex 文字列を許容する。
  2. Bugzilla 22853: ImportC:レキサーでブロック・コメントのネストが可能になる
  3. Bugzilla 22868: __traits(parameters)は関数の代わりにデリゲートのパラメータを返す。
  4. Bugzilla 22871: __traits(parameters) 、エイリアスを使用すると不明なエラーが発生する。
  5. Bugzilla 22939: エラーメッセージが悪い:Error: no propertymsg for "型".string
  6. Bugzilla 22942: 新しいXCodeバージョンでは、無効なセクション型/オフセットである。
  7. Bugzilla 22993: 8進数リテラルのヒントに引用符がない

Druntimeリグレッションの修正

  1. Bugzilla 20778: NULLを含む例外メッセージが矛盾して扱われる

Druntimeの機能強化

  1. Bugzilla 22908: OpenBSD:getpwnam_shadow および getpwuid_shadow 関数のプロトタイプを追加した。

dlang.org のバグ修正

  1. Bugzilla 21086: core.thread.contextのソースリンクが間違っていた。

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

このリリースを可能にしてくれたすべての素晴らしい人々に心から感謝する。

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