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

変更ログ 2.059

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

Download D 2.059
リリース 2012年4月12日

新機能/変更点

  • 定義済みDdocマクロSRCFILENAMEを追加した。
  • レキサーで#をトークンとしてサポートするように変更。
  • AES、PCLMULQDQ、RDRAND、AVX、VAES、VPCLMULQDQ、FMA、FP16Cをcore.cpuidに追加した。
  • Bugzilla 435: コンストラクタはテンプレート化されるべきである
  • Bugzilla 2367: 文字列リテラルでのオーバーロード・エラー
  • Bugzilla 3382: [tdpl] 統一された関数呼び出し構文を実装する。
  • Bugzilla 4536: Typetuples (T...) は .init メンバを持つべきである。
  • Bugzilla 5525: 同名テンプレートはオーバーロードされた同名メンバを許すべきである。
  • Bugzilla 7105: inoutルールを緩和する
  • Bugzilla 7833: 変更履歴に構造体リテラル/opCmp/opEquals/toHashの変更点を明記すべきである。
  • toHash、toString、opEquals、opCmp関数を純粋でnothrowにするよう努力する、 const、@safeにする。まもなく、これは必須となるだろう。
  • 非推奨のstd.date、std.dateparse、std.gregorianモジュール は削除された。代わりにstd.datetimeを使ってほしい。
  • std.fileのいくつかの非推奨関数が削除された。
  • std.pathの古い関数のうち、非推奨となる予定だったものが削除された。 は非推奨となった。2.055で導入された を使用してほしい。ただし、curdirとpardirには代替がない。 とpardirには代替がないことに注意してほしい。 . "であるため、これらのための変数は不要と考えられたからである。また また、新しいstd.path関数について注意すべき大きな変更点は、拡張機能で動作する場合、"."を期待することである。 新しいstd.path関数の大きな変更点は、拡張子に対して操作する場合、"."が拡張子の一部であることを期待することである。 が拡張子の一部であることを期待する(例えば、"file.txt".extension == ".txt"に対し 一方、"file.txt".getExt() == "txt")。
  • 廃止が予定されていたstd.exception.enforceExのバージョンは廃止された。 非推奨になる予定だったstd.exception.enforceExのバージョンは非推奨になった。新しい newE(msg,file,line)で構築できる例外を取るバージョンを使用してほしい。 (旧バージョンのように単にnew E(msg)ではなく)。そうすれば で構築された例外は、enforceExが呼び出されたファイルと行番号を示す。 番号を与える。
  • Win9xサポートを廃止した。
  • std.typecons:Proxyミックスインテンプレートを追加した。
  • std.format:複合フォーマット指定子に関するドキュメントを追加した。

Druntimeのバグ修正

ライブラリのバグ修正

  • Bugzilla 4604: writelnのスタックオーバーフロー
  • Bugzilla 5523: std.regexで角括弧内の"\s"や"\W"などの扱いがおかしい。
  • Bugzilla 5652: std.regexに"@p"と"@P"のunicodeプロパティを追加した。
  • Bugzilla 5674: std.regexでAssertErrorが発生する。
  • Bugzilla 5964: std.stdio.readlnでUnicodeExceptionがスローされることがある。
  • Bugzilla 6217: [GSOC] std.algorithm.mapの結果は移動可能ではない
  • Bugzilla 6403: std.regexをUnicode UTS #18 Level 1サポートにアップグレードする。
  • Bugzilla 6892: 列挙型メンバの長さを指定して書式付きで書き込む
  • Bugzilla 7111: 新しい正規表現エンジンは空文字列の先頭にマッチしない
  • Bugzilla 7138: dirEntriesでarray()を呼び出せない。
  • Bugzilla 7264: 4-arg dirEntriesの結果を文字列として反復できない
  • Bugzilla 7299: std.uniのdocコメントが見つからない
  • Bugzilla 7300: std.regex.ShiftOr!dchar.searchが壊れている
  • Bugzilla 7374: stdin.byLine()が空の入力でAssertErrorをスローする
  • Bugzilla 7460: std.windows.registryが偽の例外メッセージを報告する
  • Bugzilla 7476: Write(ln)関数がretro範囲を受け付けなくなった。
  • Bugzilla 7628: std.format formatValueのオーバーロードが正しくない
  • Bugzilla 7674: 正規表現置換がエスケープされた書式を要求する
  • Bugzilla 7679: std.regex.splitとsplitterがctRegexで動作しない
  • Bugzilla 7718: regex と ctRegex が異なる結果を生成する

DMDのバグ修正

  • rdmd: --forceが--evalで動作するようになった。
  • rdmd: --evalのインポートリストを更新した。
  • Bugzilla 176: [module] message "モジュールとパッケージが同じ名前である"
  • Bugzilla 783: new[] size 引数に const または variable インデックスを持つ配列は使えない。
  • Bugzilla 977: 構造体や配列のイニシャライザー内の"構造体式"が間違った行番号になる。
  • Bugzilla 3279: 型比較時のエラーメッセージが紛らわしい。
  • Bugzilla 3354: 1/2アーギュ浮動小数点数命令の引数の数が無効である。
  • Bugzilla 3509: コンパイル時にテンプレートミックスインのメンバを前方参照できない。
  • Bugzilla 3510: テンプレート・ミックスイン内からテンプレート型を前方参照できない。
  • Bugzilla 3559: DMD 1.048+でオーバーロードされたメンバ関数から関数ポインタを取得できない
  • Bugzilla 3630: "has no effect in expression "エラーでエラー位置が正しくない。
  • Bugzilla 3682: 回帰(2.038)は式が型にマッチしない。
  • Bugzilla 3812: 可変長引数関数から配列への暗黙のキャストの行番号が見つからない。
  • Bugzilla 3822: array.length++;はエラーだが、++array.lengthはコンパイルされる。
  • Bugzilla 3927: array.length++;はエラーだが、++array.lengthはコンパイルされる
  • Bugzilla 4241: 重複共用体初期化エラーでファイルの場所がわからない。
  • Bugzilla 4269: リグレッション(2.031): エラーが箝口令が敷かれている間に評価された場合、無効な型が受け入れられた。
  • Bugzilla 4507: オーバーライド関数が何もオーバーライドしていない場合、スペルチェッカーを使用する。
  • Bugzilla 4820: チェンジセット 452 に起因する DStress の回帰(1.058, 2.044)
  • Bugzilla 4854: Regression(2.047, Mac 10.5 only) writefln グローバルがない場合のセグメンテーションフォールト。
  • Bugzilla 4993: 一時値と opIndexAssign がない場合のセグメンテーションフォールト。
  • Bugzilla 5181: 変換を伴うインプレース操作 op= での過剰キャスト
  • Bugzilla 5412: wtf2をインポートする。
  • Bugzilla 5554: [qtd] 共分散検出の失敗
  • Bugzilla 5590: 回帰(2.036) ICE(e2ir.c): 連想配列である列挙型に.valuesを使用した場合。
  • Bugzilla 5733: opDispatch をテンプレートとして呼び出すとコンパイラが無限ループになる
  • Bugzilla 5879: すべてのフロントエンドエラーが stderr を使用するわけではない
  • Bugzilla 5889: 構造体リテラル/構造はr値であるべきである(refパラメータにバインドされる)
  • Bugzilla 6391: 浮動ポインタ値の「.im」を参照渡しにした場合の行数エラー
  • Bugzilla 6438: [CTFE] =void 配列のスライスで "value used before set" エラーを修正した。
  • Bugzilla 6611: 配列のポストインクリメント/デクリメント時のエラーメッセージの改善
  • Bugzilla 6681: 構造体のコンストラクタ呼び出しが構造体リテラルに変換され、"共用体"の初期化が壊れる。
  • Bugzilla 6685: r値で "with"を使えるようにした。
  • Bugzilla 6699: エラーメッセージの__errorのケースを増やした。
  • Bugzilla 6738: 構造体/クラスメソッド内からテンプレート化された関数が呼び出せない。
  • Bugzilla 6785: インスタンス化に失敗したときのpragma(msg)のエラーメッセージが正しくない。
  • Bugzilla 6982: 連想配列の代入で不変性が尊重されない
  • Bugzilla 7038: const struct との"構造体"型の不一致。
  • Bugzilla 7110: opSlice() と opIndex 関数がテンプレート引数として不安定に動作する。
  • Bugzilla 7288: ICE(toir.c):ラムダreturn+autoがある。
  • Bugzilla 7353: NRVOが推論された戻り値型で正しく動作しない
  • Bugzilla 7380: モジュールレベルで構造体コンストラクタの変数のアドレスを使おうとするとクラッシュする。
  • Bugzilla 7399: trySemantic()のimport文が壊れているとサイレントコンパイラエラーが発生する。
  • Bugzilla 7406: タプルのforeachが混合タプルで動作しない
  • Bugzilla 7411: テンプレート内のベクトル型から基底型を推測する
  • Bugzilla 7439: 複合代入がセグメンテーションフォールトを引き起こす
  • Bugzilla 7452: enforce()を使った関数は、遅延引数による無名関数のため@safeと推論できない。
  • Bugzilla 7462: オーバーライドされた関数で_error_を使ったエラーメッセージが表示される。
  • Bugzilla 7463: 不正なテンプレート値パラメータでエラーメッセージが重複する。
  • Bugzilla 7473: [CTFE] 参照でない引数があたかも参照引数であるかのように振舞う
  • Bugzilla 7481: テンプレート・エラーの後、コンパイラーは'soldier on'すべきである。
  • Bugzilla 7493: void[][N]の初期化
  • Bugzilla 7499: ICE(cast.c行 1495)のラムダ配列による初期化
  • Bugzilla 7500: [ICE](template.c5287行)のイミュータブルラムダ関数による初期化
  • Bugzilla 7502: 2.056リグレッション:大きな構造体の場合、.initの割り当てにコンパイルに時間がかかる
  • Bugzilla 7504: typeof(null)'型のオブジェクトを配列に代入できない。
  • Bugzilla 7518: std.array.emptyは共有配列では動作しない
  • Bugzilla 7525: [2.058リグレッション] デリゲートリターンの戻り値の型推論が壊れている。
  • Bugzilla 7527: [CTFE] コンパイル時にポインタをスライスするとセグメンテーションエラーが発生する
  • Bugzilla 7536: [CTFE] コンパイル時にポインタをスライスするとセグメンテーションフォールトが発生する。
  • Bugzilla 7544: ICE(interpret.c) ヌル・キャッチ・ブロックで例外をキャッチする
  • Bugzilla 7545: ICE(cast.c) エイリアスを通して積分型をマージする。
  • Bugzilla 7547: オブジェクトをトップレベルのモジュールとして出力する
  • Bugzilla 7550: AVX命令VPMULDQの欠落
  • Bugzilla 7552: オーバーロードされた関数の一部を取得・結合できない
  • Bugzilla 7554: 関数のポインタ引数も不変である。
  • Bugzilla 7557: テンプレート失敗後のエラーの海
  • Bugzilla 7562: TemplateThisParameterを使うとDMDがクラッシュする。
  • Bugzilla 7563: デフォルトのテンプレート引数を持つクラスメンバは "型"を持たない。
  • Bugzilla 7568: クラスを含む集合体でpragma(msg)がsegfaultする。
  • Bugzilla 7578: vararg opDispatchのインデックス作成結果でICEが発生する。
  • Bugzilla 7580: NullableクラッシュのID割り当て dmd
  • Bugzilla 7582: 非タイプのネストされたデリゲート・リテラルがコンパイルされない
  • Bugzilla 7583: [CTFE] タプルとエイリアスのICE
  • Bugzilla 7589: __traits(compiles)はコンパイルに失敗するテンプレートでは動作しない
  • Bugzilla 7592: xmmを使用する際にirealからifloatへの変換が壊れる
  • Bugzilla 7595: データが上書きされる。
  • Bugzilla 7608: __traits(allMembers)が壊れている。
  • Bugzilla 7618: パラメータ格納クラスをバイパスするデリゲート/関数ポインタ呼び出し
  • Bugzilla 7621: 不変型等価性の問題
  • Bugzilla 7633: CTFEエラーメッセージの欠落
  • Bugzilla 7639: 未定義の列挙型 AA キーがコンパイラをクラッシュさせる
  • Bugzilla 7641: std.typecons.Proxyがクラスへの暗黙の変換を誤って許可する
  • Bugzilla 7643: タプルスライス全体が期待通りに解決されない
  • Bugzilla 7649: デフォルト関数の引数でラムダ推論が不正である。
  • Bugzilla 7650: 連想配列リテラルにおけるラムダ推論の誤り
  • Bugzilla 7667: ICE(interpret.c):'ctfeStack.stackPointer() == 0'.
  • Bugzilla 7669: 静的配列型によるinout推論の誤り
  • Bugzilla 7670: プロパティと構造体のUFCS問題
  • Bugzilla 7671: immutable(int[3])からshared(inout(T[n]))のinout推論が壊れた。
  • Bugzilla 7672: Remove top constはinout配列型では機能しない。
  • Bugzilla 7681: Regression(2.059head):ICE:opCatAssign(delegate)で未定義の識別子が指定される。
  • Bugzilla 7682: 共有配列型と "cast() is not an lvalue "エラー。
  • Bugzilla 7684: IFTIと共有オーバーロードが機能しない
  • Bugzilla 7694: 内部エラー: e2ir.c 1251 struct 内のメンバ関数をエイリアスパラメータで呼び出すとエラーが発生する。
  • Bugzilla 7695: リグレッション(2.058):ICE(mtype.c)で、constメンバを持つ構造体型のキーを持つ連想配列が使用される。
  • Bugzilla 7698: パラメータ化されたテンプレート値を特殊化できない。
  • Bugzilla 7699: inline付きでコンパイルすると契約中のフレームポインタが取得できない。
  • Bugzilla 7702: opDispatch が無限ループに入る
  • Bugzilla 7703: [UFCS] プロパティとして明示的にテンプレート化された関数をインスタンス化できない。
  • Bugzilla 7705: ラムダ構文が有効なシグネチャを許可しない
  • Bugzilla 7713: ラムダ推論がテンプレート関数の引数で機能しない。
  • Bugzilla 7722: 通常の関数をプロパティとして使用することを拒否する。
  • Bugzilla 7731: アサーションの失敗:ファイル 'mtype.c' の7911行目の 't'
  • Bugzilla 7732: [CTFE] AssociativeArrayという構造体のコードが間違っている。
  • Bugzilla 7735: 可変長引数void[][]...を持つ "関数"が渡されたデータを破損する。
  • Bugzilla 7742: 正しいフィールド数で「フィールドより初期化子の数が多い」エラーが発生する
  • Bugzilla 7743: nothrowデリゲートの解析に問題がある。
  • Bugzilla 7745: リグレッション (1.x git-415e48a) 外部オブジェクトファイルに定義されたメソッドへのポインタが取られる
  • Bugzilla 7751: [ICE] (リグレッション 2.059head) auto および前方参照から
  • Bugzilla 7754: ヘッダー生成時にテンプレート内の static this() が取り除かれる
  • Bugzilla 7755: リグレッション(2.059head):glue.cのICE
  • Bugzilla 7757: 遅延inoutパラメータを持つinout関数がコンパイルされない。
  • Bugzilla 7761: ラムダ式で属性がパースされない
  • Bugzilla 7768: より読みやすいテンプレート・エラー・メッセージ
  • Bugzilla 7769: relax inoutルールがテンプレート化された関数では機能しない。
  • Bugzilla 7722: 通常の関数がプロパティとして使われることを拒否する。
  • Bugzilla 7773: 組み込み属性にもUCFS構文を?
  • Bugzilla 7781: [CTFE] "ミックスイン({return;}())"のセグメンテーション・フォールト;
  • Bugzilla 7782: [ICE] 間違ったインポート構文を持つ
  • Bugzilla 7785: [CTFE] 変数へのポインタをスライスする際のICE
  • Bugzilla 7786: 無効なモジュール名で dmd がクラッシュする
  • Bugzilla 7789: [CTFE] 配列長を設定する際のヌルポインタ例外
  • Bugzilla 7794: コンパイルエラーの後に regex() を呼び出すとエラーの海になる
  • Bugzilla 7808: Nullableのエイリアスはクラスを含む構造体では動作しない。
  • Bugzilla 7812: テンプレートマッチの推論中に無効なコードでセグメンテーションエラーが発生する。
  • Bugzilla 7814: リグレッション(2.059head) ICE(tocsym.c)でforeach-range内でscope(failure)を使っている
  • Bugzilla 7815: ミックスインテンプレートの前方参照(?) リグレッション
  • Bugzilla 7820: regression(DMD 2.059head) "-property"スイッチによる'front'への前方参照で間違ったエラーが発生する
  • Bugzilla 7823: デフォルト関数の引数イニシャライザとして使用されるネストされた列挙型を構造体イニシャライザで初期化することはできない。
  • Bugzilla 7826: [D2 Beta] toHashでgetHashを警告なしで使用できない
  • Bugzilla 7843: リグレッション(2.059 beta):情報警告で実行可能ファイルが生成されない
  • Bugzilla 7857: File#writeが列挙型をbooleanとしてフォーマットする。
  • Bugzilla 7858: __traits(getOverloads)が不正なシンボルを返す。
  • Bugzilla 7859: 無効なエイリアステンプレートパラメータ型でクラッシュする
  • Bugzilla 7861: 自己参照モジュールでの__error伝播中のセグメンテーションエラー
  • Bugzilla 7862: derivedMembersに関連する無効なテンプレートの前方参照を受け入れるバグ
  • Bugzilla 7868: derivedMembers/static if リグレッションが発生する。
  • Bugzilla 7869: 構造体のポインタがtoStringメンバ関数を持つ場合、そのポインタをフォーマットできない。
  • Bugzilla 7871: findSplitBeforeによる範囲違反
  • Bugzilla 7873: [2.059 beta] ポインタの inout 関数から呼び出された場合、inout の IFTI がテンプレート化された関数と正しく一致しない。
  • Bugzilla 7886: derivedMembersの無限再帰
  • Bugzilla 7888: derivedMembersがネストされたインポートで前方参照エラーが発生する。
前バージョン: - 次のバージョン: