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

変更ログ 2.058

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

Download D 2.058
2012年2月14日リリース

新機能/変更点

  • 新しい => ラムダ構文を追加。
  • 1.userproperty構文を許可する。 注釈: 1.fはもはやfloatリテラルではない。
  • dylibの代わりに-shared dmdスイッチに変換する。
  • OS X 32 bit ターゲットでの XMM レジスタの使用を改善。
  • AVX命令のインライン・アセンブラ・サポートを追加(64ビット・ターゲットのみ)。
  • ベースクラス保護の使用が非推奨となった。
  • isVirtualMethodおよびgetVirtualMethodsトレイトが追加された。
  • 構造体/クラス不変量が暗黙的に const になった。
  • std.regexモジュールの実装を大幅に見直した。 std.regex.replaceをdelegateに変更した、 デリゲートのパラメーターとして、RegexMatch!stringの代わりにCaptures!stringを使うようになった。
  • typedefが非推奨となったため、typedefを使用するstd.conv.toのオーバーロードは非推奨となった。 typedefを使用するstd.conv.toのオーバーロードは非推奨となった。
  • std.array.insertは非推奨となった。代わりにstd.array.insertInPlaceを使用してほしい。
  • std.array.replaceのオーバーロードである置換は非推奨となった。 代わりにstd.array.replaceInPlaceを使用してください。
  • SysTime、Date.TimeOfDay、Date.TimeOfDayのtoISOExtendedString関数とfromISOExtendedString関数が非推奨となった、 TimeOfDay、およびstd.datetimeのDateTimeに対するtoISOExtendedString関数とfromISOExtendedString関数は非推奨となった。そのため toISOExtString および fromISOExtString を使用してください。
  • std.file.getTimesPosixは非推奨となった。代わりにstd.file.getTimesを使用してください。
  • std.file.isDir、isFile、isSymlinkのuintを取るオーバーロードは非推奨となった。 のオーバーロードは非推奨となった。代わりにattrIsDir、attrIsFile、attrIsSymlinkを使用してほしい。

Druntime バグの修正

ライブラリーのバグ修正

  • Bugzilla 4295: phobos.libのIID_IUnknownシンボルが未定義だった。
  • Bugzilla 7241: std.formatがdcharの配列に読み込めない。

DMDのバグ修正

  • Bugzilla 516: コンストラクタの相互呼び出し
  • Bugzilla 620: テンプレート化された関数でproperty構文が使えない。
  • Bugzilla 664: is(func T == function)は可変長引数を無視する。
  • Bugzilla 678: コンパイラーは関数T[] t()に対して、t().ptrは受け付けるが、t.ptrは受け付けない。
  • Bugzilla 796: NULLオブジェクト参照のアサーションはAssertError Failure internalinvariant.d(14)またはAccess Violationをスローする。
  • Bugzilla 949: 文字列、整数、浮動小数点数に対する仕様とコンパイラの動作が正しくない。
  • Bugzilla 955: 関数への引数の渡し方 - in, out, inout, const, 契約" : in/body はエスケープ解析を無効にする。
  • Bugzilla 1313: out/bodyはエスケープ解析を無効にする。
  • Bugzilla 1521: 曖昧なドキュメント
  • Bugzilla 1563: 動的キャストは常に実行されるわけではない
  • Bugzilla 1570: アドレス演算子に対する間違ったリターン
  • Bugzilla 1918: __traits(getVirtualFunctions)はfinal関数を返す。
  • Bugzilla 1920: クラスのドキュメントが不完全である。
  • Bugzilla 1943: テンプレート化された関数は関数ポインタのパラメータを取ることができない。
  • Bugzilla 2106: エクスポートクラスはエクスポートされるものに影響を与えない
  • Bugzilla 2351: メンバを持たない列挙型は許されない。
  • Bugzilla 2382: グローバル/静的イニシャライザとして何が許されるか、仕様が明確でない。
  • Bugzilla 2387: 静的配列の用語
  • Bugzilla 2411: 参照タプルのForeach
  • Bugzilla 2417: [モジュール] protected base メンバが別モジュールで定義されている場合、派生クラスでベースハンドルを介して利用できない。
  • Bugzilla 2442: opApplyは、constでオーバーロードされたときにパラメータの型を推測することを許可しない。
  • Bugzilla 2443: opApplyは、意味がないのであれば、refでないデリゲートを許可すべきである。
  • Bugzilla 2483: DMDはスコープ変数への代入を許可する
  • Bugzilla 2494: 配列の明示的なキャストを記述する
  • Bugzilla 2495: メンバ関数のconst構文について、より詳細な説明が必要である。
  • Bugzilla 2497: deleteとnullの関係について、より詳細な説明が必要である。
  • Bugzilla 2524: インターフェイスを実装する際、最終的なオーバーライドに一貫性がない
  • Bugzilla 2639: 16進数と8進数の文字列値が完全に指定されていない。
  • Bugzilla 2819: 配列の長さが >=0x8F_FFFF の場合、array.sort がセグメンテーションエラーになる。
  • Bugzilla 2894: 抽象クラスが、抽象的でないボディレス関数を許すことがある。
  • Bugzilla 2997: allMembersはインターフェースのメンバを返さない
  • Bugzilla 3084: パラメータセクションの遅延のフォーマット
  • Bugzilla 3092: タプルにインデックスを付けると、インデックス付けされた要素を含むタプルが生成される
  • Bugzilla 3111: 'mangleof' はドキュメント化されていない構造体のメンバにはなれない。
  • Bugzilla 3187: opApplyのネストされたforeachが機能しない。
  • Bugzilla 3204: グローバル・プロパティをドキュメント化する
  • Bugzilla 3235: [tdpl] "関数"リテラルは"関数"または "デリゲート"として推論されなければならない。
  • Bugzilla 3265: インターフェイス型参照の.classinfoがインスタンスのClassInfoを返さない。
  • Bugzilla 3492: ネストされた関数をオーバーロードすることはできない。
  • Bugzilla 3578: assert(s)を使った構造体不変量の実行は不可能である。
  • Bugzilla 3735: op=
  • Bugzilla 3757: オーバーライドされた非const関数でconst関数をオーバーロードするとseg faultになる。
  • Bugzilla 3777: size_t は未定義である。
  • Bugzilla 3783: EscapeSequenceルールとテキストが矛盾している。
  • Bugzilla 3787: 明確化:'this'への割り当て
  • Bugzilla 3791: 新しい "式"を記述する際、匿名のネストしたクラスを参照する。
  • Bugzilla 3800: D2 Specの"Foreach over Structs and Classes with Ranges "と "Invariant Struct"について。
  • Bugzilla 3838: PrimaryExpressionルールがモジュール・スコープのテンプレート・インスタンスを許可しない
  • Bugzilla 3886: DLL用定義ファイルの悪い例: : DLL用定義ファイルの悪い例
  • Bugzilla 3906: 未定義の構造体や共用体の宣言が文書化されていない。
  • Bugzilla 3908: 属性が関数文法に含まれていない。
  • Bugzilla 3954: DeclDefルールがない TemplateMixinDeclaration
  • Bugzilla 3988: 演算子オーバーロードの典型例を示す
  • Bugzilla 4088: opEqualsがインターフェイス上で呼び出されない
  • Bugzilla 4180: D DWARF拡張はDWARF-4と衝突する。
  • Bugzilla 4251: constシステムの穴: immutable(T)[]は暗黙的にref const(T)[]にキャストされる。
  • Bugzilla 4371: segfault(template.c) is()式のテンプレート・タプル。
  • Bugzilla 4413: typeof(this)がメソッドのテンプレートシグネチャで機能しない
  • Bugzilla 4421: 共用体はコピーコンストラクタとデストラクタを全メンバに伝播する
  • Bugzilla 4523: 連想配列の[tdpl] .removeメソッドはすべてのケースでvoidを返す
  • Bugzilla 4539: 文字列リテラルへの代入を拒否する
  • Bugzilla 4545: this "インスタンスなしでメンバへのエイリアスが可能
  • Bugzilla 4550: D2言語ドキュメント: http://www.digitalmars.com/d/2.0/statement.html
  • Bugzilla 4553: D2言語ドキュメント: http://www.digitalmars.com/d/2.0/struct.html
  • Bugzilla 4647: [tdpl] インターフェイスの最終メソッドを明示的に呼び出せない。
  • Bugzilla 4651: ドキュメント関数のスタック変数にアクセスできるクラスが返される。
  • Bugzilla 4675: [tdpl] 同名テンプレートは内部名を隠すべきである
  • Bugzilla 4711: void オペランドを持つ && 演算子の不適切な処理
  • Bugzilla 4841: -inlineは別名テンプレート・パラメーターを持つ入れ子構造体を破壊する(array()/mapのインライン化問題)。
  • Bugzilla 4887: 32による右シフトは許可され、壊れている
  • Bugzilla 4940: ICE(symbol.c):ユーザ定義のコンストラクタで構造体リテラルのタプル型フィールドにアクセスする。
  • Bugzilla 4956: linux.mak から gcc への直接参照を削除した。
  • Bugzilla 5023: 不変条件と事前/事後条件の実行順序に関するドキュメント
  • Bugzilla 5111: 静的関数レベル変数は言語仕様にない。
  • Bugzilla 5114: エラーメッセージが多すぎる。
  • Bugzilla 5132: ~ 単項演算子が無言でC言語と異なる
  • Bugzilla 5138: 特殊なトークン列
  • Bugzilla 5261: Windows用のコンパイル不可能な例:
  • Bugzilla 5299: 保護された継承は意味的に未定義である。
  • Bugzilla 5337: C言語とのインターフェイスに関するドキュメントがTLSの違いを考慮していない。
  • Bugzilla 5476: spec: 属性にはオプションのelse節がある
  • Bugzilla 5493: ref関数パラメータを渡すことで不変のデータを上書きすることができる。
  • Bugzilla 5527: http://www.digitalmars.com/d/2.0/ctod.html#closures のバグ
  • Bugzilla 5605: [tdpl] foreachの範囲指定がopSlice()をサポートしていない。
  • Bugzilla 5648: dmd コマンドラインオプションリストの不整合
  • Bugzilla 5713: int の final スイッチが壊れている
  • Bugzilla 5715: 仕様の矛盾: variable.init の意味
  • Bugzilla 5718: unittestブロック内で定義されたシンボルをデマングルできない。
  • Bugzilla 5796: テンプレートで';'が見つからない場合、pragma(msg, ...)でICEする
  • Bugzilla 5820: 文字列リテラルは暗黙のうちにchar*に変換できるとドキュメントに記載されている。
  • Bugzilla 5841: エイリアスの文法が間違っている
  • Bugzilla 6013: エイリアスのprivateは無視される
  • Bugzilla 6037: [CTFE] recursive ref パラメータの評価が正しくない。
  • Bugzilla 6091: [d-p-l.org] "Modifier casting"の説明は誤解を招く。
  • Bugzilla 6165: 列挙型" の仕様が誤解を招く。
  • Bugzilla 6177: リグレッション(2.053):ICE backend/cgcs.c: assoc.配列または "可変長"関数の中にデストラクタを持つ構造体がある。
  • Bugzilla 6205: 戻り値が無視される強く純粋な nothrow 関数は、失敗する "assert" を含んでいても完全に取り除かれる。
  • Bugzilla 6208: テンプレート化された関数では、パラメータ格納クラスは無視される。
  • Bugzilla 6364: 静的構造体のデストラクタは関数の終了時に呼び出される。
  • Bugzilla 6402: 仕様の@propertyに関する注釈の更新が必要である。
  • Bugzilla 6451: [64bit] ICE(expression.c:4434):SymbolExp::SymbolExp(Loc, TOK, int, Declaration*, int):アサーション 'var' に失敗した
  • Bugzilla 6473: struct destructor をデフォルトパラメータとするスタックオーバーフローが発生した。
  • Bugzilla 6504: リグレッション(2.041):str" ~ [arr] で文字列リテラルが変更される
  • Bugzilla 6701: テンプレート特殊化の解決失敗
  • Bugzilla 6704: IfConditionとしてのCommaExpression
  • Bugzilla 6714: [tdpl] 関数のパラメータとデリゲート・リテラルの型推論
  • Bugzilla 6780: テンプレート化されたグローバル・プロパティ関数は機能しない。
  • Bugzilla 6839: opAssign のドキュメントが正しくない。
  • Bugzilla 6933: CTFEでデストラクタ付き構造体を使用したSegfault(declaration.c)
  • Bugzilla 6934: [CTFE] refで渡された配列のスライスで$を使用できない
  • Bugzilla 6939: 型修飾子の組み合わせが正しくない。
  • Bugzilla 6940: immutable(int*)*/immutable(int)**とint**は結合しない
  • Bugzilla 6948: opCmp() のシグネチャに関して、コンパイラまたはドキュメントにバグの可能性がある。
  • Bugzilla 6964: エラーメッセージに __error が含まれている : static assert(undefined+1).
  • Bugzilla 6968: 感嘆符がない場合、セグメンテーション・フォールトが発生する。
  • Bugzilla 6971: [lex.dd] 文字列リテラルの型が古い。
  • Bugzilla 6984: CTFEは前にエラーがあった場合、偽のエラーを大量に発生させる。
  • Bugzilla 6985: [CTFE] 非定数の大文字小文字式は解釈できない
  • Bugzilla 6987: CTFE] 非定数の大文字と小文字の式が解釈できない : [CTFE] 非定数の大文字と小文字の式が解釈できない
  • Bugzilla 6995: [CTFE] 静的テンプレート・メソッドが解釈できない
  • Bugzilla 7011: ベクトル・パワーで行番号エラーが発生しない
  • Bugzilla 7037: TemplateTypeParameterSpecializationは、このエイリアスに関してIsExpressionとは異なる動作をする。
  • Bugzilla 7043: CTFE: ICE不正参照値0LU、-inlineの場合のみ。
  • Bugzilla 7073: モジュール ctor 内のクラスが返す varargs 関数の解析に失敗した。
  • Bugzilla 7108: ICE:TraitsExp::semantic(Scope*) 2.056 -> 2.057 リグレッション - segfault
  • Bugzilla 7120: スコープデリゲート + デリゲートリテラル
  • Bugzilla 7123: static assert(is(typeof(toDelegate(&main))))は偽である。
  • Bugzilla 7124: この型はテンプレート型控除では考慮されない。
  • Bugzilla 7127: DWARF生成における定数関連の無限再帰
  • Bugzilla 7133: [tdpl] 空の文はあってはならない。
  • Bugzilla 7136: alias this lookup should run before merging modifiers of both sides : このルックアップは双方の修飾子をマージする前に実行されるべきである。
  • Bugzilla 7143: [CTFE] クラス参照を "is"で比較できない。
  • Bugzilla 7144: [CTFE] 基本クラスはオーバーライドされたメンバーを呼び出さない。
  • Bugzilla 7154: [CTFE] ダウンキャストに失敗するとエラーが発生する
  • Bugzilla 7158: [CTFE] ICE(interpret.c)がドットバー式を使用してクラス・メンバーを呼び出す
  • Bugzilla 7160: 回帰(2.057):ICE(dsymbol.c:1052)"__traits(derivedMembers)"を使用するICE。
  • Bugzilla 7162: [CTFE] "bool || void"式がdmdをクラッシュさせる
  • Bugzilla 7165: [CTFE] 定数メンバ関数でnullポインタをboolに変換するice
  • Bugzilla 7166: 内部エラー: ../ztc/cgxmm.c 60
  • Bugzilla 7168: Regression(2.057) __traits(allMembers) が間違ったタプルを返す。
  • Bugzilla 7170: [UFCS] 配列 + 特殊化されたテンプレートメンバーの構文がICEを引き起こす
  • Bugzilla 7173: dmd: glue.c:1065: virtual unsigned int Type::totym():アサーション0 に失敗した。
  • Bugzilla 7178: 無効なテンプレートのインポートでセグメンテーションに失敗した。
  • Bugzilla 7185: [CTFE] 文字配列の長さを変更する際にICEが発生する
  • Bugzilla 7187: リグレッション(head 12d62ca5):[CTFE] スライス時のICE
  • Bugzilla 7188: "import phobos;" がDMDをクラッシュさせる。
  • Bugzilla 7189: インラインに失敗した
  • Bugzilla 7190: タプルの長さが正しくない
  • Bugzilla 7193: リグレッション(2.058head):ICE: ラムダ式の削除でdmdがクラッシュした。
  • Bugzilla 7194: [CTFE] ポインタをローカル構造体変数とした場合の動作が正しくない
  • Bugzilla 7196: 関数アドレスのオーバーロード解消が不正になる
  • Bugzilla 7197: CTFE : 列挙型文字列がCTFEで動作しない
  • Bugzilla 7199: std.string.indexofは-inlineでコンパイルできない
  • Bugzilla 7201: ラムダ・テンプレートの変数への代入
  • Bugzilla 7207: 明示的キャストはラムダ型を解決すべきである。
  • Bugzilla 7212: 回帰(Head):オーバーロードの解決とデリゲート/関数の推論を伴うICE
  • Bugzilla 7216: [CTFE] 構造体のメンバ関数をポインタフィールドを使って呼び出すことができない。
  • Bugzilla 7217: [CTFE] 構造体配列フィールドへのアクセスにおけるICE
  • Bugzilla 7218: CTFE] 構造体配列フィールドへのアクセスでICEが発生した。
  • Bugzilla 7228: MOVDQ2Q命令がスワップされたレジスタ・インデックスで発行される。
  • Bugzilla 7231: opDispatchをプロパティ表記で使用した場合のセグメンテーションフォールト。
  • Bugzilla 7232: Warning: 文に到達できない。
  • Bugzilla 7234: stdio 使用時のセグメンテーションフォールト
  • Bugzilla 7239: C言語のスタイル "の構造体初期化はエイリアスでは機能しない。
  • Bugzilla 7245: [CTFE] ref foreach パラメータのアドレスが配列の後でポイントに変わる
  • Bugzilla 7248: [CTFE] 配列要素のアドレスでファイルされた構造体ポインタを使用するとスタックオーバーフローが発生する
  • Bugzilla 7261: ICE(glue.c):taskPool.reduceを使用する
  • Bugzilla 7266: [CTFE] (構造体メンバから取得した)ref パラメータへの代入が noop になる
  • Bugzilla 7277: [CTFE ICE] アサーションの失敗: 'interpret.c' ファイルの 1690 行目の 'thisval'.
  • Bugzilla 7278: (NULLでインスタンス化された)テンプレート構造体は自身のメンバにアクセスできない。
  • Bugzilla 7285: 暗黙の固定サイズ配列キャスト
  • Bugzilla 7290: スコープ付きデリゲート・リテラルを使ったヒープ割り当て
  • Bugzilla 7294: [回帰] 局所参照型変数をエスケープする際に警告が表示されない。
  • Bugzilla 7295: エイリアス This + Pure + pointsTo = rejects-valid
  • Bugzilla 7296: [2.058] 回帰:RefCountedをスワップできない
  • Bugzilla 7309: [2.058] 新しいインラインコードによるリグレッション
  • Bugzilla 7321: 安全性推論でvoidを返すと安全でないとみなされる
  • Bugzilla 7335: OUT - ブロックが未定義のクラス・メンバを持つことがある。
  • Bugzilla 7351: asmのバグの可能性:オペランド'xadd'の型/サイズが正しくない。
  • Bugzilla 7359: テンプレート化された可変長引数関数が複数の文字列引数を拒否する。
  • Bugzilla 7363: 同名テンプレートで内部名が隠蔽されない場合がある。static if
  • Bugzilla 7365: [2.057以降のリグレッション] opEqualsでオブジェクトのキーと値のAAが壊れる。
  • Bugzilla 7367: charの比較結果が間違っている
  • Bugzilla 7369: Inoutコンストラクタでコンパイラが不変化を拒否する
  • Bugzilla 7373: (Regression git) 名前変更されたインポートが他の暗黙的にインポートされたシンボルと衝突する。
  • Bugzilla 7375: リグレッション(2.057):派生/エイリアスされたテンプレート・クラスで無効なダウンキャストが許可される
  • Bugzilla 7377: でコンパイラがセグメンテーションフォールトを起こす:TemplateMixin::hasPointers() でセグメンテーションフォールトが発生した。
  • Bugzilla 7379: セマンティック3フェーズで "列挙型"のエイリアスを指定するとDMDのセグメンテーションフォールトが発生する。
  • Bugzilla 7383: コードセクションの空行がセクションの早期終了を引き起こす
  • Bugzilla 7384: volatile非推奨メッセージのタイプミス
  • Bugzilla 7394: ddmangleツールの再構築が必要
  • Bugzilla 7416: 2.058リグレッション:ネストされた関数を持つ制約付き関数テンプレートのインスタンス化に失敗する。
  • Bugzilla 7419: [2.058/CTFE] 構造体のコンストラクタが-inline付きのunittest内で上書きされる。
  • Bugzilla 7422: リグレッション(master):テンプレート化された関数と if 文で ICE が発生する : [2.058/CTFE] 構造体のコンストラクタが -inline の unittest 内で上書きされる : Regression(master): テンプレート化された関数と if 文で ICE が発生する。
  • Bugzilla 7424: を呼び出そうとすると、Segfault が発生する。
  • Bugzilla 7425: IFTIがinoutメソッドで動作しない
  • Bugzilla 7428: リグレッション(DMD 2.058head)クロージャを含む少し複雑な設定でのICE
  • Bugzilla 7435: リグレッション(master):-debugオプションなしで'scope(failure) debug ...'を実行するとdmdがクラッシュする。
  • Bugzilla 7475: リグレッション(2.058 beta):テンプレートメンバーが誤ってアクセスできない。
  • Bugzilla 7498: ()の前に期待された関数であり、関数ではない。
前バージョン: - 次のバージョン: