D 更新履歴
作業中
- Linux の共有ライブラリ対応
D 1.067 での変更点
Feb 17, 2011新しい/変更のあった機能
- Linux での 64bit対応
- HTML5 のエンティティ対応
- FreeBSD 版が FreeBSD 8.1 対応にバージョンアップ
バグ修正
- Bugzilla 190: 関数引数のデフォルト値内の typedef/alias では前方参照できない
- Bugzilla 1914: const 配列からの配列初期化でメモリが壊れる
- Bugzilla 3198: 構造体配列の誤った初期化子
- Bugzilla 3681: ICE(go.c): -O 時のみ。関数が最適化に非常に時間がかかるとき
- Bugzilla 4245: 単一の関数スコープで衝突するシンボルの選言が許される
- Bugzilla 4379: ICE(blockopt.c): -O 時のみ。巨大なタプルでのforeach
- Bugzilla 4389: ICE(constfold.c, expression.c), あるいは誤ったコード生成: CTFEでのstring~=dchar
- Bugzilla 4486: CodeView デバッグ情報は絶対パス名を含むべき
- Bugzilla 4753: fail_compilation/fail116.d がdmdをループさせメモリを食いつぶす
- Bugzilla 4878: Ddoc: デフォルト引数で出力が壊れる
- Bugzilla 4973: mapファイル名に空白があるとリンカに渡す際にクォートされない
- Bugzilla 5015: Regression(1.061): 循環importがstatic if内の is() を壊す
- Bugzilla 5090: ICE(todt.c) 長さゼロ配列を構造体リテラルで初期化
- Bugzilla 5105: メンバ関数テンプレートがsynchronizedにできない
- Bugzilla 5221: entity.c: Walter と Thomas のリストをマージ
- Bugzilla 5241: dmd: ABIエラー/退行 (TypeInfo.toString() が部分的に壊れた文字列を返す)
- Bugzilla 5242: 自己参照するテンプレート制約がコンパイラをクラッシュさせる
- Bugzilla 5244: PATCH: toObj.c 内の未初期化変数の使用
- Bugzilla 5246: PATCH(s): さらに未初期化変数使用の修正
- Bugzilla 5349: ICE(toir.c): static メンバ関数内のネストクラス
- Bugzilla 5391: 再帰的alias宣言でクラッシュ
- Bugzilla 5439: 64bit の構造体アラインメントがCのABIと一致していない
- Bugzilla 5455: ICE(cgcod.c): 最適化 (レジスタ割り当て?) の DMD 1.065 での退行
- Bugzilla 5486: dmd を 64bit で動かす define が抜けている
- Bugzilla 5534: [64-bit] -O -release -m64 限定で、小さなコード片でSEGV
- Bugzilla 5536: 64-bit での $ 演算子での配列追記
- Bugzilla 5545: [64-bit] DMD が ubyte を後置インクリメントできない
- Bugzilla 5549: [64-bit] Internal error: backend/cgcod.c 1845
- Bugzilla 5556: [64-bit] double への誤った暗黙変換
- Bugzilla 5557: [64-Bit] rvalue での 浮動小数点 (アラインメント?) 問題
- Bugzilla 5564: [64-bit] byte定数のロードに誤り
- Bugzilla 5565: [64-bit] size_t の mixin 周りで、浮動小数点演算の結果が間違う
- Bugzilla 5566: [64-bit] さらに size_t と 浮動小数点関係のエラー
- Bugzilla 5571: [64-bit] new bool が怪しいアドレスを返す
- Bugzilla 5572: [64-bit] グローバルの隠れたmutexがグローバル変数とアドレスを共有している
- Bugzilla 5580: [64-bit] 64-bit モードで文字列スイッチが動かない
- Bugzilla 5581: [64-bit] boolに対するビット演算のコードがおかしい
- Bugzilla 5592: 前の定義と違う: __arrayExpSliceMulSliceAddass_d
- D 1.067 での変更点
- D 1.066 での変更点
- D 1.065 での変更点
- D 1.064 での変更点
- D 1.063 での変更点
- D 1.062 での変更点
- D 1.061 での変更点
- D 1.060 での変更点
- D 1.059 での変更点
- D 1.058 での変更点
- D 1.057 での変更点
- D 1.056 での変更点
- D 1.055 での変更点
- D 1.054 での変更点
- D 1.053 での変更点
- D 1.052 での変更点
- D 1.051 での変更点
- D 1.050 での変更点
- D 1.049 での変更点
- D 1.048 での変更点
- D 1.047 での変更点
- D 1.046 での変更点
- D 1.045 での変更点
- D 1.044 での変更点
- D 1.043 での変更点
- D 1.042 での変更点
- D 1.041 での変更点
- D 1.040 での変更点
- D 1.039 での変更点
- D 1.038 での変更点
- D 1.037 での変更点
- D 1.036 での変更点
- D 1.035 での変更点
- D 1.034 での変更点
- D 1.033 での変更点
- D 1.032 での変更点
- D 1.031 での変更点
- D 1.030 での変更点
- D 1.029 での変更点
- D 1.028 での変更点
- D 1.027 での変更点
- D 1.026 での変更点
- D 1.025 での変更点
- D 1.024 での変更点
- D 1.023 での変更点
- D 1.022 での変更点
- D 1.021 での変更点
- D 1.020 での変更点
- D 1.019 での変更点
- D 1.018 での変更点
- D 1.017 での変更点
- D 1.016 での変更点
- D 1.015 での変更点
- D 1.014 での変更点
- D 1.013 での変更点
- D 1.012 での変更点
- D 1.011 での変更点
- D 1.010 での変更点
- D 1.009 での変更点
- D 1.007 での変更点
- D 1.006 での変更点
- D 1.005 での変更点
- D 1.004 での変更点
- D 1.003 での変更点
- D 1.002 での変更点
- D 1.001 での変更点
- D 2.0 の更新履歴
- 古い履歴
- さらに古い履歴
- 最新の安定版 (1.030) コンパイラの ダウンロード。
- テクニカルサポート
D 1.066 での変更点
Dec 14, 2010新しい/変更のあった機能
バグ修正
- Bugzilla 603: ドキュメント化されていない挙動: case と default がスコープを作る
- Bugzilla 632: typedef/enum の昇格の仕様があいまい。本当に元々の基底型まで遡るのか、最小の共通型か?
- Bugzilla 679: コピーGCが可能な使用になっているべき
- Bugzilla 690: ABI のドキュメント不足
- Bugzilla 1351: 言語仕様の矛盾点
- Bugzilla 1466: 仕様は最大食いの字句解析が常に働くと述べているが "1..3" では違う
- Bugzilla 2206: 関数内/クラス内クラスへの無名テンプレートmixinによって classinfo と mangleof が変になる
- Bugzilla 2385: 仕様ではLinuxでは構造体は常に隠し関数ポインタで返すとあるが、レジスタが使われる
- Bugzilla 2392: 関数ポインタ宣言と呼び出しの構文の曖昧性
- Bugzilla 2406: Declarator2 の定義エラー
- Bugzilla 2556: classinfo プロパティにはもっとドキュメントが必要 (RTTI, typeof, typeid, 実行時型情報)
- Bugzilla 2616: ドキュメント化されていない挙動: 部分的に明示、部分的に暗黙の関数テンプレートのインスタンス化が可能
- Bugzilla 2651: class の本体の宣言の文法が正しくない
- Bugzilla 2652: DeclDef の文法が間違っている
- Bugzilla 2734: トークン分けの曖昧性: _._ は浮動小数点数リテラルか
- Bugzilla 2994: "定義済みバージョン識別子" のドキュメントが不完全
- Bugzilla 3112: どの操作がGCを呼ぶかの仕様が無い
- Bugzilla 3276: aliasテンプレート引数で再帰が壊される
- Bugzilla 3554: 括弧が対になっていないドキュメント化コメントでddocの出力が壊れる
- Bugzilla 4529: typeid(typeof(functionName)) で Segfault(typinf.c)
- Bugzilla 4728: 他モジュールの protected/private コンストラクタで Segfault(toctype.c)
- Bugzilla 4864: ICE(statement.c) 不正な、mixin 内の if 文の body でクラッシュ
- Bugzilla 5110: 構造体とクラスの属性の余分な伝搬
- Bugzilla 5117: [CTFE] やや複雑なthisでのメンバ関数呼び出しで副作用が無視される
- Bugzilla 5120: ICE(mtype.c) void 連想配列
- Bugzilla 5145: Regression(2.050, 1.065) 基底クラスの前方参照でオーバーライドエラー
- Bugzilla 5159: Segfault(interpret.c): CTFEで静的関数ポインタを呼び出し
- Bugzilla 5164: "is (T...)" で行番号無しエラー
- Bugzilla 5180: ICE(arrayop.c) 不完全型に対する破壊的配列操作
- Bugzilla 5182: ICE(expression.c): 関数から単体テスト呼び出し
- Bugzilla 5195: 前方参照が const を無視する
- Bugzilla 5230: Regression(2.041, 1.057) ICE(tocsym.c) out 契約を持つメソッドのオーバーライド
- Bugzilla 5238: PATCH: interpret.c で未初期化変数をreturnする件の修正
- Bugzilla 5275: x86_64 関連で、隠し関数引数がうまく扱われない
- Bugzilla 5294: -O の最適化で for ループが壊れる
- Bugzilla 5331: mach 形式の問題
D 1.065 での変更点
Sep 17, 2010新しい/変更のあった機能
- TypeInfo に talign() と argTypes() を追加
- Upgrade zlib support to zlib 1.2.5
バグ修正
- Bugzilla 3602: ICE(tocsym.c) 基底クラスが事前条件を持っているクラスのコンパイル
- Bugzilla 3665: Regression(1.051, 2.036) 配列スライスでの代入が動かない
- Bugzilla 4398: dmd が _d_throw に対して常に Windows の名前マングリングを使う。 Tango の更新が必要かもしれません
- Bugzilla 4623: 非整数型を静的配列のサイズに使えてしまう
- Bugzilla 4768: Regression(1.056): enumの前方宣言でおかしなコード
- Bugzilla 4825: Regression(1.057, 2.040) -inline で "Error: non-constant expression"
- Bugzilla 4873: Assertion failure: '0' on line 1483 in file 'expression.c'
- Bugzilla 4897: CodeView: 関数の情報が足りないためローカル変数や引数がデバッガで表示されない
- Bugzilla 4925: [ICE] モジュールスコープの assert(0) で segv
- Bugzilla 4926: ICE: 未設定の優先順位のため PREC_zero assert 失敗
- Bugzilla 4941: 組み込みのタプルスライス境界がCTFEできない
- Bugzilla 4949: 'this' を使う不正なstaticでICE
- Bugzilla 5026: ICE(expression.c) 不完全なmixin式 + char[] から char への代入
D 1.064 での変更点
Sep 13, 2010新しい/変更のあった機能
バグ修正
- Bugzilla 1715: テンプレートの特殊化で変換可能性ではなく同値性がチェックされている
- Bugzilla 1970: インターフェイステンプレートがマッチしない
- Bugzilla 2511: 循環importで共変の返値型が動作しない
- Bugzilla 2716: クラス属性でのautoとscopeの混同
- Bugzilla 3046: (Linuxのみ) C++のstatic変数でSEGV
- Bugzilla 3418: cast(ulong)(ulong*real) でリンクエラー
- Bugzilla 3544: 再帰ネスト関数で optlink が 0041338f で強制終了
- Bugzilla 3554: Ddoc が対応の取れてない括弧の入ったドキュメントを作ってしまう
- Bugzilla 3627: -of に二つ拡張子があるファイルを渡すとリンカが混乱
- Bugzilla 4302: 退行(2.046, 1.061): CTFEでstartsWithを使うとコンパイラエラー
- Bugzilla 4645: to!string(const char*) をライブラリで使うと Optlink が警告
- Bugzilla 4652: 長さゼロのタプルにさらに引数を足すとコンパイラがハング
- Bugzilla 4655: 退行(1.063, 2.048) tryブロックへgotoするとICE
- Bugzilla 4676: 可変長引数とそうでない関数をmixinするとオーバーロード解決が正しいコードを拒否する
- Bugzilla 4691: double と long の比較に誤り
- Bugzilla 4721: dcollections の unittest のコンパイルが遅い
- Bugzilla 4751: 退行(1.062, 2.047) constfold.c でエラーの後ICE
- Bugzilla 4752: fail_compilation/fail345.d expression.c で assert 失敗
- Bugzilla 4771: fail_compilation/fail274.d iasm.c の halt
- Bugzilla 4828: static if 内でbool値でないドット式 sth.template_instance でICE
D 1.063 での変更点
Aug 8, 2010新しい/変更のあった機能
- Bugzilla 4080: Mac OS X でダイナミックライブラリをビルド可能にするパッチ
バグ修正
- Bugzilla 1418: ネストクラスの tupleof のバグ
- Bugzilla 1678: 可変長引数+ref で不正なコード生成
- Bugzilla 2931: 別の構造体の配列で構造体を初期化
- Bugzilla 3326: delegate リテラル内で $ を使うとアクセス違反
- Bugzilla 3560: ネスト関数でforeachすると不正なコード生成
- Bugzilla 3569: C形式の構造体初期化の中で構造体のメンバ関数を呼ぶとDMDがスタックオーバーフロー
- Bugzilla 3679: 退行(2.031) テンプレートの前方参照
- Bugzilla 3706: 多重継承したinterfaceのdelegateで問題
- Bugzilla 4191: [FreeBSD] real 型の定数がdouble精度に丸められてしまう
- Bugzilla 4198: [FreeBSD] 10進浮動小数点数定数の精度落ち
- Bugzilla 4238: Segfault(statement.c): with(typeof(int))
- Bugzilla 4303: __traits(compiles) を再帰的に使うと結果がおかしい
- Bugzilla 4314: 退行(1.062): array1 && array2 がコンパイルできない
- Bugzilla 4339: 構造体デストラクタ + invariant + 構造体引数 = ひどいエラーメッセージ
- Bugzilla 4396: mkdir の競合のせいで DMD を make -j で並列ビルドできない
- Bugzilla 4443: 構造体配列に対する || や && で最適化器が不正なコードを生成
- Bugzilla 4503: aliasされたテンプレート員スンタンスへの前方参照
- Bugzilla 4506: 退行(2.034): -O フラグで再帰関数が変になることがある
- Bugzilla 4514: 退行: X* を X にキャストできない
- Bugzilla 4569: extern(c++) がconstを理解しないのでマングルされたシンボルがおかしい
- Bugzilla 4578: 退行(2.047,1.062): ICE(cgcod.c): var+arr[]
D 1.062 での変更点
Jun 9, 2010新しい/変更のあった機能
- Bugzilla 2008: ref引数を持つ関数の最適化が弱い
- Bugzilla 4296: 妙なエラーメッセージを減らす
バグ修正
- Bugzilla 1193: 退行: "matches more than one template declaration" で衝突しているテンプレートの場所が表示されない
- Bugzilla 1894: scope(exit) が複文の中でないと無視される
- Bugzilla 1941: アクセス不可能なprivateモジュールメンバの行情報
- Bugzilla 2127: 構造体の "return *this" がインライン化によって by-value から by-ref に変わってしまう
- Bugzilla 2276: 配列演算のエラーメッセージに行番号が足りない
- Bugzilla 2546: スライスが使われてないとき配列演算が無言で失敗する
- Bugzilla 2881: x.stringof が、xがenumだと typeof(x).stringof を返す
- Bugzilla 3064: 不正な配列演算が受け付けられ、おかしなコードを生成
- Bugzilla 3323: デストラクタつき構造体を使うとほとんどの箇所で Segfault か ICE(e2ir.c)
- Bugzilla 3398: unionの中で属性を使うとアラインメントが乱される
- Bugzilla 3547: 相対パスに -od オプションを使うと二回追加される
- Bugzilla 3548: 関数の返した配列を配列演算の中で間違って使うとICE
- Bugzilla 3651: mangleof が enum で壊れている
- Bugzilla 3854: 静的配列の末尾コンマ付き初期化でエラー
- Bugzilla 4003: ソースファイルの行の並び替えだけで結果が変わる
- Bugzilla 4045: [CTFE] 配列のlengthを増やす
- Bugzilla 4052: [CTFE] 配列要素のインクリメント
- Bugzilla 4078: [CTFE] 動的配列の要素のreturnに失敗
- Bugzilla 4084: main() の閉じ括弧が無くても問題ない
- Bugzilla 4143: dmdのビルド時の警告を修正
- Bugzilla 4156: array+=arrayでsegfault
- Bugzilla 4169: 新しいgccでdmdをビルドするとバグ入りコンパイラになる
- Bugzilla 4175: linux.mak が並列ビルドに必要な全ての依存性を網羅していない
- Bugzilla 4210: dmd commit 478 による Random クラッシュ / ハイゼンバグ : vtableが変
- Bugzilla 4212: DWARF: void 配列でgdbがエラー
- Bugzilla 4213: 静的なvoid配列でおかしな挙動
- Bugzilla 4242: ICE(module.c): パッケージと同名のモジュールのimport
- Bugzilla 4252: [CTFE] char[] 配列への代入で境界検査がない
- Bugzilla 4257: ICE(interpret.c): CTFE時にref引数に代入
- Bugzilla 4259: ヘッダ生成でプロパティを表す'@'が抜ける
- Bugzilla 4270: 'can only catch class objects' エラーメッセージに行番号がない
D 1.061 での変更点
May 10, 2010新しい/変更のあった機能
- import 忘れがあった場合のヒント表示を追加
- コンパイル速度向上
バグ修正
- 未定義識別子でハングする問題を修正
- Bugzilla 461: モジュールの循環参照で定数が定数と認識されない
- Bugzilla 945: 名前付きネスト構造体のみのテンプレートの前方参照
- Bugzilla 1055: union の前方参照で "overlapping initialization" エラー
- Bugzilla 2085: 前方参照された関数で CTFE が失敗
- Bugzilla 2386: 前方参照された構造体の配列がコンパイルできない
- Bugzilla 4015: alias での前方参照でエラー
- Bugzilla 4016: const 初期化子が他の const 初期化子を前方参照できない
- Bugzilla 4042: 構造体テンプレートをインスタンス化できない
- Bugzilla 4100: break と continue のラベルの仕様は foreach に言及すべき
D 1.060 での変更点
May 2, 2010新しい/変更のあった機能
バグ修正
- Dwarf 周りの問題の再修正
D 1.059 での変更点
Mar 6, 2010新しい/変更のあった機能
- スペルチェックの認識距離を2に増強
バグ修正
- Bugzilla 1079: gdb: Dwarf エラー: 0x250 の DIE から参照されている 0xb705 の DIE が見つからない
- Bugzilla 2549: 配列の乗算でsegv
- Bugzilla 3066: スライスなしの配列を左辺値として配列演算できてしまうが、コード生成が変
- Bugzilla 3207: gdb: Push D patches upstream
- Bugzilla 3415: 壊れた JSON 出力
- Bugzilla 3522: ICE(cg87.c): variable*array[].
- Bugzilla 3974: ICE(init.c): 格納先より長い静的配列の初期化子
- Bugzilla 3987: [gdb] 関数ポインタで DWARF 出力がおかしい
- Bugzilla 4036: unionを含む構造体リテラルと-inlineでsegv
- Bugzilla 4037: [gdb] wchar で DWARF 出力がおかしい
- Bugzilla 4038: [gdb] ref引数の関数ポインタで DWARF 出力がおかしい
- Bugzilla 4067: [CTFE] try-catch ブロック内のコードが無視される
- Bugzilla 4089: 不完全な構造体からJSON出力するとクラッシュ
- Bugzilla 4093: Segfault(interpret.c): 再帰的な構造体テンプレートで
- Bugzilla 4105: aliasテンプレート引数と未定義識別子でスタックオーバーフロー
D 1.058 での変更点
Mar 6, 2010新しい/変更のあった機能
バグ修正
- Bugzilla 122: DDoc の改行の扱いが最適でない
- Bugzilla 1628: Ddoc が --- ブロックに対し不正な文書を生成する
- Bugzilla 2609: デストラクタのドキュメントが生成されない
- Bugzilla 3808: Assertion failure: 'classinfo->structsize == CLASSINFO_SIZE' on line 870 in file 'toobj.c'
- Bugzilla 3842: ICE(expression.c) CTFE中のポインタの使用
- Bugzilla 3884: 無効な object.d でtypedefを定義するとsegv
- Bugzilla 3885: Windows DLL がマルチスレッド非対応
- Bugzilla 3899: CTFE: 未初期化変数の使用に対するエラーメッセージがお粗末
- Bugzilla 3900: CTFE: array.var への代入の返値がおかしい
- Bugzilla 3901: PATCH: CTFE時のネスト構造体の代入
- Bugzilla 3914: レジスタに収まる構造体引数へのメンバアクセスがおかしい
- Bugzilla 3919: ICE(expression.c, 9944): typedef したirealに対する * と /
- Bugzilla 3920: Assertion failure: '0' on line 10018 in file 'expression.c'
- Bugzilla 3958: mixin(non-static method) でコンパイラがクラッシュ
- Bugzilla 3972: ファイル名と違う名前のモジュール
- Bugzilla 4002: dmd.conf と dmd -v の出力にバイナリ
- Bugzilla 4004: DMD 2.042 ref 引数を取る関数のCTFEで退行
- Bugzilla 4005: CTFE 中の std.c.stdlib.exit など
- Bugzilla 4011: mixin による正しくない関数オーバーロード
- Bugzilla 4019: [CTFE] 空連想配列へのアイテム追加
- Bugzilla 4020: [ICE][CTFE] CTFE中の構造体postblit
- Bugzilla 4027: CTFE 中にクロージャを使うと不正なコード生成
- Bugzilla 4029: CTFE: 関数の返したdelegateを呼び出せない
D 1.057 での変更点
Mar 6, 2010新しい/変更のあった機能
- 警告では構文解析/意味解析をストップしないようになりました。 "compiles" trait でもエラー扱いとは見なされません。 しかし依然として、コマンドの実行結果としてはエラー状態を返し、オブジェクトファイルは生成しません。
- Bugzilla 2567 に対し -wi スイッチを追加
- 連想配列の内容の同値性を比較できるようになりました
- 簡単なスペルチェッカを追加
バグ修正
- Bugzilla 2321: インラインアセンブラの仕様が誤解を招く
- Bugzilla 2463: "statement is not reachable" 警告に行番号が出ない
- Bugzilla 3029: 配列値のマングリング規則にバグ
- Bugzilla 3306: ヘッダファイルにおかしな関数/デリゲートリテラルが生成される
- Bugzilla 3373: longとulongに対する間違ったcodeviewデバッグ情報
- Posix限定, Bugzilla 3420: [PATCH] サブディレクトリに対応した文字列import
- Bugzilla 3450: 構造体内の is (typeof({ ... }())) で結果がおかしい
- Bugzilla 3500: -inline を付けると super の挙動が変わる
- Bugzilla 3558: 最適化のバグでfalseなif分岐が実行される
- Bugzilla 3670: 宣言子の文法規則が壊れている
- Bugzilla 3710: allMembers の説明にtypo?
- Bugzilla 3736: 最適化(-O)時に関数から壊れた構造体が返される
- Bugzilla 3737: まずいopDispatchで、expression.c:6255 でSEGV
- Bugzilla 3768: ddoc.html で引用符が重複
- Bugzilla 3769: 退行: 配列リテラルとcase文でSEGV(constfold.c)
- Bugzilla 3775: SEGV(cast.c): ゼロ引数テンプレート関数をプロパティ構文で使う
- Bugzilla 3781: ICE(interpret.c): C形式可変胡引数関数をゼロ引数でCTFE時に呼び出す
- Bugzilla 3792: 退行: 構造体初期化子を使う構造体の中のtemplateで"non-constant expression"
- Bugzilla 3803: コンパイラがSEGV
- Bugzilla 3840: phobosのドキュメントのquicklinkはソートされているべき
D 1.056 での変更点
Jan 29, 2010新しい/変更のあった機能
- 明確化: 関数の返値は左辺値ではない
- -map コマンドラインスイッチを追加
- delegateと関数ポインタがCTFEで使用可能になりました
- delegateリテラルと関数リテラルがCTFEで使用可能になりました
- lazy関数引数がCTFEで使用可能になりました
- char[]配列のスライスがCTFEで使用可能になりました
バグ修正
- Bugzilla 48: Internal error: cgreg 784
- Bugzilla 1298: CTFE: tuple foreach のバグ
- Bugzilla 1790: CTFE: タプルがstringを含んでいるとforeach(Tuple)が通らない
- Bugzilla 2101: CTFE: コンパイル時にmutableな配列が使いたい
- Bugzilla 3569 の部分的な修正: スタック溢れ野防止
- Bugzilla 3668: typedef された配列へのforeachでdmdがクラッシュ
- Bugzilla 3674: 同名の複数のオーバーロードで前方参照のエラー
- Bugzilla 3685: 退行 (D1 のみy): 正しいコードでDMDが無言で落ちる
- Bugzilla 3687: 配列演算 "スライス×スライス" が変
- Bugzilla 3719: 前方参照でメモリ不足エラー
- Bugzilla 3723: 退行: enumの前方参照
- Bugzilla 3724: Expression::arraySyntaxCopy にバグ (struct->union->struct でのnull参照)
- Bugzilla 3726: 退行: ICE(mangle.c 81): static と構造体の前方参照
- Bugzilla 3740: 退行: ネスト構造体の前方参照を持つクラスでabstractが正しく働かない
D 1.055 での変更点
Jan 1, 2010新しい/変更のあった機能
バグ修正
- Bugzilla 3663: 構造体の前方参照に関する退行
- Bugzilla 3664: 構造体の前方宣言によってenumが自分自身と衝突
D 1.054 での変更点
Dec 30, 2009新しい/変更のあった機能
バグ修正
- Bugzilla 45: Internal error: cgcod 1594
- Bugzilla 46: long double の定数畳み込み
- D/103391: D1 garbage collector + threads + malloc = garbage?
- Bugzilla 282: おかしな、循環importによるネスト名不可視問題
- Bugzilla 390: 構造体内のネストしたenumを前方参照できない
- Bugzilla 400: 前方参照エラー; 型YのプロパティXが存在しない (構造体内の構造体)
- Bugzilla 1160: enumが前方参照できない
- Bugzilla 1564: 循環import中のenumの前方参照
- Bugzilla 2029: 型安全可変個引数関数がCTFE中に動作しない
- Bugzilla 2816: 突然死する static assert はあまり有用でない
- Bugzilla 3455: 識別子に使えない Unicode 文字がある
- Bugzilla 3575: CTFE: メンバ構造体が正しく初期化されていない
- Bugzilla 3584: DeclDef 文法規則のエントリがない
- Bugzilla 3585: EqualExpression と RelExpression の文法規則に重複
- Bugzilla 3587: Aggregate 文法規則が未定義の Tuple を参照
- Bugzilla 3588: WithStatement 文法規則が未定義の Symbol を参照
- Bugzilla 3589: BaseClassList と InterfaceClasses 文法規則は不正確。',' が足りない
- Bugzilla 3590: FunctionParameterList 文法規則が抜けている
- Bugzilla 3591: TemplateIdentifier 文法規則にスペルミス
- Bugzilla 3592: ClassTemplateDeclaration と FunctionTemplateDeclaration 文法規則が参照されていない
- Bugzilla 3593: IntegerExpression 文法規則が未定義
- Bugzilla 3594: AsmPrimaryExp 文法規則が未定義の文法規則を参照
- Bugzilla 3595: いくつかの文法規則のうしろに ':' が足りない
- Bugzilla 3601: Debug と Release で DMD が生成するオブジェクトファイルが違う
- Bugzilla 3611: enum の前方参照の退行
- Bugzilla 3612: ExpressionList が未定義
- Bugzilla 3617: CTFE: x が int かそれより小さい型の時 if(x) が誤った動作に
- Bugzilla 3628: null を int にキャストできない
- Bugzilla 3633: 最適化によってアクセス違反が発生
- Bugzilla 3645: 記号定数 (enum) で dmd がクラッシュ
D 1.053 での変更点
Dec 3, 2009新しい/変更のあった機能
バグ修正
- Bugzilla 111: dchar の char[] への追加
- Bugzilla 370: 関数宣言内での再帰的typeofでスタックオーバーフロー
- Bugzilla 2229: ICE(template.c) 不正な可変長引数テンプレートを複数の引数でインスタンス化
- Bugzilla 2967: インラインアセンブラが正当な "return" として扱われることが仕様に記載されていない
- Bugzilla 3115: >>> と >>>= の生成コードがおかしい
- Bugzilla 3171: 浮動小数点の % の実装が正しくない
- Bugzilla 3381: [tdpl] 三角形型の継承階層でのオーバーライドの扱い方が正しくない
- Bugzilla 3469: ICE(func.c): 退行。別モジュールから非テンプレート関数をテンプレートとして呼び出し
- Bugzilla 3495: Segfault(typinf.c) Dの可変長引数関数を少なすぎる引数で呼び出し
- Bugzilla 3496: ICE(cgelem.c, optimizer bug) cast(void *)(x&1)== null.
- Bugzilla 3502: サポートの無くなった Mac OS X 10.5 向け修正
- Bugzilla 3521: 最適化されたコードが pop済みレジスタにアクセス
- Bugzilla 3540: また別の DWARF 行番号の修正
D 1.052 での変更点
Nov 12, 2009新しい/変更のあった機能
- OSX 10.5 やそれ以前のバージョンは未サポートとなりました。
バグ修正
- OSX 10.6 で動作するようになりました。
D 1.051 での変更点
Sep 2, 2009新しい/変更のあった機能
バグ修正
- 複雑な配列演算の問題
- Bugzilla 195: 例が "protected" 属性を含んでいるときにDDocがおかしな出力を出す
- Bugzilla 424: 予期しない OPTLINK の停止 at EIP=0044C37B (too many fixups)
- Bugzilla 874: 不正なコード生成: tuple foreach で間違った値。D1のみ
- Bugzilla 1117: 例にコロン付き属性があると ddoc の出力が壊れる
- Bugzilla 1812: DDOC - Unicode識別子が正しくマークアップされない
- Bugzilla 2862: ICE(template.c) 型タプルを関数引数として使う
- Bugzilla 3292: ICE(todt.c) 初期化子ありの名前付きmixinがテンプレートalias引数をとる場合
- Bugzilla 3397: 意図しない static opCall への関数呼び出し
- Bugzilla 3401: on invariant + メソッドオーバーロードでコンパイラがクラッシュ
- Bugzilla 3422: ICE(cgcod.c) レジスタサイズ以上のデフォルト初期化子を持つ構造体をデフォルト引数にできない
- Bugzilla 3426: ICE(optimize.c): キャストした構造体リテラルを関数のデフォルト引数にした場合
- Bugzilla 3432: ICE(e2ir.c): テンプレート式のキャスト
D 1.050 での変更点
Sep 2, 2009新しい/変更のあった機能
- JSON ファイルを生成する -X オプション
バグ修正
- Bugzilla 1170 のパッチを取り込み
- Bugzilla 923: テンプレートの値デフォルト引数に定数畳み込みが行われない。D1 のみ
- Bugzilla 1534: case文をmixinできない
- Bugzilla 2423: 間違った到達不能コード警告
- Bugzilla 3392: tango.core.Thread での this から void へのキャストは許されない
D 1.049 での変更点
Sep 2, 2009新しい/変更のあった機能
バグ修正
- Bugzilla 258: 循環importで未定義識別子エラー
- Bugzilla 928: テンプレートクラスのunittestの中でネスト構造体を定義するとDMDがハング
- Bugzilla 1140: ICE(cod1.c) 関数の最後の引数を8byte値にキャスト
- Bugzilla 1592: ファイルをパッケージに入れるとdmdがクラスシンボルを解決できなくなる
- Bugzilla 1787: 循環参照でコンパイラがクラッシュ
- Bugzilla 1897: ICE(template.c) タプルデリゲートで
- Bugzilla 1934: ICE(e2ir.c) 静的配列を連想配列のキーとして使用
- Bugzilla 2229: ICE(template.c) 不正な可変長引数テンプレートを1引数以上で呼び出した場合
- Bugzilla 2687: ICE(statement.c) エラーのあるテンプレートでtuple foreach した場合
- Bugzilla 2773: ICE(go.c) ポインタ経由の配列代入で。-O 時のみ。
- Bugzilla 2829: ICE(expression.c) 構造体リテラルの中で静的配列をブロック初期化
- Bugzilla 2851: Segfault(expression.c) C-形式の構造体初期化子を少な過ぎる引数で呼び出した場合
- Bugzilla 3006: ICE(e2ir.c, tocsym.c) 配列演算を使うテンプレートモジュールで
- Bugzilla 3041: 配列スライスがその要素型と比較できてしまう: 不正なコード生成またはICE
- Bugzilla 3101: 集成体のメンバをstatic ifで2回宣言するとスタックオーバーフロー
- Bugzilla 3174: ICE(mtype.c): auto 返値と const / immutable / invarient / pure の組み合わせでコンパイラがハングまたはエラー
- Bugzilla 3176: 可変長引数関数の中でおかしな形式のmixinをするとコンパイラがハング
- Bugzilla 3261: mixinと前方参照でコンパイラがクラッシュ
- Bugzilla 3286: デフォルト引数があるとモジュール間循環依存が解決されない
- Bugzilla 3301: 循環参照があるときに、import順に依存して未定義エラーが出たり出なかったり
- Bugzilla 3325: ICE(func.c) 事後表明つき関数リテラル
- Bugzilla 3343: "auto main(){}" でクラッシュ
- Bugzilla 3344: ICE(e2ir.c) main() から不正な関数を返す
- Bugzilla 3357: ICE(cod1.c) 静的char配列をキーにする連想配列で 'in' を使用
- Bugzilla 3366: Segfault(declaration.c) 制約が満たされない可変長引数テンプレート
- Bugzilla 3374: [tdpl] ICE(init.c): 連想配列型が推論されない
D 1.048 での変更点
Sep 2, 2009新しい/変更のあった機能
- -O つきでコンパイルすると、不正なnullポインタ参照のうちいくらかをコンパイラが検出するようになりました
- Bugzilla 2905: 浮動小数点数リテラルに関する +-*/ の高速化
バグ修正
- gdb のスタックトレースが動作するようになりました
- Bugzilla 302: in/out 契約の継承が未実装
- Bugzilla 718: int /= cast(creal) で ICE(cgcod.c)
- Bugzilla 814: lazy argument + variadic arguments = segfault
- Bugzilla 1168: テンプレートの値引数として式の .stringof を取るとその型名の文字列になる
- Bugzilla 1571: Segfault(class.c) 関数引数のconstが.diファイルに継承されない
- Bugzilla 1731: 関数型のaliasの前方参照が呼び出し規約をリセットしてしまう
- Bugzilla 2202: クラスの非staticメンバの型の取得エラー
- Bugzilla 2469: ICE(cod1.c) 任意の構造体が構造体初期化子として使えてしまう
- Bugzilla 2697: 関数のfloat返値をulongやuintにキャストするとおかしな値になる
- Bugzilla 2702: 構造体初期化の裏でキャストが挿入されている
- Bugzilla 2839: int /= 虚数で ICE(cgcs.c)
- Bugzilla 3049: ICE(cod4.c) or segfault: void[] 配列に対する配列演算
- Bugzilla 3059: 複素数の、意味を成さない op= は不正とされるべき
- Bugzilla 3160: void main から string を返すと ICE(cgcod.c 1511-D1) or bad code-D2
- Bugzilla 3304: ポインタの enum に 'is' を使うと segfault
- Bugzilla 3305: 再帰的な構造体テンプレートの alias 式で Segfault(expression.c)
- Bugzilla 3335: 警告の整頓
- Bugzilla 3336: ICE(glue.c) タプルがキーの連想配列の宣言で。-g オプションをつけたときのみ
- Bugzilla 3353: メンバ関数の記憶域クラスがデフォルト引数にも引き継がれている
D 1.047 での変更点
Sep 2, 2009新しい/変更のあった機能
- Bugzilla 3122: [patch] フロントエンドへの拘束で信頼性の高いビルドツールサポートの追加
- CTFE時の:
a[i].var = e2
と:a[] = e
に対応 (thanks, Don!) - CTFE時のメンバ関数呼び出しに対応
- CTFE時の演算子オーバーロードに対応
- CTFE時のネスト関数呼び出しに対応
- CTFEのエラーメッセージで、 何故コンパイル時実行できないのかを説明するようになりました
バグ修正
- dmd のディレクトリパスに空白文字があったときのバグを修正
- Bugzilla 601: statement.html - BNFのフォーマット/マークアップエラー
- Bugzilla 1461: ローカル変数をテンプレートalias引数とするとCTFEがおかしくなる
- Bugzilla 1605: goto のある switch で break するとCTFEがおかしくなる
- Bugzilla 1948: 配列要素の構造体を書き換えるコードがCTFEできない
- Bugzilla 1950: ref渡しされた構造体を使うとCTFEが正しく動かない
- Bugzilla 2569: CTFE関数内の静的配列がコンパイルできない
- Bugzilla 2575: gdb がコードを表示できない
- Bugzilla 2604: DW_TAG_module と GDB
- Bugzilla 2940: null is null がコンパイル時実行できない
- Bugzilla 2960: CTFEが静的配列から動的配列へのキャストを受け付けない
- Bugzilla 3039: -vtls コンパイラフラグが man に入っていない
- Bugzilla 3165: Dの整数除算はどのような除算なのか?
- Bugzilla 3166: mod演算子の仕様で "正の" -> "非負の"
- Bugzilla 3168: 不完全型として構造体を宣言できなくなった
- Bugzilla 3170: ネストクラスの前方参照が、外のクラスが単純なクラスでないと動かない
- Bugzilla 3183: align属性の仕様が不十分
- Bugzilla 3186: http://www.digitalmars.com/d/2.0/dmd-osx.html の修正
- Bugzilla 3192: 無名delegateでasmを使うとコンパイラがクラッシュ
- Bugzilla 3196: delegateリテラルに関するエラーほとんどの後で Segfault(mtype.c)
- Bugzilla 3205: CTFE: $ が lvalue の中で使えない
- Bugzilla 3246: ローカルな配列変数に対して添字付き配列初期化しを使うと ICE(init.c)
- Bugzilla 3264: enum を使っていると -O オプション付きでコンパイルしたときに "used before set" エラーが誤って出る
D 1.046 での変更点
Jul 6, 2009新しい/変更のあった機能
- Bugzilla 3080: dmd はコンパイルエラーを stderr に出すべき、stdout ではなく
バグ修正
- マルチコアの Windows での dmd のクラッシュを修正
- Bugzilla 106: template - mixin シーケンス
- Bugzilla 810: テンプレートを前方参照できない
- Bugzilla 852: 静的ネスト関数の中の非静的ネスト関数の中のローカルクラスで ICE(toir.c)
- Bugzilla 854: 無名デリゲート内で TypeTuple を使うと glue.c で ice
- Bugzilla 1054: 退行: 循環aliasでコンパイラがスタックオーバーフロー
- Bugzilla 1343: 構造体と配列の静的初期化の様々なバグ
- Bugzilla 1358: 0x7FFFFFFF より大きい Unicode コードポイントで ICE(root.c)
- Bugzilla 1459: 非左辺値の構造体返値に値をセットしようとすると ICE(cgcs.c)
- Bugzilla 1524: CTFE中に文字列に "is" を使うと ICE(constfold.c)
- Bugzilla 1984: Assertion failure: 'e1->type' on line 1198 in file 'constfold.c'
- Bugzilla 2323: ICE(cgcs.c): テンポラリ構造体のメソッドのアドレスを取る操作
- Bugzilla 2429: std.stream.File フラグの解析と共有モードの間違い
- Bugzilla 2432: 複雑なaliasで mtype.c:125: virtual Type* Type::syntaxCopy(): Assertion `0' failed.
- Bugzilla 2603: 文字列リテラルの減算で ICE(cgcs.c)
- Bugzilla 2843: typeidを使うis式の中の不正なdot式を使うis式で ICE(constfold.c)
- Bugzilla 2884: ICE: Assert: 'template.c', line 3773, 'global.errors'
- Bugzilla 2888: [PATCH] float*2.0の高速化
- Bugzilla 2915: [Patch]: -a*-b を a*b に最適化
- Bugzilla 2923: -O が ?: で不正なコードを生成
- Bugzilla 2932: 間違った e_ehsize (36 != 52)
- Bugzilla 2952: 8要素を越えるdoubleの配列の配列演算をしたときに終了時にsegv
- Bugzilla 3003: メンバテンプレート関数呼び出しに暗黙に () を付け加える必要がある
- Bugzilla 3014: テンプレートとタプルで ICE(template.c)
- Bugzilla 3016: std.math.acos のドキュメントの間違い
- Bugzilla 3026: 不完全な静的配列初期化子でsegv
- Bugzilla 3044: 構造体のタプルコンストラクタをゼロ引数でインスタンス化すると Segfault(template.c)
- Bugzilla 3078: NaN が 0 と等しいと報告される
- Bugzilla 3114: マルチコア機でoptlinkが失敗
- Bugzilla 3117: *1 で dmd がクラッシュ
- Bugzilla 3128: Internal error: ..\ztc\cod4.c 2737
- Bugzilla 3130: 三重スターでクラッシュ
D 1.045 での変更点
May 11, 2009新しい/変更のあった機能
- Unknown W. Brackets による、Solaris 対応のためのコンパイラ/ライブラリの変更を取り込み
- std.c.linux.linux から std.c.posix.posix への Posix 関数の移行
- ClassInfo に .typeinfo を追加 Bugzilla 2836: ClassInfo から TypeInfo へのナビゲート
バグ修正
- Linuxでの命令スケジューラのバグを修正
- Bugzilla 642: "static this" がおけない場所へのmixin
- Bugzilla 713: モジュール演算子"."を使った循環したconstの定義でコンパイラがsegfault
- Bugzilla 752: Assertion failure: 'e->type->ty != Ttuple' on line 4518 in file 'mtype.c'
- Bugzilla 858: クラス内での構造体の前方参照でコンパイラがクラッシュ
- Bugzilla 884: 再帰テンプレートでSegfault
- Bugzilla 934: テンプレート内で前方参照した識別子の.mangleofをとるとSegfault
- Bugzilla 1011: 不正なimport宣言でコンパイラがsegfault
- Bugzilla 1054: 退行: 循環aliasでsegfault
- Bugzilla 1061: "asm inc [;" でコンパイラがsegfault
- Bugzilla 1195: 退行: enumメンバのaliasでコンパイラがsegfault
- Bugzilla 1305: テンプレートクラスを返すテンプレート化opCmpでコンパイラがハング
- Bugzilla 1385: 巨大な配列リテラルでスタックオーバーフロー
- Bugzilla 1428: delegateとtupleを使ったテンプレートの特殊化でSegfault
- Bugzilla 1586: 不完全なコードセグメントで DMD と GDC が segfault
- Bugzilla 1791: 無名クラス内の無名クラスと非定数の変数初期化でSegfault
- Bugzilla 1916: 不正な文字列結合でsegfault
- Bugzilla 1946: const typedef から 非const への暗黙変換をしようとするとコンパイラがクラッシュ
- Bugzilla 2048: void初期化された構造体へのメンバ代入を伴うCTFEでDMDがクラッシュ
- Bugzilla 2061: インターフェイスの多重継承で誤ったvtable呼び出し
- Bugzilla 2215: 構造体内でのenumのベース型の前方参照でコンパイラがSegfault
- Bugzilla 2309: 可変引数テンプレートに未定義テンプレート識別子を渡したもののmixinでコンパイラがクラッシュ
- Bugzilla 2346: typedef されたクラスの比較でSegfault
- Bugzilla 2821: { int, long } で C とスタック整列の互換性がなくなる
- Bugzilla 2920: 再帰テンプレートがコンパイラのスタックを吹き飛ばす
D 1.044 での変更点
Apr 9, 2009新しい/変更のあった機能
- Phobos に std.c.posix.* を追加
バグ修正
- Bugzilla 675: %a 書式が非正規化数でout-by-1バグ
- Bugzilla 2064: ボディが空のfor/foreachのmixinでSegfault
- Bugzilla 2199: 関数呼び出しの中で配列操作をするとSegfault
- Bugzilla 2203: typeof(class.template.foo) でコンパイラがクラッシュ
D 1.043 での変更点
Apr 6, 2009新しい/変更のあった機能
- FreeBSD 7.1 対応
バグ修正
- Bugzilla 2796: libstdc++-v3 への依存
D 1.042 での変更点
Mar 31, 2009新しい/変更のあった機能
- Linux と OSX 用コンパイラにレスポンスファイルを追加/li>
- Windows 版では、コマンドラインで複数のソースを指定した際には、 バックグラウンドスレッドで読み込むようになりました。 これによってコンパイル速度の向上が期待されます。
- Tomas Lindquist Olsen からの、LDC との互換性向上パッチを取り込み
- Posix バージョン識別子は、定義済み予約識別子ではありますが、 あとから設定することも可能になりました。 ビルドシステムやmakeファイルがこれを設定しようとすることがあるためです。
バグ修正
- std.math.hypot が非正規化数に対して誤動作していた
- '/' が Windows でパス区切りとして認識されていなかったバグを修正
- Bugzilla 920: scope ではなく auto を使っている古いソースを修正
- Bugzilla 1923: 同一ページへの連続するポインタに対するGCの最適化
- Bugzilla 2319: "Win32 Exception" ではあまり役に立たない
- Bugzilla 2570: Ddoc コメントのいくつかのミスに対するパッチ
- Bugzilla 2591: カスタムアロケータ new の引数は unit ではなく size_t であるべき
- Bugzilla 2689: seek が MAC OSX でおかしい
- Bugzilla 2692: x86 Linux での double の整列が不正
- Bugzilla 2705: レスポンスファイルのサイズが 64kb 以下しか扱えない
- Bugzilla 2711: 関数宣言がテンプレートで返値型がautoの場合、-H がおかしなヘッダファイルを生成
- Bugzilla 2731: 連想配列の例の間違い
- Bugzilla 2743: dumpobj が Tiger で "buss error"
- Bugzilla 2744: forstatement の間違った toCBuffer
- Bugzilla 2745: トークン tochars が lexer.c に無い
- Bugzilla 2747: funexp の不適切な toCBuffer
- Bugzilla 2750: コンパイル時にサイズのわかっているスライスのコピーの最適化
- Bugzilla 2751: scope 記憶域クラスつきのvardeclarationのtoCBufferが不正
- Bugzilla 2767: DMD が NTFS ストリームファイル名を間違ってマングリングする
- Bugzilla 2772: lib がレスポンスファイルを開けない
D 1.041 での変更点
Mar 3, 2009新しい/変更のあった機能
- ビルド可能なdmdのソースを追加
- Mac OSX 版での exp, expm1, exp2, sinh, cosh, tanh の精度向上および、 すべてのプラットフォームでの3倍の高速化
バグ修正
- Bugzilla 1629: Link error: Previous Definition Different: blablah__initZ
- Bugzilla 1662: -gありで-debuglibがないとき、libphobos にフォールバック
- Bugzilla 1681: cast(real) ulong.max == 0
- Bugzilla 2416: typedef された配列のスライスは typedef された型を保つべき
- Bugzilla 2582: DWTのコンパイル時間が有意に長くなっている
- Bugzilla 2670: std.file.read() は長さ0のファイルを読めるべき
- Bugzilla 2673: -libでコンパイルすると時々静的コンストラクタが動かない
- Bugzilla 2678: for ループは必ず止まると見なされている
- Bugzilla 2679: 嘘の "warning - " メッセージと、is(typeof({void function}())) の間違った挙動
- Bugzilla 2690: DMD が MALLOC_CHECK_ のセットでabort
D 1.040 での変更点
Feb 11, 2009新しい/変更のあった機能
- Mac OSX 対応
- bin ディレクトリと lib ディレクトリを windows, linux, osx に分離
- Windows版を使用するのにdmcのダウンロードは不要となりました。
- Mac OSX 用のバージョン識別子は version(OSX) です。version(darwin) も現在はサポートされていますが、非推奨です。
バグ修正
D 1.039 での変更点
Jan 14, 2009新しい/変更のあった機能
- long除算の速度を改善
- 定義済みversion識別子 D_Ddoc を追加。-D スイッチ指定時に有効になります。
バグ修正
- Bugzilla 2517: DDoc がクラスの abstract を省略してしまう
- Bugzilla 2518: scope(success) が実行されず RAII 変数のデストラクタも呼ばれない
- Bugzilla 2519: 不正なスライスの中で >> が使われるとSEGV
- Bugzilla 2527: aliasテンプレート引数が常に最初のインスタンス化の実引数と同じになってしまう (typeof(x).stringof 調べ)
- Bugzilla 2531: static if 内のメソッドに関して DDoc が正しく生成されない
- Bugzilla 2537: このコードでコンパイラがクラッシュ
- Bugzilla 2542: 配列のキャストがコンパイル時と実行時で挙動が違う
D 1.038 での変更点
Dec 11, 2008新しい/変更のあった機能
- IUnknown を、extern(Windows) の代わりに extern(System) を使うよう変更しました。
- Partial IFTI を追加 Bugzilla 493
バグ修正
- Bugzilla 1518: 'scope' と 'with' と未定義の 'RegExp' を使うとクラッシュ
- Bugzilla 1685: 配列の添え字が二回評価される
- Bugzilla 1963: -H が壊れたヘッダを生成
- Bugzilla 2041: 仕様はインターフェースとCOMオブジェクトの関連を暗示している
- Bugzilla 2105: パッチ追加
- Bugzilla 2468: AndAndExp と OrOrExp の結果型が間違って推論される
- Bugzilla 2489: 構造体内でのimportでassert失敗
- Bugzilla 2490: extern(C++) が構造体を戻り値として扱えない
- Bugzilla 2492: Linux で -lib オプション付きでビルドするとICE
- Bugzilla 2499: テンプレートエイリアスのデフォルト値をテンプレートのインタンスにできない
- Bugzilla 2500: テンプレート構造体メソッドが、複数のモジュールからimportされると未解決となる
- Bugzilla 2501: final override とマークされたメンバ関数は override を無視する
- Bugzilla 1752 のパッチを幾つか取り込み
D 1.037 での変更点
Nov 25, 2008バグ修正
- Bugzilla 313: 完全修飾名を使うとprivate importの抜け道になってしまう
- Bugzilla 341: object.d にドキュメント化されていない関数 void print()
- Bugzilla 929: 連想配列の配列 (uint[char[]][]) をリサイズすると無限ループ / ハング
- Bugzilla 1372: pragma(msg,) が通る
- Bugzilla 1610: Enum.stringof がenumの名前ではなくint
- Bugzilla 1663: pragma(lib, "") がlinuxで動かない
- Bugzilla 1797: ドキュメントコメント ///
- Bugzilla 2326: finalクラスのメソッドが最適化時にfinalとして処理されていない
- Bugzilla 2429: std.stream.File のフラグ解析と共有モードが間違っている
- Bugzilla 2431: Internal error: ../ztc/cgcod.c 1031 when using -O
- Bugzilla 2470: ライブラリから別のライブラリをビルドすることができない
- unittest 関数がDのリンケージにならないことがある
D 1.036 での変更点
Oct 20, 2008新しい/変更のあった機能
- rehash時にツリーの平衡化を同時に行うことで連想配列のパフォーマンスを改善
バグ修正
- Bugzilla 1229: リンカがディスクを埋めつくす
- Bugzilla 2340: テンプレートのプロパティが動かない
- Bugzilla 2365: 構造体内のconst配列でコンパイルエラー
- Bugzilla 2368: 関数を別の関数のアドレスで呼び出し、返値を呼び出すコードがrejectされる
- Bugzilla 2373: freebsd の select は 999,999 より大きい値をうけつけない
- Bugzilla 2376: charの配列リテラルの配列リテラルで CTFE が失敗
- Bugzilla 2380: static構造体初期化子が非static変数の初期化にも使えることがドキュメント化されていない
- Bugzilla 2383: デフォルト引数が、呼び出し側からは見えないprivateグローバル変数に暗黙にアクセスできることがドキュメントにない
- Bugzilla 2385: 仕様ではLinuxでは全ての構造体返値は隠れポインタで返されることになっているが、実際はレジスタが使われる
- Bugzilla 2390: intからcharへの変換で警告がでない
D 1.035 での変更点
Sep 2, 2008新しい/変更のあった機能
バグ修正
- Bugzilla 1627: _ctor というメソッドでICE
- Bugzilla 1633: !is で、意味の通らない "C style cast illegal" というエラーメッセージ
- Bugzilla 1637: 退行: std/math2.d の新しい単体テストの失敗。cosh() の動作がおかしい
- Bugzilla 1763: EndianStream が ubyte/byte の read/write でうまく動かない。簡単なfix。
- Bugzilla 1771: dmd が linux で動かない
- Bugzilla 1773: 長すぎる整数リテラル
- Bugzilla 1785: 不正な配列リテラルを混ぜると無限ループ
- Bugzilla 2176: Assertion failure: 'sz == es2->sz' on line 1339 in file 'constfold.c' (異なる型の文字列の結合)
- Bugzilla 2183: std.c.stdlib のフォーマットが変
- Bugzilla 2232: オブジェクトファイルが -inline でコンパイルされたとき生成されるコードがおかしい
- Bugzilla 2241: DMD がアボート
- Bugzilla 2243: const bool = is(関数リテラル) がおかしいt
- Bugzilla 2262: -inline で -lib ライブラリが壊れる
- Bugzilla 2286: movmskpd のコンパイル結果が拙い
- Bugzilla 2308: 存在しない変数に対するforeachでCTFEがクラッシュ
- Bugzilla 2311: テンプレート内の静的デストラクタが決して呼び出されない
- Bugzilla 2314: 無名クラス変数のインスタンス化でクラッシュ
- Bugzilla 2317: インラインアセンブラの offsetof で: Internal error: ../ztc/cod3.c 2651
D 1.034 での変更点
Aug 7, 2008新しい/変更のあった機能
- 配列演算に対応
バグ修正
- 衝突を減らすために、ライブラリ生成時にはモジュール名にハッシュを追加するようにしました
- Bugzilla 1622: TypeInfo_Struct.compare へのパラメタが逆になっている?
- Bugzilla 2216: 長さ0の静的配列の静的配列に対するコード生成がおかしい
- Bugzilla 2223: エラーメッセージのタイポ
- Bugzilla 2242: Linux のシステムこー路が GC でキャンセルされる
- Bugzilla 2247: if (auto o = ...) {} に対し不正なヘッダが生成される
- Bugzilla 2248: 拡張子 .di はサポートされるべき
- Bugzilla 2250: user32.lib と kernel32.lib の更新
- Bugzilla 2254: 一気に実行ファイルサイズが3倍に?!
- Bugzilla 2258: Docs -> Inline Assembler -> Operand Types -> qword が抜けている
- Bugzilla 2259: Assertion failure: '0' on line 122 in file 'statement.c'
- Bugzilla 2269: D BUG: 複素数のコサイン
- Bugzilla 2272: synchronized 属性のドキュメント
- Bugzilla 2273: コンマの後に空白が挿入されない
D 1.033 での変更点
Jul 11, 2008新しい/変更のあった機能
バグ修正
- Bugzilla 2207: deprecateとオーバーロード解決
- Bugzilla 2208: deprecateな関数宣言でdeprecateな型を使えない
- Bugzilla 2209: offsetofのドキュメントでtypo
- Bugzilla 2212: phobos自身は -w スイッチonでもコンパイル通るべき
D 1.032 での変更点
Jul 9, 2008新しい/変更のあった機能
- ランタイムライブラリ内での使用のために、プロパティ .__vptr と .__monitor をクラスオブジェクトに追加。
バグ修正
- D.announce/12322: mixin の退行
- Bugzilla 203: std.format.doFormat() がUnicode文字列に対してパディングがおかしい
- Bugzilla 211: mixin引数や無名メソッドをaliasしたときのリンクエラー
- Bugzilla 224: 正しくない警告 "no return at end of function"
- Bugzilla 252: -w と switch の return で不適切な "no return at end of function" 警告
- Bugzilla 253: 不正な <dl> タグが Ddoc で生成される
- Bugzilla 294: DDoc: 関数テンプレートで不完全なドキュメントが二重生成される
- Bugzilla 398: 二重に再帰したmixinでコンパイルが止まらない
- Bugzilla 423: dmd が空のコマンドライン引数を無視する
- Bugzilla 515: .offsetof の適用可能な式についてドキュメントがおかしい
- Bugzilla 520: invariant から public 関数が呼べてしまう
- Bugzilla 542: deprecated な型(クラス以外)が関数引数に使われていても警告されない
- Bugzilla 543: deprecated な型が返値型に使われていても警告されない
- Bugzilla 544: deprecated な型(クラス以外)の変数が警告されない
- Bugzilla 545: deprecated な構造体、共用体、列挙体やtypedefの組み込みstaticプロパティへのアクセスが警告されない
- Bugzilla 547: deprecated なメンバ変数への明示的なオブジェクト参照を通したアクセスが警告されない
- Bugzilla 548: deprecated な enum へのアクセスが警告されない
- Bugzilla 566: テンプレートで非staticメンバや関数をクラスに追加してもエラーにならない
- Bugzilla 570: おかしな再帰的mixinエラー
- Bugzilla 571: クラスインスタンスメンバテンプレートが奇妙な値を返す
- Bugzilla 572: typeofでテンプレートインスタンスを使うと構文解析エラー
- Bugzilla 581: ドットでインスタンス化したテンプレートで行番号無しエラー表示
- Bugzilla 617: IFTI 時に非テンプレート引数に対して通常の promotion 規則が適用されていない
- Bugzilla 870: テンプレートに対する矛盾したエラーメッセージ
- Bugzilla 951: 行番号無しエラー: デフォルトコンストラクタのないクラスから派生したクラスにコンストラクタがない
- Bugzilla 1097: 行番号無しエラー: 要素型のサイズの違う配列間のキャスト
- Bugzilla 1158: 行番号無しエラー: 関数スコープの外での不正なmixin
- Bugzilla 1176: 行番号無しエラー
- Bugzilla 1187: 二段階mixinの構文エラーでSEGV
- Bugzilla 1194: fcmov* のコード生成がおかしい
- Bugzilla 1207: デストラクタに関するドキュメントが混乱を招く
- Bugzilla 1341: typeof(int) はおそらく正当?
- Bugzilla 1601: shr と shl のエラーメッセージに行番号が無い
- Bugzilla 1612: インラインアセンブリでの無名ラベルで行番号無しエラー
- Bugzilla 1907: 行番号無しエラー
- Bugzilla 1912: 行番号無しエラー (不正な値引数のタプル)
- Bugzilla 1936: 行番号無しエラー (配列の次元溢れ)
- Bugzilla 2161: コンパイラを、_adEq と _adCmp に要素の TypeInfo ではなく配列の TypeInfo を渡させる変更
- Bugzilla 2166: さらに Phobos でコンパイルできない物達
- Bugzilla 2178: 行番号無しエラー3つ: typeof
D 1.031 での変更点
Jun 17, 2008新しい/変更のあった機能
- -fPIC スイッチが指定されたことを示す バージョン識別子 D_PIC を追加
バグ修正
- Bugzilla 1383: 関数テンプレート暗黙インスタンス化 と 型安全可変個引数delegate の組み合わせがうまくいかない
- Bugzilla 1559: version 文の外のコードが消える
- Bugzilla 1675: OMF オブジェクトファイルで "Identifier too long" エラー
- Bugzilla 1963: -H で壊れたヘッダができる
- Bugzilla 2111: 基底クラスの tupleof にアクセスするときアクセス保護が正しく解決されていない
- Bugzilla 2118: ドキュメントで string と invariant(char[]) の使い方が一貫していない
- Bugzilla 2123: 無名クラスがクラッシュ
- Bugzilla 2132: CTFE: ~= がコンパイル時評価できない, D2のみ
- Bugzilla 2136: typeof(super(...)) がコンストラクタ呼び出しとしてカウントされている
- Bugzilla 2140: 中身の無い static if を最後の文にすると他の部分がスキップされる
- Bugzilla 2143: ミックスインで導入された識別子が static if に認識されない
- Bugzilla 2144: 'is' がクラスと配列以外では '==' と同じとされているが opEquals が呼ばれない
- Bugzilla 2146: テンプレート内で定義された 'static this' が複数回実行される
- Bugzilla 2149: -H オプションでできる di ファイルでは auto 変数宣言から "auto" が抜けている
D 1.030 での変更点
May 16, 2008新しい/変更のあった機能
- ライブラリ生成用の -lib スイッチ追加。
- マニュアル閲覧用の -man スイッチ追加
- 実行ファイルの生成時には、 1モジュール1オブジェクトファイルではなく、 全モジュールを含んだオブジェクトファイルを生成するように変更
バグ修正
- Bugzilla 2031: Documentation: テンプレートの値引数
- Bugzilla 2032: スタックをクラス上に作る場合に関数ドキュメントが直感的でない
- Bugzilla 2033: -g + 循環参照 => dmdのハング
- Bugzilla 2039: -ignore スイッチがドキュメントから抜けている
- Bugzilla 2044: -g で DMD がハング
- Bugzilla 2055: (ICE) 構造体初期化子が多すぎるとコンパイラがクラッシュ
- Bugzilla 2058: クラスのメンバ関数に渡される隠し引数について触れるべき
- Bugzilla 2067: 無名クラスからの呼び出しでアクセス違反
- Bugzilla 2071: 仕様では、二つのポインタに関する算術演算について触れられていない
- Bugzilla 2075: 仕様では、配列リテラルの格納方法について触れられていない
- Bugzilla 2084: ?: 演算子が最も狭い型を計算していない
- Bugzilla 2086: string と char[] の関係を明示すべき
- Bugzilla 2089: CTFE とタプル添え字の問題
- Bugzilla 2090: タプルのメンバになっているテンプレートインスタンスをaliasできない
D 1.029 での変更点
Apr 23, 2008新しい/変更のあった機能
- 未対応のpragmaを無視する -ignore スイッチ追加
- 未対応プラグマを -v スイッチで表示するようになりました
- Benjamin Shropshire によるドキュメントの修正を取り込み
バグ修正
- Bugzilla 1712: インターフェイスの vtbl[0] が対応する Interface* になっていない
- Bugzilla 1741: 静的配列を添字型とする連想配列でクラッシュ
- Bugzilla 1905: foreach のドキュメントに一貫性がない
- Bugzilla 1906: foreach が巨大な配列で使えない
- Bugzilla 1908: closure14.d 修正
- Bugzilla 1935: DMD の .zip 内の std.recls のサンプルは古い
- Bugzilla 1967: getDirName が windows で altsep を使っていない
- Bugzilla 1978: 間違った vtable 呼び出し
- Bugzilla 1991: Dmd がハング
- Bugzilla 2019: 一要素の配列リテラルの結合がうまくいかない
D 1.028 での変更点
Mar 6, 2008新しい/変更のあった機能
- クラス型と null の演算子比較をコンパイル時エラーとしました
バグ修正
- dwarf の DT_AT_upper_bound に関するバグを修正
- Bugzilla 756: タプルに対する IFTI がタプルが最後の引数の時しか働かない
- Bugzilla 1454: alias引数があると IFTI が正しく推論しない
- Bugzilla 1661: 整数パラメタのあるテンプレートを特殊化できない
- Bugzilla 1809: template.c:2600
- Bugzilla 1810: MmFile の無名ファイルマッピングが win32 で動作しない
- Bugzilla 1819: synchronized のあとに retun 文が無いという無駄な警告
- Bugzilla 1828: スレッド周りの問題幾つか
- Bugzilla 1833: std.c.windows.windows は定数にenumを使うか、もっと選択的に extern(Windows) を使うべき
- Bugzilla 1836: インラインアセンブラでenum値をパラメタとして使えない
- Bugzilla 1837: dmdが渡されたパラメタファイルの中身を延々表示してコンソールを溢れさせるのをやめて
- Bugzilla 1843: 構造体の前方参照時に、行番号無しの嘘の到達不可能文警告がでる
- Bugzilla 1850: コンパイラが小文字のレジスタ名を受け入れる
- Bugzilla 1852: 構造体にキャストしたときopCallが見失われる
- Bugzilla 1853: opCmp のドキュメントには例が必要
- Bugzilla 1857: プロファイル時に実行時SEGV - 不正なアドレスにジャンプ
- Bugzilla 1862: asm: [ESI+1*EAX] は正しいアドレッシングモードなはず
- Bugzilla 1864: finalクラステンプレートで変数が間違ってfinal宣言される
- Bugzilla 1865: エスケープシーケンスが変
- Bugzilla 1877: std.math.atan2 のドキュメントに間違い
- Bugzilla 1879: 'scope' と 'static if' でコンパイラがセグメント違反
- Bugzilla 1882: Internal error: ..\ztc\cod1.c 2529
D 1.027 での変更点
Feb 18, 2008新しい/変更のあった機能
- auto interface を再度有効にしました
バグ修正
- aliasされたテンプレート引数のddocでの表示を改善
- Bugzilla 1072: CTFE: 増分式が空のfor文でクラッシュ
- Bugzilla 1435: DDoc: DDOC_PSYMBOL をそこかしこに適用しすぎ
- Bugzilla 1825: ローカルなインスタンス化と関数のネスト
- Bugzilla 1837: dmd が渡されたパラメタファイルの内容を表示してコンソールを溢れさせるのをやめる
- Bugzilla 1842: Linuxでのコンパイル時に、意味のないリンカコマンドが出力される
D 1.026 での変更点
Jan 20, 2008新しい/変更のあった機能
- WinMain と DllMain をテンプレートのmixinで定義可能になりました
バグ修正
- Bugzilla 1697: -O スイッチで Internal error: ..\ztc\cgcod.c 2322
- Bugzilla 1707: is式のテンプレート引数リスト内で '==' を使うとsegfault
- Bugzilla 1711: delegate リテラルのtypeofがテンプレート引数として使えない
- Bugzilla 1718: 終了コード 5 でおかしな終了
- Bugzilla 1719: スコープつきのinterfaceのインスタンスでコンパイラがクラッシュ、あるいは不安定なコードを生成
- Bugzilla 1724: Internal error: toir.c 177
- Bugzilla 1725: std.stream.BufferedFile.create は FileMode.OutNew を使うべき
- Bugzilla 1767: 正しいコードが通らない
- Bugzilla 1769: 例外に関するページにtypo
- Bugzilla 1773: 巨大すぎる整数リテラル
- Bugzilla 1779: 2個以上の型引数の推論でコンパイラがクラッシュ
- Bugzilla 1783: DMD 1.025 が構造体、テンプレート、aliasに関するコードでassertで停止
- Bugzilla 1788: dmd が情報を出さずにsegfault
D 1.025 での変更点
Jan 1, 2008新しい/変更のあった機能
バグ修正
- Bugzilla 1111: 同じenum内の別のメンバを初期化子で参照していると、そのenumの型でなく基底型として扱われる
- Bugzilla 1720: std.math.NotImplemented のメッセージにスペースが足りない
- Bugzilla 1738: 構造体に関するエラーで行番号が出ない
- Bugzilla 1742: CTFEがうまくいかないテンプレート関数がある
- Bugzilla 1743: CTFEのコードで interpret.c:1421 assertion failure
- Bugzilla 1744: CTFE: voidを返す関数を変数に代入するとクラッシュ
- Bugzilla 1749: std.socket が strerror のせいでスレッド安全でない
- Bugzilla 1753: 再帰的CTFE関数で文字列が壊れる
D 1.024 での変更点
Nov 27, 2007新しい/変更のあった機能
- カバレッジ解析の方法を変更して、 モジュール感の依存順序に影響を受けないようにしました。
バグ修正
- Bugzilla 70: valgrind: Conditional jump or move depends on uninitialised value(s) in elf_findstr
- Bugzilla 71: valgrind: Invalid read of size 4 in elf_renumbersyms
- Bugzilla 204: abstractクラスをインスタンス化しようとした時のエラーメッセージは改善すべき
- Bugzilla 1508: dmd/linux テンプレートシンボルの問題
- Bugzilla 1656: 不正な宣言が通ってしまう
- Bugzilla 1664: (1.23).stringof が拙いコードを生成
- Bugzilla 1665: Internal error: ..\ztc\cod2.c 411
D 1.023 での変更点
Oct 31, 2007新しい/変更のあった機能
- サイズ 16 バイト以下の static data segment のデータは paragraph align されるようになりました
バグ修正
- Bugzilla 318: wait が Linux でスレッドリソースを解放しない
- Bugzilla 322: メモリの割り当て/解放を行うスレッドを実行すると、GCでスレッド停止エラーが起こりうる
- Bugzilla 645: std.thread.Thread.pauseAll でのスレッド間競合
- Bugzilla 689: 仕様書のサンプルからprintfを取り除こう!
- Bugzilla 697: アセンブラの db, dw 等で定数畳み込みが動作していない
- Bugzilla 706: 関数内の配列リテラルに関する型推論が正しくない
- Bugzilla 708: インラインアセンブラ: "CVTPS2PI mm, xmm/m128" がコンパイルできない
- Bugzilla 709: インラインアセンブラ: "CVTPD2PI mm, xmm/m128" がコンパイルできない
- Bugzilla 718: Internal error: ../ztc/cgcod.c 562
- Bugzilla 723: クラス定義を関数レベルでmixinする不正なコードで: func.c:535: virtual void FuncDeclaration::semantic3(Scope*): Assertion `0' failed
- Bugzilla 725: expression.c:6516: virtual Expression* MinAssignExp::semantic(Scope*): Assertion `e2->type->isfloating()' failed.
- Bugzilla 726: "override" を mixin するとエラー行番号が変
- Bugzilla 729: SwitchBody に scope(...) 文を書くとコンパイラがsegv
- Bugzilla 733: std.conv.toFloat がエラーをcatchしない
- Bugzilla 1258: 配列結合時にガベージコレクタがメモリを見失う
- Bugzilla 1478: libcのネットワークAPIのスレッド安全性問題
- Bugzilla 1480: std.stream がいたるところで新しく追加されたoverrideの警告を出す
- Bugzilla 1483: スレッド内でのエラー出力がstderrになっていない
- Bugzilla 1491: 死んだソケットにデータを送ったときのSIGPIPEを抑制
- Bugzilla 1557: std.zlib がメモリを ubyte[] でなく void[] で割り当てているためメモリリーク
- Bugzilla 1562: テンプレートalias引数の推論失敗
- Bugzilla 1575: タプルの代入ができない
- Bugzilla 1593: ICE: 関数内の空のreturn文でコンパイラがクラッシュ
- Bugzilla 1613: DMD が構文エラーでハング
- Bugzilla 1618: std\system.d に typo
D 1.022 での変更点
Oct 1, 2007新しい/変更のあった機能
バグ修正
- std.boxer の Object のボックス化 (単体テスト失敗) を修正
- std.demangle を、隠しパラメータ (thisと、delegateのコンテキストポインタ) を表示しないように修正
- Bugzilla 217: internal/object.d で typeof が正常動作していない
- Bugzilla 218: 古いビット配列のコードを削除
- Bugzilla 223: 未初期化変数に関するエラーメッセージがエラー箇所を表示しない
- Bugzilla 278: dmd.conf の検索パスが動作しない
- Bugzilla 479: 配列リテラルと文字列をコンパイル時比較できない
- Bugzilla 549: deprecatedクラスからの派生が検出されない
- Bugzilla 550: 型のサイズを超える量のシフトが許されている
- Bugzilla 551: 剰余演算子虚数や複素数に対しても動いている
- Bugzilla 556: is (Type Identifier : TypeSpecialization) が期待されるとおりに動かない
- Bugzilla 668: *.di ファイルを使うとモジュールコンストラクタの実行順序が変
- Bugzilla 1125: asmでサイズ指定なしにタプルを使うとsegv
- Bugzilla 1437: dmdのクラッシュ: "Internal error: ..\ztc\cod4.c 357"
- Bugzilla 1474: 退行: 初期化子つきの const struct がテンプレートのalias引数として認識されない
- Bugzilla 1484: enumの前方参照でDMDがクラッシュ
- Bugzilla 1488: asm内でタプルを使うとおかしなコードが生成される
- Bugzilla 1510: ICE: Assertion failure: 'ad' on line 925 in file 'func.c'
- Bugzilla 1523: 構造体リテラルとtypedefを合わせて使えない
- Bugzilla 1531: typedefされたクラスのフィールドにアクセスできない
- Bugzilla 1537: Internal error: ..\ztc\cgcod.c 1521
- Bugzilla 1609: TypeInfo_Typedef の next() の実装が正しくない
D 1.021 での変更点
Sep 5, 2007新しい/変更のあった機能
- コマンドラインスイッチ -defaultlib と -debuglib を追加
- Bugzilla 1445: デフォルトライブラリオプションの sc.ini / dmd.conf への追加
- trace_term() を object.d に追加。(Bugzilla 971 の修正: アプリケーションがexitで終了するとプロファイル結果が生成されない)
- モジュールの静的コンストラクタ/デストラクタを複数定義可能にしました
バグ修正
- Bugzilla 961: std.windows.registry のスタック破壊
- Bugzilla 1315: CTFE が構造体配列をデフォルト初期化しない
- Bugzilla 1363: for文内の構造体に関するコンパイル時実行の問題
- Bugzilla 1375: CTFE がnull配列でエラー
- Bugzilla 1378: 配列リテラル内での価数呼び出しでコンパイラがクラッシュ
- Bugzilla 1384: opCallメンバのない構造体を関数のように呼び出すとコンパイラがSEGV
- Bugzilla 1388: 複数の静的コンストラクタがモジュールに定義できる
- Bugzilla 1414: コンパイラが構造体関係のCTFEでクラッシュ
- Bugzilla 1423: Registry: 値が壊れる
- Bugzilla 1436: std.date.getLocalTZA() がWindowsで夏時間の時に間違った値を返す
- Bugzilla 1447: CTFE がクラスの静的関数で動作しない
- Bugzilla 1448: コンソールへの UTF-8 が全く動かない
- Bugzilla 1450: Registry: invalid UTF-8 sequence
- Bugzilla 1460: 正しいコードでコンパイラがクラッシュ
- Bugzilla 1464: "static" foreach でCTFEが動かなくなる
D 1.020 での変更点
Jul 23, 2007新しい/変更のあった機能
バグ修正
- extern (System) の修正
D 1.019 での変更点
Jul 21, 2007新しい/変更のあった機能
- 型 dchar を Codeview 拡張で 0x78 と表現するよう変更
- extern (System) を追加
- Bugzilla 345: std.uni.isUniAlpha の Unicode 5.0.0 対応
バグ修正
- Bugzilla 46: 同梱されているmanファイルが更新されていない
- Bugzilla 268: SocketSet とクラスのバグ
- Bugzilla 406: std.loader が Linux で動かない
- Bugzilla 561: インターフェースのインスタンスを作ろうとするとおかしなエラーがダブる
- Bugzilla 588: std.demangleの、ネストしたシンボルとLazy引数対応
- Bugzilla 668: *.di ファイルを使うと静的コンストラクタの実行順がおかしい
- Bugzilla 1110: std.format.doFormat + toString()のない構造体 == クラッシュ
- Bugzilla 1199: コンパイル時に空の配列や文字列を添え字参照すると奇妙なメッセージがでる
- Bugzilla 1300: コンパイル時関数内での構造体に問題
- Bugzilla 1306: extern (Windows) は、変数に対する extern (C) と同じように動作すべき
- Bugzilla 1331: ヘッダファイル生成で、pragmaに ";" の代わりに ":" が出力されている
- Bugzilla 1332: Internal error: ../ztc/cod4.c 357
- Bugzilla 1333: -inline ICE: 配列の要素をクラス/構造体内のネスト関数内で内部クラスのコンストラクタに渡すと発生
- Bugzilla 1336: unittest内で宣言されたクラスをテンプレートクラスから構築しようとすると内部エラー
D 1.018 での変更点
Jul 1, 2007新しい/変更のあった機能
バグ修正
- Bugzilla 540: ネストしたテンプレートメンバ関数のエラー - "function expected before ()"
- Bugzilla 559: メソッドのfinalが効果がない
- Bugzilla 627: 文字列を文字列の配列に ~ で結合すると壊れる
- Bugzilla 629: エラーメッセージが変 "Can only append to dynamic arrays"
- Bugzilla 639: タプル引数でdmdがICE
- Bugzilla 641: テンプレート引数で複雑な文字列処理をするとdmdがICE
- Bugzilla 657: version() が無視される
- Bugzilla 689: 仕様書からprintfをなくそう!
- Bugzilla 1103: metastrings.ToString が long > 0xFFFF_FFFF で動かない
- Bugzilla 1107: CodeView: bool に対して間違った CV 型
- Bugzilla 1118: switch 文の邪悪な動作
- Bugzilla 1186: bind にちょっと修正が必要
- Bugzilla 1199: 空配列や文字列をコンパイル時に添え字参照すると奇妙なエラーメッセージ
- Bugzilla 1200: DMDのクラッシュ: 偽の ConditionalStatement のみを含む文で時々
- Bugzilla 1203: ループ内で無名クラスを作れない
- Bugzilla 1204: コンパイル時実行中に構造体を使うとsegv
- Bugzilla 1206: 構造体を前方参照するメソッドのあとでthis()を定義するとコンパイラが死ぬ
- Bugzilla 1207: デストラクタの仕様が混乱を招く
- Bugzilla 1211: mixin("__LINE__") が間違った値になる
- Bugzilla 1212: dmd が変な行番号を生成
- Bugzilla 1216: コンパイル時実行の外で結合を行うと 'non-constant expression'
- Bugzilla 1217: ドル ($) が文字配列の[]以外の箇所では非定数と見なされる
- Bugzilla 1219: long.max.stringof が壊れている
- Bugzilla 1224: CTFE中のassertでコンパイルが止まらない
- Bugzilla 1228: クラス不変条件はオブジェクトが完全に構築されるまでは呼ばれるべきでない
- Bugzilla 1233: std.string.ifind(char[] s, char[] sub) がASCII外の文字列で失敗することがある
- Bugzilla 1234: "Occurrence" のスペルミス
- Bugzilla 1235: std.string.tolower() がutf8文字列で失敗することがある
- Bugzilla 1236: 浮動小数点数の文法が不完全
- Bugzilla 1239: 空のタプルが可変個引数テンプレート関数に渡されるとICE
- Bugzilla 1242: DMD AV
- Bugzilla 1244: 配列のlengthの型が未定義
- Bugzilla 1247: インドのタイムゾーン重宝がない
- Bugzilla 1285: 例外のtypedefがcatchで区別されない
- Bugzilla 1287: タプルの配列上をループすると "glue.c:710: virtual unsigned int Type::totym(): Assertion `0' failed."
- Bugzilla 1290: real, imaginary, ? :, += を使ったときのICE
- Bugzilla 1291: テンプレートから返されたクラスの .stringof が動作しない
- Bugzilla 1292: テンプレート引数推論が動作しない
- Bugzilla 1294: 引数で渡された構造体配列のフィールドアクセスで正しくないコードが生成される
- Bugzilla 1295: 字句解析の文法にいくつか細かい間違い
D 1.017 での変更点
Jun 25, 2007新しい/変更のあった機能
- __VENDOR__ と __VERSION__ を追加
- 変数の .init プロパティはその変数を初期化した値ではなく、 その型のデフォルト値を返すようになりました
バグ修正
- std.compiler は自動更新されるように修正
- CTFE時 e++ と e-- のバグを修正
- Bugzilla 1254: void初期化された引数をコンパイル時関数に渡すと動作しない
- Bugzilla 1256: シンボルを渡す "with" 文
- Bugzilla 1259: inline ビルドで不正なエラーメッセージ "Error: S() is not an lvalue" が出現
- Bugzilla 1260: またタプルのバグ
- Bugzilla 1261: 過剰なエラーメッセージからの退行
- Bugzilla 1262: リテラルで初期化された構造体変数を.initと比較すると再初期化されてしまう
- Bugzilla 1263: テンプレート関数のオーバーロードが、テンプレートとそうでないクラスの両方に対してなされていると失敗する
- Bugzilla 1268: 構造体リテラルで静的配列を初期化しようとするとおかしな結果になる
- Bugzilla 1269: void初期化された配列への代入でCTFE時にコンパイラがクラッシュ
- Bugzilla 1270: -inline で ICE
- Bugzilla 1272: 新しい 1.0 セクションの問題点
- Bugzilla 1276: static assert のメッセージがエスケープされた文字で表示される
- Bugzilla 1283: writefln: 以下の変数にフォーマッタが適用される
D 1.016 での変更点
Jun 14, 2007新しい/変更のあった機能
- コンパイラの変更はありません
- D 2.0 との互換性のため、alias string, wstring, dstring を追加
バグ修正
D 1.015 での変更点
Jun 5, 2007新しい/変更のあった機能
バグ修正
- 標準エラー出力に出る例外のメッセージに\nが抜けていたのを追加
- コンパイル時関数実行の際の構造体のデフォルト初期化バグ修正
- Bugzilla 1226: 構造体リテラルでICE
- GCのメモリ破壊問題を修正
D 1.014 での変更点
Apr 26, 2007新しい/変更のあった機能
- 連想配列リテラル 追加
- 構造体リテラル 追加
- CTFE時に配列の要素への代入が可能になりました
バグ修正
- Bugzilla 1000: writefln がネストした配列でエラー
- Bugzilla 1143: Assertion failure: '0' on line 850 in 'template.c' - IFTIテンプレート引数の特殊化で
- Bugzilla 1144: template mixin で DMD がクラッシュ
- Bugzilla 1146: mixin + assert() でコンパイラがクラッシュ
- Bugzilla 1153: dmd が assert 失敗
- Bugzilla 1159: いろいろな mixin で "CompileExp::semantic" メッセージがでる。時々DMDがクラッシュ
- Bugzilla 1174: 非ゼロ初期化子を持つenumの配列を作るとプログラムがハング
- Bugzilla 1177: $ がCTFE関数の中で動作しない
- Bugzilla 1180: 巨大な割り当て要求でGCが失敗
- Bugzilla 1189: Webページのタイトルを逆に
D 1.013 での変更点
Apr 19, 2007新しい/変更のあった機能
バグ修正
- std.format で静的配列を扱うとクラッシュする問題を修正
- Bugzilla 582: 混合タプルをスライスできない
- Bugzilla 594: 配列リテラルのチェックを静的にできない
- Bugzilla 595: 配列/配列リテラル に静的に要素追加できない
- Bugzilla 997: [退行] 構造体を返す関数で、条件に応じて他の関数の結果をそのまま返すものが正しく動かない (NRVOのバグ?)
- Bugzilla 1090: attributeの仕様: "}" と "end of scope"
- Bugzilla 1091: クリティカルセクションに割り当てられたメモリサイズが変
- Bugzilla 1094: switchのバグ
- Bugzilla 1096: toUTCString + UTCtoLocalTime + d_time_nan で妙なハング
- Bugzilla 1098: d/dmd/expression.c で math.h と port.h にシンボル衝突
- Bugzilla 1119: Internal error: ../ztc/cgcod.c 2190 (template instantiation)
- Bugzilla 1121: テンプレート関数でコード生成がassert
- Bugzilla 1132: DMDがリンカをコマンドラインで呼び出している
- Bugzilla 1134: 不正な呼び出し規約が使われている
- Bugzilla 1135: 予約語 invariant の構文解析が大変なことに
- Bugzilla 1147: phobos/std/file.d の typo: 4069 じゃなくて 4096
- Bugzilla 1148: 構造体を返す関数で問題
- Bugzilla 1150: コンパイラが間違ったコードを生成
- Bugzilla 1156: インストール済みライブラリは違った順序で渡す必要がある
- Bugzilla 1163: 複数の変数をvoid初期化できない
D 1.012 での変更点
Apr 12, 2007新しい/変更のあった機能
バグ修正
- D.announce/8190 が -v1 で動くようにしました
- D.announce/8193
- Bugzilla 532: ローカル変数のaliasをテンプレート引数にしたときのマングリング名が間違っている
- Bugzilla 1068: mixinと関数テンプレートでスタック破壊
- Bugzilla 1089: TypeInfo_Pointer.compareに安全でないポインタ比較
- Bugzilla 1127: -v1 でも予約語ref, macroが無効にならない
D 1.011 での変更点
Apr 11, 2007新しい/変更のあった機能
- Codeview シンボルデバッグ情報の出力として、LF_OEM タイプを出すように拡張
- Dwarf シンボルデバッグ情報の出力として、DW_TAG_darray_type DW_TAG_aarray_type, DW_TAG_delegate 型を出力するように拡張
- 予約語 ref と macro を追加
- final と宣言すると派生できないクラスとなるようにしました
- 変数に対する final 宣言が動作するようになりました
- inout の代わりに ref が使えるようになりました
- 型省略宣言で、 auto a=1,c=2; のように複数の変数を宣言できるようになりました
バグ修正
- 同じテンプレート引数を持つが、 関数引数が違う関数テンプレートの オーバーロードの問題を修正
- テンプレートのインスタンスに対するテンプレート特殊化の、 型推論の問題を修正
- assert template.c(2956) s->parent 修正
- typeofに対して .property が動くようにしました
- Linuxのバージョンによって DW_AT_comp_dir の出力にバグがあったのを修正
- D.announce/8027
- D.announce/8047
- D/51800
- Bugzilla 1028: インラインアセンブラでタプルを使うとsegv
- Bugzilla 1052: DMD 1.009 - aliasing functions from superclasses may result in incorrect conflicts
- Bugzilla 1080: std.windows.registry でリンク失敗
- Bugzilla 1081: -O オプション付きで real を使うとdmdがバグったコードを出す
- Bugzilla 1082: .offsetof の型がsigned intだかsize_tの方が適切
- Bugzilla 1086: CodeView: 文字列スイッチに行番号がない
- Bugzilla 1092: compiler crash in ..\ztc\cod1.c 2528
- Bugzilla 1102: switch case にテンプレート引数が使えない
- Bugzilla 1108: int配列の要素がコンパイル時実行で取り出せない
- Bugzilla 1122: dmd が出すエラーメッセージの行番号が変
D 1.010 での変更点
Mar 24, 2007新しい/変更のあった機能
- 複数のパラメタによる テンプレートの部分特殊化に対応
- 文字列からクラスオブジェクトを生成する Object.factory(char[] classname) メソッドを追加
- std.gc.malloc(), std.gc.extend(), std.gc.capacity() を追加
- std.string.isEmail() と std.string.isURL() を追加
- std.stdio.readln() を追加
- 配列のリサイズと追加の際の gc のパフォーマンス向上
- Bugzilla 64: catchされなかったエラーの出力は標準エラー出力にされるべき
- Ddocの定義済みマクロ DOCFILENAME を追加
バグ修正
- http://digitalmars.com/d/comparison.html のリンク切れ を修正
- CTFE と配列リテラルの問題を修正
- Bugzilla 931: D Strings vs C++ Strings のページに間違い
- Bugzilla 935: extern グローバル C 変数
- Bugzilla 948: operatoroverloading.html - Rationale の部分が古いし情報不足
- Bugzilla 950: ファイル名と行番号がない: conflict between implicit length in [...] and explicit length declared in the scope
- Bugzilla 959: ddoc のちょっとした問題
- Bugzilla 1056: CTFE内で pragma(msg) するとSEGV
- Bugzilla 1062: typedefされたクラスをcatchできない
- Bugzilla 1074: std.c.locale ページへのデッドリンク
D 1.009 での変更点
Mar 10, 2007新しい/変更のあった機能
バグ修正
- D/49928 1
- D.announce 7563
- Bugzilla 146: テンプレートのDWARFデバッグ情報のファイル名が変
- Bugzilla 992: static ifでCTFE失敗
- Bugzilla 993: float引数についてABIのドキュメントが間違っている
- Bugzilla 995: タプル/const配列の要素をreturnするコンパイル時間数
- Bugzilla 1005: dmd: tocsym.c:343: virtual Symbol* FuncDeclaration::toSymbol(): Assertion `0' failed.
- Bugzilla 1009: CodeView: out/inout 引数が void* になる
- Bugzilla 1014: -Hでヘッダを生成すると文字リテラルのエスケープがおかしい
- Bugzilla 1016: 再帰関数でCTFE失敗
- Bugzilla 1017: CTFEが (string == string)をサポートしていない
- Bugzilla 1018: regression: Error: divide by 0
- Bugzilla 1019: regression:ファイル名と行番号がない: Error: array index X is out of bounds [0 .. Y]
- Bugzilla 1020: regression: mov EAX, func
- Bugzilla 1021: CTFE と void 関数
- Bugzilla 1022: CodeView: typeleaf と datasymbol で union が長さゼロになっている
- Bugzilla 1026: 長さゼロのタプルの長さを調べるとdmdがSEGV
- Bugzilla 1030: 1行でICE; delegate内の構造体
- Bugzilla 1038: 明示的クラスキャストが1.007で変になっている
D 1.007 での変更点
Feb 20, 2007新しい/変更のあった機能
- 比較演算子は左右に結合しなくなりました; 比較, 同値, 同一, in 演算子は全て同じ優先順位となります
- out と inout 引数をコンパイル時関数実行で使用可能になりました
- .dup プロパティが コンパイル時関数実行で使用可能になりました
- lib を更新し、 シンボルテーブルに COMDAT を挿入するようにしました
- クラス参照は暗黙に void* へと変換できなくなりました
バグ修正
- D/48806 クラッシュ
- D/48811
- D/48845
- D/48869
- D/48917
- D/48953
- D/48990
- D/49033
- D.announce/7496
- Bugzilla 968: コンパイル時実行で内部コンパイラエラー
- Bugzilla 974: コンパイル時実行の括弧のバグ
- Bugzilla 975: コンパイル時のconst配列でdmdがクラッシュ
- Bugzilla 980: 空配列に文字を結合しようとすると、dmdがコンパイル時実行できないと判断する
- Bugzilla 981: templateの外で引数なし関数を呼ぶ形でコンパイル時関数実行ができない
- Bugzilla 986: Internal error: e2ir.c 1098
D 1.006 での変更点
Feb 15, 2007新しい/変更のあった機能
- -Jpath スイッチを追加。 今後、テキストファイルを import するにはこのスイッチが必要です。
- -v の出力に実際のファイル名を含めるよう拡張
- TypeInfo_Struct の名前文字列を、 TypeInfo_Struct の comdat に含めるようになりました。
- 関数の コンパイル時実行
バグ修正
- Bugzilla 960: DMD 1.0 が future.html にある
- クラスの Codeview デバッグ情報が正しく LF_CLASS となりました
D 1.005 での変更点
Feb 5, 2007新しい/変更のあった機能
- -v オプションが pragma library 文と import されたファイル名を出力するようになった
- 非推奨だった === と !== の廃止
- 配列添え字内の length が他の length の宣言を隠すことは無くなりました
- MixinStatement, MixinExpression, MixinDeclaration を追加
- ImportExpression を追加
- std.metastrings を追加
バグ修正
- Bugzilla 761: std.format.doFormat が、%s を含む char[][] の要素で失敗
- Bugzilla 784: 退行: [Issue 402] mixinと前方参照でコンパイラクラッシュ
- Bugzilla 787: std.ctype.isprint のドキュメントが誤っている
- Bugzilla 788: Compiler rejects hex floats in the format: HexPrefix HexDigits . HexDigits(opt) with binary-exponent-part required
- Bugzilla 789: 転送コンストラクタでconstメンバの初期化ができない
- Bugzilla 791: dhry.d の例は少し変更しないと 1.0 でコンパイルできない
- Bugzilla 794: std.math.exp2(0) が 1 ではなく 0 になる
- Bugzilla 800: 連想配列を writefln() すると失敗する
- Bugzilla 821: 文字列コピーでセグメント違反; ドキュメントの間違ったサンプル
- Bugzilla 831: 警告!! 文字列リテラルはプラットフォームによっては読み取り専用
- Bugzilla 832: NRVO: foreach内からのreturnの値が壊れる
- Bugzilla 835: 大文字小文字を無視するモードで、RegExp.test が間違ったマッチを返す
- Bugzilla 846: Error 42: Symbol Undefined _D1a7__arrayZ
- Bugzilla 848: C のソートの例でtypo
- Bugzilla 862: 存在しない識別子を選択importすると変な間違ったエラーメッセージになる
- Bugzilla 872: ネストしたクラスで "this.outer" の typeof をとると expression.c で Assertion に引っかかる
- Bugzilla 875: glue.c line 700 でクラッシュ
- Bugzilla 886: std.zlib の展開ルーチンが、結果バッファをポインタを含まない領域としてマークしない
- Bugzilla 887: TypeInfo は opCmp, toHash を正しくオーバーライドしていない
- Bugzilla 888: -cov と _ModuleInfo のリンクのバグ
- Bugzilla 890: char[4] をreturn して char[] に代入すると期待と違う結果
- Bugzilla 891: このコードをコンパイルするとクラッシュ (1.0, 1.001, 1.002 で確認)
- Bugzilla 893: プロファイルフラグが Linux x86 64 で動かない模様
- Bugzilla 894: 実装のあるabstractメソッドの問題
- Bugzilla 897: デフォルトの dmd.conf ファイルの集成
- Bugzilla 898: std.conv.toInt が ConvOverflowError を投げない
- Bugzilla 901: 配列リテラルの比較がエラーとなる
- Bugzilla 903: printfと文字列リテラルの例がクラッシュ
- Bugzilla 908: テンプレート内で、staticメソッドを非staticメソッドとしてインライン展開しようとしてコンパイラ死亡
- Bugzilla 910: 予約語 "this" と "super" の説明の間違い
- Bugzilla 913: 非推奨のトークンがまだリストアップされている
- Bugzilla 915: invariant 関数に対して dmd が誤ったreturn(retn 4)を生成
- Bugzilla 916: 退行: Internal error: ../ztc/gloop.c 1305
- Bugzilla 917: 退行: 循環typedefでセグメント違反
- Bugzilla 924: GC が有効なオブジェクトを回収してしまう
- D.announce/6983
D 1.004 での変更点
Jan 26, 2007新しい/変更のあった機能
バグ修正
- Bugzilla 892: 新GCの別のバグ - mixin内のポインタ
D 1.003 での変更点
Jan 26, 2007新しい/変更のあった機能
バグ修正
D 1.002 での変更点
Jan 24, 2007新しい/変更のあった機能
バグ修正
- D.announce/6893: ClassInfo.flags が正しくない
- D.announce/6906: 末尾再帰の微妙なケース: 第1項, 第2項
D 1.001 での変更点
Jan 23, 2007新しい/変更のあった機能
- 末尾再帰が再び動作するようになった
- 型情報を使う GC
バグ修正
- Bugzilla 621: ループ内で、tryブロックからbreakするとfinallyが実行されない
- Bugzilla 804: Linux 関数の不足
- Bugzilla 815: whileループの継続にcontinueを使ったとき scope(exit) が実行されない
- Bugzilla 817: const char[] = string_literal - string_literal が各参照につき1個ずつ含まれてしまう
- Bugzilla 819: コマンドラインの使い方の中でレスポンスファイルについて触れるべき
- Bugzilla 820: GCはポインタの含まれる型に対してのみポインタ走査をすべき
- Bugzilla 823: frontend: mars.h の verror の宣言が正しくない
- Bugzilla 824: "mov EAX, func;" と "lea EAX, func;" の生成するコードが間違っている
- Bugzilla 825: 巨大なchar[]をテンプレート引数にするとdmdがセグメント違反
- Bugzilla 826: ICE: is式内での不正なテンプレートインスタンス化