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

変更履歴: 2.070.0

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

Download D 2.070.0
2016年1月27日リリース

ライブラリの変更

  1. std.experimental.ndslice パッケージが追加された。 これはMir ライブラリの一部としても利用可能である。
  2. core.sys.windows パッケージが 大幅に拡張された。
  3. TypeInfo.init は に改名された。TypeInfo.initializer
  4. std.json 文字列制御文字をエンコードする。
  5. FileLoggerのデフォルトLogLevelがLogLevel.allに変更された。
  6. の内部フィールドptrlen へのアクセスが廃止された。 BitArrayの内部フィールドへのアクセスが非推奨になった。

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

言語の変更

  1. 関数リテラルへのエイリアスを作成するための構文サポートを追加する。

    例:":

    alias less1 = (a, b) => a < b;
    alias less2 = (a, b) => a > b;
    
    import std.algorithm : sort, equal;
    
    int[] arr = [4, 1, 3, 2];
    assert(equal(sort!less1(arr), [1, 2, 3, 4]));
    assert(equal(sort!less2(arr), [4, 3, 2, 1]));
    

ライブラリの変更

  1. core.sys.windows パッケージが大幅に拡張された。 大幅に拡張された。

    core.sys.windows パッケージには、Windows API バインディングがかなり包括的に含まれるようになった。 Windows API バインディングが含まれるようになった。このパッケージは パッケージはStewart Gordonのバインディングから適応されたものである。

  2. TypeInfo.init は .TypeInfo.initializer

    メソッドTypeInfo.init は以下のように改名された。 TypeInfo.initializerに改名された。 に改名された。

    古い名前のエイリアスが追加されたが、次のリリースでは非推奨となる。 のエイリアスが追加された。

  3. std.json 文字列制御文字をエンコードする。

    をスローする代わりに、文字列をエンコードする。 JSONException, toJSON は文字列の制御文字をエンコードする。

    assert(toJSON(JSONValue("foo\u007fbar")) == `"foo\u007Fbar"`);
    

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

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

  1. Bugzilla 13009: [REG2.064] inoutオーバーロードがエイリアス経由で使用された場合、non-inoutとコンフリクトする。
  2. Bugzilla 14782: 内部エラー: backend/cod1.c
  3. Bugzilla 15369: [REG master] id.d(369):エラー:ユニコード空間外
  4. Bugzilla 15430: amdMmx がハングアップする
  5. Bugzilla 15500: デフォルト引数を持つ構造体コンストラクタのデフォルト構造が無効になった。
  6. Bugzilla 15550: [Reg 2.070.0-b1] テンプレート制約のテスト中にコンパイルエラーが発生する。

DMDコンパイラのバグ

  1. Bugzilla 3438: デフォルトのパラメータを持つ構造体ctorは拒否されるべきである。
  2. Bugzilla 3913: 間違った列挙型のエラーメッセージが表示される
  3. Bugzilla 4350: (ミックスイン)テンプレート識別子が"with"ステートメントでアクセスできない。
  4. Bugzilla 7903: [TDPL] publicメンバ変数は"@synchronized"クラスでは不正なはずである。
  5. Bugzilla 14040: スライスで代入を使用しない
  6. Bugzilla 14778: 構造体テンプレートで列挙型のコードが生成されない。
  7. Bugzilla 15133: エラーメッセージが理解できない
  8. Bugzilla 15141: Object.factoryは派生抽象クラスの作成を可能にする
  9. Bugzilla 15156: 同名のテンプレートでオーバーロードを設定する
  10. Bugzilla 15163: 二重関数呼び出しにおけるパーサーのバグ。
  11. Bugzilla 15172: ICE(interpret.ctfeCompile) アサーション `!fd->semantic3Errors' に失敗した。
  12. Bugzilla 15209: 無効なフィールドへのアクセスで冗長なエラーメッセージが表示される。
  13. Bugzilla 15233: dmd 2.68.2でTypeTupleがセグメンテーションフォールトを引き起こす
  14. Bugzilla 15239: ctfeInterpret()のICE(アサーション失敗) - opDispatch & インラインasm
  15. Bugzilla 15260: [dmd-internal] StringExp.compareが無効なメモリアクセスを引き起こす可能性がある
  16. Bugzilla 15261: [dmd-internal] BinExp.checkOpAssignTypesの些細な問題。
  17. Bugzilla 15262: [dmd-internal] トークン構造体の静的コンストラクタで初期化が重複していた。
  18. Bugzilla 15309: [dmd-internal] ScopeExp.semantic()は常に型を設定すべきである。
  19. Bugzilla 15317: DMD v2.069.0でType::kind()でセグメンテーションエラーが発生した。
  20. Bugzilla 15340: autoフィールドで "overlapped default initialization "エラーが発生する。
  21. Bugzilla 15352: デリゲートでのテンプレート引数のマッチングエラー
  22. Bugzilla 15366: boolとして型付けされた列挙型がキャストされてもboolとして振る舞う
  23. Bugzilla 15389: extern(C++)の前方参照問題
  24. Bugzilla 15394: [内部] CompileExp と FileExp が同じ op TOKmixin を持つ
  25. Bugzilla 15396: switch 文の中で static immutable が定数として認識されない。
  26. Bugzilla 15403: [internal] FileExpはImportExpressionを表し、ASTのクラス名は直感的ではない
  27. Bugzilla 15404: [内部] DotIdExp(TOKdot)とDotExp(TOKdotexp)
  28. Bugzilla 15417: 内部] DotIdExp(TOKdotexp)とDotExp(TOKdotexp) : 集約内の可変長引数関数に対する間違ったパラメータ・パッシング

DMDコンパイラの機能強化

  1. Bugzilla 12421: ラムダ・テンプレートの宣言をよりシンプルな構文で行えるようにした。
  2. Bugzilla 15015: Win64: 関数の戻り値がサイズ8の構造体の場合、C/C++とのインターオプに失敗する。
  3. Bugzilla 15186: C++のメンバ検索演算子の診断を改善した。
  4. Bugzilla 15464: テンプレート・パラメーター依存属性

phobosのリグレッション

  1. Bugzilla 14861: stdio.dのLockingTextReader.readFront()のエラー。
  2. Bugzilla 15319: [REG2.069] module mapがstd/map.dファイルにあり、読み込めない。

phobosのバグ

  1. Bugzilla 3764: 修正されたバグに対する Phobos の回避策を削除した。
  2. Bugzilla 14786: 組み込みの指数演算子^^が時々間違った符号の値を返す。
  3. Bugzilla 15187: アロケータに対する dispose が壊れている。
  4. Bugzilla 15188: deallocate がメモリリークを引き起こす
  5. Bugzilla 15220: [REG2.065]std.getoptが-o=値を"=値"として解析する。
  6. Bugzilla 15238: std.randomのunittestsを実行しているHeisenbug氏
  7. Bugzilla 15313: std.conv.emplace が const オブジェクトを初期化できない
  8. Bugzilla 15336: std.json: JSONValueのopInが文書化されていない
  9. Bugzilla 15409: Mallocatorは"@nogc"のコードでは使えない。
  10. Bugzilla 15420: topN(Range, Range)はless述語を尊重しない。
  11. Bugzilla 15429: [std.stdio] ドキュメントのリンクが壊れている

"phobos"の機能強化

  1. Bugzilla 12987: topN は範囲の先頭部分を返すべきである。
  2. Bugzilla 15128: winsock2.dの"IP_ADD_MEMBERSHIP "エラー
  3. Bugzilla 15146: std.file.dirEntries("")がWindowsでしか動作しない
  4. Bugzilla 15198: evenChunks - std.range.chunksのバリアントで、範囲をN個の均等な大きさのチャンクにスライスする
  5. Bugzilla 15208: phobosの"Enforcement failed"の使用をすべて除去した。
  6. Bugzilla 15212: BigIntはopCast!longとopCast!intを実装すべきである。
  7. Bugzilla 15320: 静的assert(__traits(compiles, xyz))はunittestsにおいて有害とみなされる。
  8. Bugzilla 15385: Andersson91のアイデアをSortedRange.containsに適用する。

Druntimeのバグ

  1. Bugzilla 15270: Thread.getThisの保存にTLSを使う(pthread_getspecificは重いロック競合を引き起こす)
  2. Bugzilla 15367: デリゲートの配列の比較に失敗する

Druntimeの機能強化

  1. Bugzilla 15053: Runtime.cArgsは"@nogc"ではない
  2. Bugzilla 15268: GC.collectを使用したThread.getAll/Thread.opApplyでデッドロックが発生する可能性がある。

dlang.orgのバグ

  1. Bugzilla 8846: インラインアセンブラの仕様にcmpxchg16bが含まれていない。
  2. Bugzilla 15250: 文法にインデックス式内の複数スライスに対するルールが含まれていない

dlang.orgの機能強化

  1. Bugzilla 13624: 概要ページの一部がとても古くなっている
  2. Bugzilla 15078: GCのドキュメントに2.067の変更を反映させる

ツールのバグ

  1. Bugzilla 15173: rdmd man ページが正しくない/古い
  2. Bugzilla 15174: tmpdir スイッチの追加またはドキュメント削除
  3. Bugzilla 15175: rdmd --loopと--evalがstd.streamの非推奨の警告を表示するようになった。

インストーラのバグ

  1. Bugzilla 15456: sc.ini:Windows 10で非スーパーユーザーのアクセスが拒否される
  2. Bugzilla 15572: Windows インストーラが"sc.ini" をアクセス不能にする
前のバージョン: - 次のバージョン: