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

変更ログ 2.049

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

Download D 2.049
2010年9月13日リリース

新機能/変更点

  • std.algorithm:reduceがopApplyのような非範囲ベースの反復で動作するようになった。
  • std.numeric: FFTが追加された。
  • std.path: sep、altsepなどをマニフェスト定数(列挙型)に変更。
  • std.process:環境変数のAAライクなインターフェイスであるenvironmentを追加。
  • std.range: Iota、Stride、Transversal、FrontTransveralが可能な限りスライスをサポート。
  • std.range: いくつかの高次レンジで、moveFront()と代入可能要素のサポートを追加。
  • std.range: Lockstep, hasLvalueElements を追加。
  • std.range: 範囲へのバイナリインターフェースが必要な場合のために、仮想関数ベースのラッパー(InputRangeObject, OutputRangeObject)を追加した。
  • std.typecons: Rebindable用の便利関数を追加した。
  • std.トレイト: isAssignable、isIterable、ForeachType、isSafe、isUnsafe、EnumMembersが追加された。
  • std.traits: hasLocalAliasing、hasLocalObjects、hasLocalRawAliasingがhasUnsharedAliasing、hasUnsharedObjects、hasUnsharedRawAliasingになった。 後方互換性のために、古い名前のエイリアスが含まれている。
  • std.typetuple: anySatisfyが追加された。
  • std.array: メモリの問題を修正するためにAppenderのインターフェイスを変更した。 ~= 、同じ配列に対してアペンダーを使用する。 はインターリーブしなくなった。
  • Bugzilla 2477: 配列リテラルの末尾のカンマが受け入れられる時とそうでない時がある。

バグ修正

  • Andrej Mitrovicがサンプル/コードを更新した。
  • 未掲載のバグ:std.math.powが不変の数値では動作しない。
  • 未登録バグ:std.math.pow浮動小数点オーバーロードが両引数が全く同じ型であることを期待する。
  • 未登録バグ: std.path.join("", "foo") がPosixで "foo"ではなく"/foo"を返す。
  • 未登録バグ: std.range.iota() のランダムアクセスプリミティブが浮動小数点版で popFront の後に矛盾が発生する。
  • 未登録バグ: std.algorithm.findAdjacent() [...].
  • Bugzilla 190: 関数パラメータのデフォルト値でtypedef/aliasを前方参照できない。
  • Bugzilla 1715: テンプレートの特殊化は変換性ではなく等価性をチェックする
  • Bugzilla 1970: テンプレート化されたインターフェースはマッチしない
  • Bugzilla 2511: 共変数戻り型は循環インポートでは機能しない。
  • Bugzilla 2716: クラス属性としてのautoとscopeの混同
  • Bugzilla 2903: Splitterは入力範囲が2方向なら2方向にする。
  • Bugzilla 2951: std.random.dice()はプロポーションをテンプレート化すべきである。
  • Bugzilla 2958: std.getopt RangeError on missing arg.
  • Bugzilla 3046: C++の静的変数でセグメンテーションエラー(Linuxのみ)
  • Bugzilla 3123: std.algorithm.zipが'lazy'レンジで失敗する。
  • Bugzilla 3294: 関数呼び出しの推論された戻り値の型への前方参照
  • Bugzilla 3312: std.string.countはimmutableではなく、const(char)[]を使うべきである。
  • Bugzilla 3348: 多くのstd.process関数のドキュメントが消えてしまった。
  • Bugzilla 3361: std.zlibのコードがvoid[]配列を連結している。
  • Bugzilla 3418: cast(ulong)(ulong*real)のリンクエラー
  • Bugzilla 3544: 再帰的にネストされた関数でのoptlinkの終了0041338f
  • Bugzilla 3554: Ddocが対になっていないパランスを持つドキュメントコメントに対して無効な出力を生成する
  • Bugzilla 3627: -ofに二重拡張子を持つファイル名を指定するとリンカが混乱する
  • Bugzilla 3877: std.range.chainが無限範囲を正しく管理しない
  • Bugzilla 3894: std.range.Stride!RはR.front()とR.back()を参照で返す必要がある
  • Bugzilla 3935: opBinary は "=" でインスタンス化される。
  • Bugzilla 3946: schwartzSort - SwapStrategyは常に不安定である。
  • Bugzilla 3979: コンパイル順エラーと前方参照エラー
  • Bugzilla 3996: リグレッション(2.041) ICE(glue.c) 構造体を AA テンプレート・パラメータとして渡す (struct による代数)
  • Bugzilla 4009: OPTLINKがまたもや一日を台無しにする
  • Bugzilla 4173: 回帰(2.037) 明示的にインスタンス化されたテンプレートが、場合によってはまだIFTIを行おうとする
  • Bugzilla 4177: ctfeは純粋関数では使えない。
  • Bugzilla 4278: スーパーコールのインライン化を許可 (bug3500 の修正の制限を元に戻す)。
  • Bugzilla 4291: 純粋関数は混合変数にアクセスできない。
  • Bugzilla 4292: CommonTypeが特異なエイリアス値に対して失敗する。
  • Bugzilla 4302: Regression(2.046, 1.061): CTFE で startsWith を使用したコンパイラのエラー。
  • Bugzilla 4345: std.range.take!string:"スライスを含むが長さのない無意味な有限範囲".
  • Bugzilla 4346: より柔軟なstd.array.array。
  • Bugzilla 4363: phobosの範囲のいくつかは前方範囲ではない(はず)。
  • Bugzilla 4381: std.typecons.Tupleの長さ属性。
  • Bugzilla 4387: std.range.Cycleはl値要素を仮定している。
  • Bugzilla 4388: std.range.Radialはl値要素を想定している。
  • Bugzilla 4402: std.range.Zipはl値以外の範囲では動作しない。
  • Bugzilla 4403: std.range.FrontTransversalはl値要素を仮定している。
  • Bugzilla 4404: std.range.Transversalはl値要素を仮定している。
  • Bugzilla 4408: std.algorithm.splitterをジェネリックレンジで使用した場合の曖昧さ。
  • Bugzilla 4430: 回帰(2.037) 特殊化されたテンプレート関数での誤ったマッチング。
  • Bugzilla 4455: 整数の sqrt を取るのに明示的なキャストを必要とすべきではない。
  • Bugzilla 4464: std.range.take が常に Take!R を返すとは限らない。
  • Bugzilla 4518: to!string(列挙型with不正な値)がやや役に立たないエラーを生成する。
  • Bugzilla 4564: 0以上のforeachで未定義の変数でICEが発生する。
  • Bugzilla 4603: array(iota(1, 0)) エラーが発生する。
  • Bugzilla 4643: 共有値は書き込み不可能である。
  • Bugzilla 4645: ライブラリのto!string(const char*)でOptlinkが警告を出す。
  • Bugzilla 4652: 長さ0のタプルと別の引数を持つテンプレートでコンパイラがハングする
  • Bugzilla 4655: 回帰(1.063, 2.048)でtryブロックにgotoされる ICEs
  • Bugzilla 4676: オーバーロードの解決で可変長と非可変長が混在すると有効なコードが拒否される
  • Bugzilla 4681: アペンダーアクセス違反
  • Bugzilla 4691: double と long の不正な比較
  • Bugzilla 4700: to!float("0")が失敗する。
  • Bugzilla 4721: dcollectionsでunittestsをコンパイルする際にコンパイルが遅い。
  • Bugzilla 4748: std.string.tolowerのシャドウイング宣言エラー
  • Bugzilla 4751: リグレッション(1.062, 2.047) ICE(constfold.c) >> エラー後
  • Bugzilla 4752: expression.c の fail_compilation/fail345.d のアサート。
  • Bugzilla 4771: fail_compilation/fail274.d が iasm.c で止まってしまう。
  • Bugzilla 4789: std.algorithm.sortのバグ
  • Bugzilla 4810: intsのdotProduct問題
  • Bugzilla 4826: Regression(2.041) "cannot create associative array" でコンパイラがクラッシュした。
  • Bugzilla 4828: static ifのsth.template_instanceがブールでないドット式のICE
  • Bugzilla 4834: std.concurrencyのデリゲートによる暗黙の共有
前バージョン: - 次のバージョン: