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

変更ログ 2.050

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

Download D 2.050
2010年10月29日リリース

新機能/変更点

  • TypeInfoにtalign()とargTypes()を追加した。
  • zlibサポートをzlib 1.2.5にアップグレードした。
  • std.stdio: ByChunkを追加した。この構造体はByLineのようなInputRangeである。File.byChunkはByChunkを返す。
  • std.トレイト: ほとんどの高次レンジが、const/immutable 配列と、自然な末尾がconstの他のレンジで動作するようになった。 また、const/immutable要素を持つ範囲でも動作するようになった。
  • Bugzilla 4888: Phobos の範囲使用における Bug 3534 への依存度が高くなった。
  • Bugzilla 4987: C関数ポインタ構文は非推奨とする必要がある。
  • std.typecons: Tuple構造体テンプレートのいくつかの改良:
    • タプルのメンバーはa[0], a[1]などの構文でアクセスできるようになった。
    • 内部共用体を削除した。Bugzilla 4421およびBugzilla 4846を参照のこと。
    • Bugzilla 4424: を回避した。opAssignを取り戻した。
    • Tuple.slice!(from,to)でフィールド名を保持するようにした。
    • isTuple!(T)テンプレートを追加した。
  • std.algorithm:filter()を変更し、filterがcurryableになるようにした。
  • std.algorithm:関数 balancedParens を追加。
  • std.typecons:defineEnumを非推奨とした。
  • 純度チェックのルールを緩和した。

バグ修正

  • 未掲載のバグ: std.exception.pointsTo()がサブオブジェクトのpostblitを呼び出す。
  • 未記載のバグ: std.typetuple.staticMap!()が空/単一タプルで動作しない。
  • 未掲載のバグ: std.traits.StaticMap! インタフェースは間接参照やエイリアシングなどを持つべきである。
  • 未登録バグ: std.socket: 競合状態 - Linuxのgethostbynameとgethostbyaddrが静的データを返す。 呼び出しは同期化されているが、データの使用は同期化されていない。
  • 未掲載のバグ: OS Xでの符号付き長さの比較
  • Bugzilla 941: std.regexpが特定の部分式をグループ化する際にマッチに失敗する。
  • Bugzilla 1482: std.fileのドキュメントが不十分
  • Bugzilla 1635: DirEntry.isfile() と DirEntry.isdir() が壊れている。
  • Bugzilla 1733: parse() 関数が全ての組み込み型を扱わない。
  • Bugzilla 2073: Variant.coerce!()が失敗する。
  • Bugzilla 2142: getopt() がバンドルされたコマンドラインオプションを正しく処理しない
  • Bugzilla 2310: std.stdio.write()とstd.conv.to!(string)()で配列の書式に一貫性がない。
  • Bugzilla 2424: std.functional binaryRevertArgs : "revert" は "reverse" であるべきである。
  • Bugzilla 2451: opAssignやpostblitを使う構造体をAAに追加すると壊れる。
  • Bugzilla 2655: std.path.fnmatchで交替パターンを許可する
  • Bugzilla 2669: バリアントが opApply や他の反復機構を持たない
  • Bugzilla 2718: phobos "関数の文字列パラメータに一貫性がない。
  • Bugzilla 2838: std.file.rmdirRecurse が失敗する。
  • Bugzilla 2930: std.rangeドキュメントの問題
  • Bugzilla 2943: エイリアスメンバーが存在する場合の構造体コピー このメンバーはエイリアスのみをコピーする
  • Bugzilla 2965: std.date: timezoneが初期化されない
  • Bugzilla 3157: [patch] パイプはpcloseで閉じるべきである。
  • Bugzilla 3318: [patch]Rebindable.getにアクセスできない。
  • Bugzilla 3570: mkdirRecurseは末尾の空のディレクトリで例外を投げる。
  • Bugzilla 3602: ICE(tocsym.c)はスーパークラスが前提条件を持っている場合、クラスをコンパイルする。
  • Bugzilla 3665: リグレッション(1.051, 2.036) 配列スライスを使った代入がうまくいかない
  • Bugzilla 4344: 複数のスレッドを持つソケットで WSAStartup の欠落/失敗が報告される
  • Bugzilla 4398: dmd が _d_throw に対して常に Windows 名のマングリングを使用する
  • Bugzilla 4439: druntimeのin6addr_*の宣言が間違っている。
  • Bugzilla 4465: ICE(symbol.c):^2を使った不変型推論
  • Bugzilla 4524: Regression(2.026) 入れ子になった構造体のバスエラー
  • Bugzilla 4623: 静的配列サイズとして非整数型が許される
  • Bugzilla 4634: levenshteinDistanceAndPath ドキュメントにタイプミスがあった。
  • Bugzilla 4641: 構造体の連想配列のエイリアスが壊れている。
  • Bugzilla 4742: int % BigInt は動作するはずである。
  • Bugzilla 4775: writef("%%%s", "hi") の置換がない。
  • Bugzilla 4825: 回帰(1.057, 2.040) -inline で "Error: non-constant expression" が発生した。
  • Bugzilla 4866: 静的-動的変換されたマニフェスト定数配列が静的/制約で非変換型を取得する。
  • Bugzilla 4869: auto return + inheritance + modules = compiler crashes(toctype.c) : auto return + inheritance + modules = compiler crashes(toctype.c)
  • Bugzilla 4873: アサーション失敗:ファイル'expression.c'の1483行目の'0'
  • Bugzilla 4882: std.traits hasUnsharedAliasingが関数型で機能しない。
  • Bugzilla 4897: CodeView:デバッグ時に関数情報がないため、ローカルやパラメータが表示されない。
  • Bugzilla 4890: GC.collect()がマルチスレッドプログラムをデッドロックさせる。
  • Bugzilla 4925: [ICE] モジュールスコープのassert(0)でsegfaultが発生する。
  • Bugzilla 4926: ICE:優先順位の未設定によるPREC_zeroアサーションの失敗
  • Bugzilla 4938: リグレッション(2.047) コンパイル時の dmd のセグメンテーションフォールト
  • Bugzilla 4941: 組み込みタプルのスライス境界が CTFE されない
  • Bugzilla 4949: 'this'の値を使用すると無効なstaticでICEが発生する。
  • Bugzilla 4951: InternetAddress がマルチスレッド時にホストの解決に失敗する。
  • Bugzilla 4959: std.conv.parse error "no digits seen" on string starting with zero.
  • Bugzilla 4992: ICE(glue.c)またはsegfault: int[new]を使用している。
  • Bugzilla 5003: regex(replace with delegate)のサンプルが動かない。
  • Bugzilla 5026: ICE(expression.c) インコンプリートミックスイン式+char[]からcharへの代入
  • Bugzilla 5049: std.algortihm.bringToFront()が間違った値を返す。
  • Bugzilla 5052: take!(Take!R)はTake!(Take!R)ではなく、Take!(Take!R)を返すべきである。
  • Bugzilla 5071: 内部ダイナミッククロージャを持つ関数にrefで値を渡すと間違ったコードになる。
前のバージョン: - 次のバージョン: