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

変更ログ 2.055

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

Download D 2.055
2011年9月4日リリース

新機能/変更点

  • dmanを追加
  • Mac OS X 10.7 Lionのサポートを追加
  • json 出力の保護を追加
  • SSE4.1およびSSE4.2アセンブリ命令の追加
  • Bugzilla 4375: else' が曖昧な場合に明示的な中括弧を必要とするようにした
  • std.algorithm.copyが配列に特化するようになり、パフォーマンスが10-80倍向上した。 パフォーマンスが向上した。
  • std.pathがゼロから書き直され、全く新しいAPIになった。
  • std.utf.toUTFzは、任意の文字型、任意の型の変異型のゼロ終端文字列を取得できる。 文字型のゼロ終端文字列を取得できるようになった。
  • Posixシステム用にstd.fileにsymlinkとreadLinkを追加した。
  • std.compiler.VendorにGDCとLDCの値を追加した。
  • std.bitswapにスワッピングを汎用的に扱う関数を追加した。 エンディアンが追加された。
  • std.parallelism.TaskPool.workerIndexを追加した。
  • std.parallelism.asyncBufのバッファリサイクルオーバーロードを追加した。
  • std.math.tgamma、lgamma、erf、erfcが非推奨になった。std.mathspecの std.mathspecialの同等の関数を代わりに使用すべきである。
  • std.mmfile.Mode、std.system.Endian、std.traits.FunctionAdianの値の名前が変更された、 std.trait.FunctionAttributes、std.trait.ParameterStorageClass、 およびstd.traits.可変長の値が"phobos"の命名規則に合うように変更された。
  • std.range: インデックスとチャンクを追加した。
  • std.string.translateがユニコードで動作するように更新された。その結果 その結果、シグネチャが変更された。古いバージョンと std.string.maketransは非推奨となった。
  • std.string.trが更新され、どの文字列型でも動作するようになった。
  • std.conv.parseが連想配列と静的配列で動作するようになった。
  • std.format:formatValueとunformatValueが改良された。 連想配列で動作するようになり、要素のエスケープを考慮するようになった、 範囲書式指定をより適切に扱うようになった。
  • std.complex:sin()、cos()、sqrt()を追加。
  • md5: 1.4倍スピードアップ。

Druntime バグの修正

  • Bugzilla 5967: 可変長引数関数の ArgClose の処理が入れ替わった。
  • Bugzilla 6493: core.timeのdocのソースコードがstd.datetimeを指している。
  • Bugzilla 6466: core.demangleの変数のデマングリングが正しくない。

ライブラリのバグ修正

  • 未掲載のバグ:std.range.transversalは長さを持つべきである。
  • Bugzilla 3890: ネストされた構造体の不正な書き込み
  • Bugzilla 4500: コンストラクタを呼び出した後にスコープされたムーブクラス
  • Bugzilla 4977: Rebindableでnothrowやpureが使えない。
  • Bugzilla 5237: writeflnがComplex.toStringを尊重しない
  • Bugzilla 5645: std.range.drop()を使用する。
  • Bugzilla 5825: write は非推奨関数を呼び出している。
  • Bugzilla 6040: std.cpuidとcore.cpuidはいくつかのメソッドで異なる値を返す
  • Bugzilla 6064: std.array.joinは文字列に対して不自然に遅い。
  • Bugzilla 6194: [GSoC] writeln()を呼び出すと、コピーされる前にオブジェクトのデストラクタが呼び出される。
  • Bugzilla 6261: [2.054 beta regression] Regexがchar[]を取れない。
  • Bugzilla 6301: std.conv.toは'ulong'長を持つ範囲を'zip'/'retro'/'stride'等とすることはできない。
  • Bugzilla 6377: std.conv.toは符号を変更する際に範囲をチェックする必要がある
  • Bugzilla 6424: std.trait.hasElaborateAssignが制限されている
  • Bugzilla 6448: writef("%05d", BigInt) 問題がある。
  • Bugzilla 6514: CTFE ドット積
  • Bugzilla 6587: std.parallelismのTaskはイミュータブルな値を扱えない。
  • Bugzilla 6606: RefCountedはformatの使用により共用体では動作しない。
  • Bugzilla 6608: タプルフィールドがエスケープされない

DMDのバグ修正

  • Bugzilla 1471: テンプレート化された関数のリンカーエラー。エラー42:シンボルが未定義である。
  • Bugzilla 1567: プライベート・スーパー・コンストラクタの呼び出しは許可されるべきではない。
  • Bugzilla 1684: offsetofが機能せず、キャストを追加することで回避できる
  • Bugzilla 1904: プライベート・テンプレート化された関数の保護ルックアップが間違っている。
  • Bugzilla 2156: コンパイル時に文字列が必要な場合、[]とnullを受け入れるべきである。
  • Bugzilla 2234: __traits(allMembers)は集約のミックスインとテンプレートエイリアスメンバーに対して不正な結果を返す。
  • Bugzilla 2245: クラス内のオーバーロードされた "ミックスイン"テンプレート関数のバグ
  • Bugzilla 2246: 回帰(2.046, 1.061):int 引数を含むテンプレートへのテンプレートの特殊化に失敗する。
  • Bugzilla 2540: super はエイリアス文では使用できない。
  • Bugzilla 2634: 関数リテラルは非定数である。
  • Bugzilla 2355: is()はテンプレートのマッチングの前にエイリアスを解決しない。
  • Bugzilla 2579: テンプレート化された関数はコンパイルできない。
  • Bugzilla 2774: Functions-as-propertiesは関数の.mangleを取得することを不可能にする。
  • Bugzilla 2777: エイリアスのthisは__dollarとslice opを転送しない。
  • Bugzilla 2781: alias thisはforeachで動作しない。
  • Bugzilla 2787: alias this'で見つかったメンバーは、メソッド内で暗黙的にアクセスできない。
  • Bugzilla 2941: CPU型の設定が遅すぎるため、インラインasmのコードが正しくない。
  • Bugzilla 3268: 関数のポインタがconstの場合、比較できない。
  • Bugzilla 3273: リグレッション(2.031) : 構造体不変量 + dtor がコンパイルに失敗する (行番号がない)。
  • Bugzilla 3512: CTFE で文字列に対する dchar の反復処理に失敗する。
  • Bugzilla 3661: 配列操作でサポートされていない。
  • Bugzilla 3797: リグレッション(2.038):互換性のない関数ポインタ間の暗黙の変換。
  • Bugzilla 4021: [CTFE] AA リハッシュ
  • Bugzilla 4099: opUnary と 'alias this' を混在させた場合の ++/-- の挙動に一貫性がない。
  • Bugzilla 4444: 式タプルで組み込み配列のインデックスを作成できない。
  • Bugzilla 4460: 連想配列リテラルに対するforeachコンパイル時のリグレッション(2.036) ICE(e2ir.c)
  • Bugzilla 4682: [CTFE] int.min % -1の実行時間とコンパイル時間の比較
  • Bugzilla 4773: Rebindableはboolにキャスト可能であるべきである。
  • Bugzilla 4837: ICE(constfold.c)のCTFEで>>>=を使用する。
  • Bugzilla 4984: 再帰的テンプレート制約によりdmdがメモリ不足になる
  • Bugzilla 5046: 構造体/クラステンプレートの暗黙の"this"の型が正しくない。
  • Bugzilla 5081: イミュータブル構造体のイニシャライザとして純粋関数を使用する。
  • Bugzilla 5188: エイリアスのthisと比較式が間違ったコードを生成する
  • Bugzilla 5239: オプティマイザがused before setエラーを誤って報告する。
  • Bugzilla 5373: リグレッション(2.051) CTFEとstd.string.replace()が"Bad binary function q{a == b}."を引き起こす。
  • Bugzilla 5440: ICE(template.c): "object.d"に"struct AssociativeArray"がない。
  • Bugzilla 5585: ICE(template.c):object.dにstruct AssociativeArrayがない場合 : 列挙子式を含むreturn文のデバッグ行番号情報が間違っている
  • Bugzilla 5745: 遅延引数のエラー行番号が見つからない
  • Bugzilla 5750: 純粋関数が遅延引数を持つことを許可する。
  • Bugzilla 5777: 移動セマンティクスはフルスペックのNRVOを必要とする
  • Bugzilla 5785: UFCSの字句構造解析の問題
  • Bugzilla 5790: -release -inline -O時に「エラー:変数の結果がセット前に使用された。
  • Bugzilla 5799: ネストされた条件演算子式でAddress-of演算子が失敗する
  • Bugzilla 5936: Regression(2.050):パラメータを持つ純粋なauto-returnメンバ関数を前方参照するとSegfaultが発生する。
  • Bugzilla 5953: 末尾のカンマが多すぎる。
  • Bugzilla 6097: SSSE3 が MMX 命令で動作しない。
  • Bugzilla 6215: LLVMコンパイルされたDMDがmem.cのアライメント問題によりセグメンテーションエラーになる
  • Bugzilla 6220: リグレッション(2.053) string[] に対する static foreach が直接使用可能な文字列を生成しなくなった。
  • Bugzilla 6228: Regression(2.053) ICE(e2ir.c) の {auto x = (*ptr) ^^ y} で const integer 型が指定される。
  • Bugzilla 6230: メンバ関数はもはや弱い純粋ではあり得ない。
  • Bugzilla 6250: [CTFE] 配列への2つのポインタをスワップする際にクラッシュする。
  • Bugzilla 6265: 他の純粋関数を呼び出すと純粋推論に失敗する。
  • Bugzilla 6270: 間接関数呼び出しでXMMREGSが保存されない。
  • Bugzilla 6276: [CTFE] ~=演算子を2回使用した場合の奇妙な動作
  • Bugzilla 6280: [CTFE] AA の 'in' 式を 'if' 条件に入れることができない。
  • Bugzilla 6281: [CTFE] ヌルポインタ「!is null」が「true」を返す。
  • Bugzilla 6282: [CTFE] AAの"in"から参照型へのポインタを再参照するときにICEが発生する
  • Bugzilla 6283: [CTFE][Regression 2.054] 定数変更された配列をキーとしてAAに代入しようとすると失敗する
  • Bugzilla 6284: CTFE][Regression 2.054] 'with'ステートメントで'pure'が機能しない。
  • Bugzilla 6286: リグレッション(2.054):静的配列を const(T)[N] から T[N] に代入できない。
  • Bugzilla 6293: x.y 式は x の部分が単なる変数でない場合、関数を純粋でないものにする : Regression(2.054): 静的配列は const(T)[N] から T[N] に代入できない。
  • Bugzilla 6295: [回帰2.054] テンプレート値パラメータのcheckPurity()でセグメンテーションエラーが発生する。
  • Bugzilla 6306: 回帰(2.054):[CTFE] CTFEにおける間接再帰呼び出しの奇妙な動作
  • Bugzilla 6308: 例外発生時のテンポラリの破棄が未処理のアクセス違反を引き起こす
  • Bugzilla 6316: リグレッション(2.054) : [CTFE] CTFE での間接的な再帰呼び出しの奇妙な動作 : 例外発生時のテンポラリの破棄が未処理のアクセス違反を引き起こす : Regression(2.054):クラスのダウンキャストが"@safe" コードで拒否される
  • Bugzilla 6317: ネストされた構造体の構造体リテラルのICE
  • Bugzilla 6331: [CTFE] if 条件で SliceExp を評価できない。
  • Bugzilla 6337: [CTFE] CTFE中に構造体のメンバ変数に触れたときのICE
  • Bugzilla 6344: [CTFE] null ポインタから空のスライスを作成する際の interpret.c でのアサーションの失敗
  • Bugzilla 6351: Regression(2.054) Segfault:テンプレート・パラメータとしての Vararg delegate
  • Bugzilla 6355: テンプレート・コンストラクタは変更可能なフィールドを初期化できない。
  • Bugzilla 6366: このエイリアスはforeach range.frontでは動作しない
  • Bugzilla 6369: このエイリアスはイニシャライザで動作しない
  • Bugzilla 6374: [CTFE] 配列へのポインタを使用して添え字を指定できない
  • Bugzilla 6375: [CTFE] std.array.appenderを初期配列で使用するとセグメンテーションエラーが発生する
  • Bugzilla 6386: [CTFE] ポインタのキャスティングでICEが発生する
  • Bugzilla 6389: Segfault(dsymbol.c): 非推奨 @disable".
  • Bugzilla 6399: [CTFE] 構造体メンバarray.length -= xが機能しない。
  • Bugzilla 6404: テンプレート制約で auto ref パラメータの ref-ness をチェックできない
  • Bugzilla 6418: [CTFE] 'length'という名前の構造体メンバ関数を呼び出すことができない。
  • Bugzilla 6420: [CTFE] リテラルからキャストされたポインタへの非参照代入に関するICE
  • Bugzilla 6429: CTFE] リテラルからキャストされたポインタへの非参照代入でICEが発生した。
  • Bugzilla 6433: メタバグAA型伝播
  • Bugzilla 6434: opDispatchはエイリアスの前に考慮しなければならない。
  • Bugzilla 6491: 非テンプレート化された関数のデフォルト引数の完全修飾値が、余分な "module"キーワードで生成される。
  • Bugzilla 6499: [GSoC] メソッドが返すオブジェクトに対してデストラクタが呼び出されない。
  • Bugzilla 6505: 8 個の浮動小数点数を含む式のコードが間違っている。
  • Bugzilla 6508: このエイリアスはAssignExp rhsでは機能しない。
  • Bugzilla 6510: [CTFE] -inlineでコンパイルすると "internal error: illegal stack value"が発生する。
  • Bugzilla 6511: [CTFE] 配列opが間違った結果を与える
  • Bugzilla 6512: [CTFE] new T[][] が動作しない。
  • Bugzilla 6516: Regression(2.055 beta) [CTFE] ICE(constfold.c)がnew dchar[]を含む。
  • Bugzilla 6517: [CTFE] ptr++ は動かないが ++ptr は動く
  • Bugzilla 6546: alias this + IdentityExpression は動かない。
  • Bugzilla 6556: DebugStatementのImportStatementのICE
  • Bugzilla 6558: [CTFE] UTF-decodingのforeachが間違ったインデックス(1-indexed)を与える。
  • Bugzilla 6561: エイリアスのthis + 未定義のシンボルでエラーが発生する
  • Bugzilla 6563: XMM regsを8つ以上使用した場合の間違ったコード
  • Bugzilla 6577: 'Cannot initialize member' エラー行番号
  • Bugzilla 6601: リグレッション(2.053):CTFE segfault が関数テンプレートのアドレスを取っていた。
  • Bugzilla 6602: is(typeof())/__traits(compiles, )/Type::trySemanticによってリークされた無効なテンプレートのインスタンス化
前のバージョン: - 次のバージョン: