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

変更ログ 2.047

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

Download D 2.047
2010年6月11日リリース

新機能/変更点

  • opOpAssignのテンプレート引数の"op="を "op"だけに変更した。
  • std.algorithm:前方範囲にsave()を追加; セパレータとして1つの要素のみを使用するsplit()を追加; indexOfを追加; startsWithとendsWithのリストされていないバグを修正; skipOver()を追加; canFind()を追加。
  • std.arrayを追加した:T[]sに対するsave()の実装を追加した。
  • std.concurrency:スプリアスなunittest標準出力メッセージを除去した。
  • std.container:追加。
  • std.conv:変換エラーにファイルと行の情報を追加。デフォルトとして配列と連想配列の周りに括弧 '[' と ']' を追加。
  • std.file:メモリ不足エラー時の例外を assert(0) に置き換えた。
  • std.functional:toDelegateがcallable(関数ポインタ、デリゲート、オブジェクトはopCallを実装)を受け付けるようになった。
  • std.path:文字列型の basename() をジェネリックにした。
  • std.range:isForwardRangeの条件としてプロパティsaveの存在を追加; 内部で定義された範囲にsaveを追加; 厄介なfront()の実装をいくつか置き換え; 適切なモジュールレベルのmoveFront()と範囲メンバのmoveFront()を定義; Takeに"@property maxLength"を追加; スライス可能な範囲のtake()がスライスと同じ型を返すように整理; SListRangeを廃止; 引数が1つのiota()を定義; 内部でBinaryHeapを移動。
  • BinaryHeapをstd.regex内に移動した:indexOfをstd.algorithmで修飾した。
  • std.regexp:indexOfをstd.algorithmで修飾した。
  • std.stdio:rawRead() の enforce() にエラーメッセージを追加。
  • std.string:indexOf()、tolower()、splitter()、chomp()を改良した。
  • std.traits:関数のコンパイル時情報を取得するテンプレートを追加した。
  • std.typecons:AutoImplementを追加した。
  • std.utf:文字列は双方向の範囲なので、これらは必要ない。
  • Bugzilla 2008: refパラメータを持つ関数の最適化が不十分だった。
  • Bugzilla 3793: 静的配列を引数に持つ関数はインライン化されない。
  • Bugzilla 4296: 寄生エラー・メッセージを減らす

バグ修正

  • Bugzilla 1193: リグレッション:matches more than one template declaration" が競合するテンプレートの場所をリストしない。
  • Bugzilla 1894: 複合文以外ではscope(exit)は無視される。
  • Bugzilla 1941: アクセス不能な外部プライベート・モジュール・メンバーの行が抜けていた。
  • Bugzilla 2127: インライナーが構造体 "return *this"をバイ値からバイ参照に変えてしまう。
  • Bugzilla 2276: 配列操作で行番号が見つからないというエラーメッセージが表示される
  • Bugzilla 2546: スライス・シンボルが使用されていない場合、配列操作は黙って失敗する。
  • Bugzilla 2738: Rebindableはインターフェイスに対して機能すべきである。
  • Bugzilla 2835: std.socket.TcpSocketは実際には接続しない
  • Bugzilla 2881: x.stringofはxが列挙型のときtypeof(x).stringofを返す
  • Bugzilla 3064: 無効な配列操作を受け付け、不正なコードを生成する
  • Bugzilla 3088: std.xml.check()がxmlコメントで失敗する
  • Bugzilla 3139: コンパイラはcase rangeで "Error: out of memory "とエラーを出す
  • Bugzilla 3200: std.xmlはTag.textの仕様に従っていない
  • Bugzilla 3323: SegfaultまたはICE(e2ir.c) がデストラクタ付き構造体をほとんどどこでも使っている。
  • Bugzilla 3398: "共用体"内の属性はデータ整列をねじ込む。
  • Bugzilla 3465: std.xmlのisIdeographicは間違っていることがある。
  • Bugzilla 3520: std.numeric.CustomFloatがひどく壊れていた。
  • Bugzilla 3538: aliasテンプレートパラメータのデフォルト値が一度だけインスタンス化される。
  • Bugzilla 3547: 相対パスを指定する -od オプションの場合、パスが2回追加される。
  • Bugzilla 3548: 関数から返される配列が配列op式で誤って使用されるとICEが発生する。
  • Bugzilla 3604: 配列パラメータを持つextern(C)呼び出し可能関数が壊れた。
  • Bugzilla 3651: 列挙型に対するmangleofが壊れた。
  • Bugzilla 3653: Rebindableの配列のソートに問題がある
  • Bugzilla 3658: ベクトル演算でクラッシュする(Macのみ)
  • Bugzilla 3662: 構造体コンストラクタとC言語のイニシャライザでコンパイルエラーが発生する。
  • Bugzilla 3667: リグレッション(D2のみ) : "契約"のブレークアウト(結果)
  • Bugzilla 3786: std.string.removecharsのバグ
  • Bugzilla 3854: 配列の静的初期化で末尾にカンマがあるとエラーになる。
  • Bugzilla 3873: std.range.repeatにpopBackを定義すべきである。
  • Bugzilla 3876: std.range.takeback/popBackメソッドが正しく動作しない。
  • Bugzilla 3880: std.regex関数でconst/immutable Regexオブジェクトを使用する。
  • Bugzilla 4003: ソースファイルの順番によってのみ結果が変わる。
  • Bugzilla 4045: [CTFE] 配列の長さを増やす
  • Bugzilla 4052: [CTFE] 配列項目からインクリメントする
  • Bugzilla 4056: 素のパラメータを持つテンプレートのインスタンス化がドキュメント化されていない
  • Bugzilla 4073: core.cpuidのクラッシュ
  • Bugzilla 4078: [CTFE] 動的配列項目のリターン失敗
  • Bugzilla 4084: main()の閉じ括弧の欠落を無視した
  • Bugzilla 4109: writelnが空の静的配列で動作しない
  • Bugzilla 4143: dmdビルドの警告を修正
  • Bugzilla 4156: array+=arrayでセグメンテーションエラーが発生する。
  • Bugzilla 4169: 最新のgccでdmdをビルドするとバグコンパイラになる
  • Bugzilla 4175: linux.mak が並列ビルドをサポートするのに十分な依存関係を宣言していない。
  • Bugzilla 4188: std.file.removeが成功時に例外をスローする。
  • Bugzilla 4193: リグレッション2.046、ICE(expression.c): クラス・メンバーをconst forward referenceで初期化する。
  • Bugzilla 4202: Changset 1517がコンパイルされない
  • Bugzilla 4207: std.cover.setDestDirが動作しない。
  • Bugzilla 4208: druntimeはphobosに依存すべきではない。
  • Bugzilla 4212: DWARF: void配列がgdbエラーを引き起こす
  • Bugzilla 4213: 静的void[]配列の奇妙な挙動
  • Bugzilla 4219: hasAliasingはimmutableを気にしない
  • Bugzilla 4220: 組込み演算(例: std.math.sqrt)に@safeを適用できない。
  • Bugzilla 4228: std.array.replaceに2つのバグが含まれている
  • Bugzilla 4230: バージョン(- unittest)
  • Bugzilla 4231: Solitary opUnary PostincrementとPostdecrementのユーザー定義演算子が壊れている。
  • Bugzilla 4242: ICE(module.c):パッケージと同じ名前のモジュールをインポートする。
  • Bugzilla 4249: std.regex が debug=regex でコンパイルに失敗する
  • Bugzilla 4252: [CTFE] char[] 配列への代入で配列の境界チェックが行われない
  • Bugzilla 4257: ICE(interpret.c):CTFEにrefパラメータとしてパラメータを渡す
  • Bugzilla 4259: ヘッダ生成でプロパティの先頭の「@」が省略される
  • Bugzilla 4262: ヘッダー生成で列挙型宣言の'enum'が省略された。
  • Bugzilla 4263: ヘッダー生成では'@system'属性は省略される。
  • Bugzilla 4270: クラスオブジェクトしか捕捉できない」エラーメッセージに行番号がない
  • Bugzilla 4300: BigInt * intがうまく動作しない
前バージョン: - 次のバージョン: