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

変更ログ 2.057

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

Download D 2.057
2011年12月13日リリース

新機能/変更点

  • 64ビット・ターゲットにおけるXMMレジスタの使用が改善された。
  • immutableの同義語としてのinvariantキーワードは非推奨となった。
  • obj2asmとdumpobjにMach-O 64ビット・サポートを追加した。
  • クラス、インターフェイス、例外がCTFEでサポートされる。
  • Bugzilla 3474: PATCH:構造体とクラスのインデックス操作にopDollarを実装する。
  • Bugzilla 6572: typedefの廃止
  • std.regexモジュールの実装を大幅に見直した。 std.regex.replaceをdelegateに置き換える、 デリゲートのパラメータとして、RegexMatch!stringの代わりにCaptures!stringを使う。
  • typedefが非推奨となったため、typedefを使用するstd.conv.toのオーバーロードは非推奨となった。 typedefを使用するstd.conv.toのオーバーロードは非推奨となった。
  • std.array.insertは非推奨となった。代わりにstd.array.insertInPlaceを使用してほしい。
  • std.array.replaceのオーバーロードである置換は非推奨となった。 代わりにstd.array.replaceInPlaceを使用してください。
  • SysTime、Date.TimeOfDay、Date.TimeOfDayに対するtoISOExtendedString関数とfromISOExtendedString関数が非推奨となった、 TimeOfDay、およびstd.datetimeのDateTimeに対するtoISOExtendedString関数とfromISOExtendedString関数は非推奨となった。そのため toISOExtString および fromISOExtString を使用してください。
  • std.file.getTimesPosixは非推奨となった。代わりにstd.file.getTimesを使用してください。
  • std.file.isDir、isFile、isSymlinkのuintを取るオーバーロードは非推奨となった。 のオーバーロードは非推奨となった。代わりにattrIsDir、attrIsFile、attrIsSymlinkを使用してほしい。
  • Bugzilla 2550: 暗黙の変換は、テンプレート値パラメーターの特殊化には適用されない。
  • Bugzilla 3467: int以外の整数テンプレート・パラメーターが正しく伝搬されない。
  • IFTIの動的配列型とポインタ型からトップconstを削除した。

Druntimeバグ修正

  • Bugzilla 6909: core.sys.windows.windows の OVERLAPPED 構造体の定義が正しくない。

ライブラリのバグ修正

  • 未掲載のバグ:std.conv:float("-0") に修正した。
  • 未掲載のバグ: std.fileがOS X x86_64でstat64宣言が間違っているために壊れている。
  • Bugzilla 2936: std.regex.match() 短い文字列の最適化
  • Bugzilla 4765: std.math.modf が常に 0 を返すようにした。
  • Bugzilla 5193: SListはイミュータブルメンバーを持つ構造体を持つことができない。
  • Bugzilla 5620: RegexMatchを暗黙的にboolに変換する。
  • Bugzilla 5712: [パッチ] std.regex.replaceはdstringを禁止する。
  • Bugzilla 6204: クラスのemplace()はより大きなチャンクを受け付けるが、配列の代入では失敗する。
  • Bugzilla 6887: getoptのリグレッション
  • Bugzilla 6888: std.getopt.getopt: 1文字のハッシュオプションが範囲違反を引き起こす
  • Bugzilla 6935: std.getopt.getopt:1文字ハッシュオプションは範囲違反になる : "@disable"を持つ構造体は範囲を作れない
  • Bugzilla 6953: std.concurrencyはもっとドキュメントが必要だ。
  • Bugzilla 6973: static assert(isOutputRange!(OutputRange!int, int))はfalseである。
  • Bugzilla 6976: GetLastErrorがプロパティとして呼び出される。
  • Bugzilla 6977: std.stdioのプロパティとして呼び出されるgetErrno
  • Bugzilla 6979: hasUnsharedAliasingは複数のパラメータを受け取ることができない
  • Bugzilla 6990: std.string.splitlinesの非推奨ドキュメントに単語がない
  • Bugzilla 7000: std.regexにstd.stdioのインポートがない?
  • Bugzilla 7039: Posix 2.057 Makefileのエラーが64bitビルドを壊す
  • Bugzilla 7040: phobosは適切なドキュメント生成のために "version/else version "ブロックを使わなければならない。 を使う必要がある。
  • Bugzilla 7045: std.regexの1573行目のAssertError
  • Bugzilla 7055: to!float("INF2") == 2

DMDのバグ修正

  • Bugzilla 2095: 型チェックを行わない共分散=バグ
  • Bugzilla 2532: '='が真偽値を返さない
  • Bugzilla 2778: エイリアスのthis + IFTIが機能しない。
  • Bugzilla 2856: staticのopIndexがテンプレート化された構造体/クラスではコンパイルされない。
  • Bugzilla 3990: 動的配列をポインタとして参照する
  • Bugzilla 4047: [CTFE]クラス/構造体のヒープ割り当て
  • Bugzilla 4401: auto 関数を内部関数にすることはできない。
  • Bugzilla 4511: 矛盾問題
  • Bugzilla 4583: PICコードが動作しない:EBXレジスタが正しく設定されない
  • Bugzilla 5311: インスタンス参照を通してグローバル/スタティック・データにアクセスすると、Pureが壊れてしまう。
  • Bugzilla 5364: オプティマイザが-1の上位dwordを殺してしまう。
  • Bugzilla 5416: nullはそれ自身の型を持つべきである。
  • Bugzilla 5899: "auto-return"関数が"null"と参照型を一致させることができない。
  • Bugzilla 6056: 文字列ミックスインにおける型ルックアップの問題。
  • Bugzilla 6077: CTFE: null 配列を null 配列に追加できない。
  • Bugzilla 6330: 構造体への代入を無効にできない。
  • Bugzilla 6354: x86_64のオプティマイザバグ:foreachとscope(failure)使用時にBitshiftが最適化される。
  • Bugzilla 6416: [CTFE] 宣言 static struct はまだ CTFE には実装されていない。
  • Bugzilla 6479: 構造体と "ミックスイン"テンプレートで偽エイリアスが発生する。
  • Bugzilla 6522: [CTFE] foreach(ref)の opAssign 呼び出しに問題がある。
  • Bugzilla 6603: [CTFE] マニフェスト定数関数ポインタを介して呼び出すことができない。
  • Bugzilla 6736: リグレッション(2.054):ICE (cgcod.c 1672) で this というエイリアスと特定の構造体が使用される
  • Bugzilla 6763: TypeTupleを(const/in/refなどで)使用すると永遠に変更される
  • Bugzilla 6792: [CTFE] インデックス付き配列のポインタキャストによる ICE
  • Bugzilla 6800: [CTFE] 危険なポインタ・キャストは拒否されるべきである
  • Bugzilla 6805: opDispatch テンプレートの型は使えない。
  • Bugzilla 6816: [CTFE] ネストされた関数はこの関数にアクセスできない。
  • Bugzilla 6817: [CTFE] インライン化されたIfStatementの解釈でエラーが発生する
  • Bugzilla 6832: エイリアスでラップされたオブジェクトをテストできない。
  • Bugzilla 6836: マップ + UFCS = 失敗
  • Bugzilla 6837: エイリアスのthis + UFCS = fail
  • Bugzilla 6851: [CTFE] 引数で渡されたポインタをderefできない
  • Bugzilla 6859: 抽象メソッドが"契約"を使用している場合、セグメンテーションエラーが発生する。
  • Bugzilla 6864: Const変換は共有変換より優先されるべきである。
  • Bugzilla 6865: inout マッチングは共有修飾子を削除する
  • Bugzilla 6866: ICE(mtype.c):エイリアスのthisとinoutのマッチング
  • Bugzilla 6867: inoutループとネストされたforeachループ
  • Bugzilla 6868: IsExp + 不正な静的配列型 = エラー
  • Bugzilla 6870: 型修飾子はtypeofとの組み合わせで矛盾した振る舞いをする。
  • Bugzilla 6872: shared(inout(int)[])の型解析が壊れる。
  • Bugzilla 6877: [XMM]リグレッション、float値の不具合
  • Bugzilla 6879: テンプレートマッチングとIsExpの違い
  • Bugzilla 6881: [XMM]ICEをペイントした浮動小数点値
  • Bugzilla 6885: [CTFE] 動的に割り当てられた2次元配列の間違ったコード
  • Bugzilla 6886: [CTFE] ICE(interpret.c) 初期化子を持つ新しい配列
  • Bugzilla 6901: CTFEの前方参照で "override cannot be applied to variable "という間違ったエラーが発生する。
  • Bugzilla 6902: 純粋なnothrow int()」型が異なる。
  • Bugzilla 6910: テンプレートがエイリアスparamを持つ場合、__traits(hasMember, "<名前>")は機能しない。
  • Bugzilla 6912: const(T)[]は暗黙的にinout(const(T)[])にキャストできる。
  • Bugzilla 6919: [CTFE] ポインタを通してローカル変数への効果を得ることができない
  • Bugzilla 6922: [TDPL] constとimmutableの重ね合わせが正しく動作しない
  • Bugzilla 6927: 連鎖関数による@プロパティ管理を改善した。
  • Bugzilla 6928: インダイレクトを持つフィールドが存在する場合、alias this、不変のフィールド、共通型は失敗する。
  • Bugzilla 6929: [ICE] typeMergeがあいまいなalias this変換があるとクラッシュする。
  • Bugzilla 6941: .stringof が冗長なストレージクラスを表示する
  • Bugzilla 6972: [CTFE] "uint"と "ubyte/=uint"とのICE
  • Bugzilla 6994: テンプレート制約で明示的な 'this' を使用するとエラーが発生する
  • Bugzilla 6997: 64bitオプティマイザのバグ
  • Bugzilla 7004: 明示的にsize_tとして型付けされたインデックスを持つタプルを反復処理するとエラーが発生する。
  • Bugzilla 7026: 64bitオプティマイザのバグ
  • Bugzilla 7027: DMDのGitマスターで構造体メンバtrySemantic()がリグレッションする。
  • Bugzilla 7028: finallyブロック実行時にFPU regsの保存に失敗する
  • Bugzilla 7072: [2.057 Beta] アサーションの失敗:ファイル'mtype.c'の145行目の'0'
  • Bugzilla 7093: エイリアス型が解決されないことがある。
前のバージョン: - 次のバージョン: