変更ログ: 2.066.0
Download D 2.066.0
2014年8月18日発売
コンパイラの変更
言語の変更
ライブラリの変更
リンカの変更
D 2.066におけるすべてのバグ修正と機能強化のリスト。
コンパイラの変更
- -w 強く純粋なnothrow関数呼び出しの未使用の戻り値について警告するようになった:
強く純粋なnothrow関数呼び出しの戻り値が破棄された場合、警告が発生するようになった。
int foo() pure nothrow { return 1; } void main() { foo(); // foo() の結果は未使用である }
-w 、コンパイラーは文句を言う:Warning: calling foo without side effects discards return value of type int, prepend a cast(void) if intentional
- -noboundscheck は非推奨となり、 が採用された:boundscheck=[on|safeonly|off]
-noboundscheck コマンドラインオプションが何をするものであったかをめぐる混乱が、 という新しいオプションの誕生につながった。 新しいオプション-boundscheck=[on|safeonly|off] が作成された。 このオプションは、以前よりも柔軟性を高めると同時に、より明確にすることを目的としている。
-boundscheck=
- on:すべてのコードで境界チェックを有効にする。これはデフォルトである。
- safeonly:@safe 。 これは-release ビルドのデフォルトである。
- off:境界チェックを完全に無効にする。@safe コードでも)。このオプションは注意深く、パフォーマンスを向上させる最後の手段として使用されるべきである。 パフォーマンスを向上させる最後の手段である。ベンチマークによって @safe バウンズチェックをオフにする価値があることをベンチマークで確認する。
Use -boundscheck=off to replace instances of -noboundscheck.
これ以前は、-release のビルドでバウンズチェックを有効にする方法はなかった。 また、 -release が行う他のすべてのことを引き込むことなく、@safe 以外のバウンズチェックをオフにする方法もなかった。
- -vgc は、コード内のGC割り当てコード位置をリストするために追加された:
すべてのGC割り当てポイントを表示する。解析は新しい @nogc のセマンティクスに従う。
- -vcolumns が追加され、エラーメッセージに列番号が表示されるようになった:
診断メッセージには、各行頭の文字番号が表示される。
int x = missing_name;
-vcolumns なし:test.d(1): Error: undefined identifier missing_name
あり-vcolumns :test.d(1,9): Error: undefined identifier missing_name
- -color が追加され、コンソール出力に色がついた:
エラー、非推奨、警告メッセージが色付きになる。
言語の変更
- @nogc 属性が追加された:
nogc "属性はGC-ヒープ割り当てを禁止する。
class C {} void foo() @nogc { auto c = new C(); // GC-allocationは許可されない }
- extern (C++, 名前空間) が追加された:
C++の名前空間を表すために、extern (C++) はオプションでドット連鎖識別子を取るようになった。
extern (C++, a.b.c) int foo();
と等価である:namespace a { namespace b { namespace c { int foo(); } } }
- 多次元スライスの演算子オーバーロードが追加された:
ドキュメントは ここにある。
コード例:
struct MyContainer(E) { E[][] payload; this(size_t w, size_t h) { payload = new E[][](h, w); } size_t opDollar(size_t dim)() { return payload[dim].length; } auto opSlice(size_t dim)(size_t lwr, size_t upr) { import std.typecons; return tuple(lwr, upr); } void opIndexAssign(A...)(E val, A indices) { assert(A.length == payload.length); foreach (dim, x; indices) { static if (is(typeof(x) : size_t)) { // this[..., x, ...] payload[dim][x] = val; } else { // this[..., x[0] .. x[1], ...] payload[dim][x[0] .. x[1]] = val; } } } } void main() { import std.stdio; auto c = MyContainer!int(4, 3); writefln("[%([%(%d%| %)]%|\n %)]", c.payload); // [[0 0 0 0] // [0 0 0 0] // [0 0 0 0]] c[1 .. 3, 2, 0 .. $] = 1; /* Rewritten as: c.opIndexAssign(c.opSlice!0(1, 3), 2, c.opSlice!2(0, c.opDollar!2())); */ writefln("[%([%(%d%| %)]%|\n %)]", c.payload); // [[0 1 1 0] // [0 0 1 0] // [1 1 1 1]] }
- __traits(getFunctionAttributes) が追加された:
これは1つの引数を取ることができ、関数シンボル、関数型、関数ポインタ型、デリゲート型のいずれかである。 ポインタ型、デリゲート型のいずれかを取る。 例:":
void foo() pure nothrow @safe; static assert([__traits(getFunctionAttributes, foo)] == ["pure", "nothrow", "@safe"]); ref int bar(int) @property @trusted; static assert([__traits(getFunctionAttributes, typeof(&bar))] == ["@property", "ref", "@trusted"]);
- 絞り込み変換を伴う引数のテンプレート・パラメーター推論をサポートする:
テンプレート化された関数" は、テンプレート・インスタンス・パラメーターの型を推論する際に、関数の引数の絞り込み変換を考慮するようになった。 を考慮するようになった。
void foo(T)(T[] arr, T elem) { ... } void main() { short[] a; foo(a, 1); }
2.065以前では、foo(a, 1) の呼び出しは許可されていなかった。2.066から T は、short として推論される。 の第2引数1 をint からshort に変換する。 - 共有変数に対するRead-Modify-Write操作は非推奨となった:
例::
shared int global; void main() { global++; // 非推奨 global *= 2; // 非推奨 }
代わりにcore.atomic のatomicOp を使うべきである:shared int global; void main() { import core.atomic; atomicOp!"+="(global, 1); atomicOp!"*="(global, 2); }
- 組み込みスカラー型の統一された構文をサポートする:
例:":
short n1 = 1; auto n2 = short(1); // n1と等価で、typeof(n2)はshortである auto p1 = new long(1); // typeof(p1)はlong*である auto p2 = new immutable double(3.14); // typeof(p2)はimmutable(double)*である
コンストラクタの引数は、暗黙のうちに構築される型に変換可能でなければならない。
auto n1 = short(32767); // OK auto n2 = short(32768); // 許可されない、符号付きshortの-32768から32767の範囲外
ライブラリの変更
- Duration.getとそのラッパーは非推奨となり、新しいDuration.splitが採用された:
Duration.getとそのラッパーに取って代わられた、 Duration.weeks, Duration.days, Duration.hoursそして Duration.secondsと同様である。 Duration.fracSec(などである。 分数秒単位の Duration.get分数秒単位と同様の役割を果たした) と混同されやすいことが判明した。 Duration.totalと混同しやすいことが判明した。 と混同しやすいことが判明した。そのため、これらは非推奨となった。その代わりに Duration.split が追加され、非常に便利なだけでなく、Dができることを見事にアピールしている。 Dにできることを見せつける素晴らしい仕事だ。 一方 Duration.getのすべてのユニットを分割する Durationを分割し、そのうちの1つだけを返した、 Duration.splitは Durationを指示されたユニット に分割し(1つのユニットかもしれないし、すべてのユニットかもしれない)、そのすべてを返す。 を返す。この関数には2つのオーバーロードがあり、どちらもテンプレート引数を取る。 を示すテンプレート引数を取る。違いは結果の返し方である。 core.timeやstd.datetimeのほとんどのテンプレートが、単位を表す文字列を取るのと同様に を取る、 Duration.splitは、"weeks","days" 、 "hours" "minutes" ,"seconds","msecs","usecs" 、 "hnsecs" および"nsecs" を受け付ける。 最初のオーバーロードは、分割された単位をout パラメータとして返す。
auto d = weeks(5) + days(4) + hours(17) + seconds(2) + hnsecs(12_007); short days; long seconds; int msecs; d.split!("days", "seconds", "msecs")(days, seconds, msecs); assert(days == 39); assert(seconds == 61_202); assert(msecs == 1);
引数はどんな整数型でもよい(ただし、整数オーバーフローに対する保護はない)。 ただし、整数オーバーフローに対する保護は与えられていない。 は賢明ではない)。 2番目のオーバーロードは、単位名をフィールドとする構造体を返す。要求された 要求された単位だけがフィールドとして存在する。構造体のフィールドはすべてlongである。auto d = weeks(5) + days(4) + hours(17) + seconds(2) + hnsecs(12_007); auto result = d.split!("days", "seconds", "msecs")(); assert(result.days == 39); assert(result.seconds == 61_202); assert(result.msecs == 1);
あるいは、2番目のオーバーロードに単位が与えられていない場合、2番目のオーバーロードは構造体を返す。 nsecs nsecs 0 を持つ構造体を返す。 hnsecs を除くすべての単位を持つ構造体を返す。 Durationがhnsecの精度を持つため)。auto d = weeks(5) + days(4) + hours(17) + seconds(2) + hnsecs(12_007); auto result = d.split(); assert(result.weeks == 5); assert(result.days == 4); assert(result.hours == 17); assert(result.minutes == 0); assert(result.seconds == 2); assert(result.msecs == 1); assert(result.usecs == 200); assert(result.hnsecs == 7);
各単位に対して Duration.getまたはそのラッパーを各ユニットに呼び出すことは、この例と同じである。 この例と同じであるが、複数のユニットが要求された場合、計算が複数回行われるため、効率が悪くなる。 ただ、複数のユニットが要求された場合は、計算を複数回行わなければならないため、効率が悪くなる。例外は それは Duration.fracSecは例外である。 分数秒の合計を要求された単位とする。// 前の例と同じ auto d = weeks(5) + days(4) + hours(17) + seconds(2) + hnsecs(12_007); assert(d.weeks == 5); assert(d.days == 4); assert(d.hours == 17); assert(d.minutes == 0); assert(d.seconds == 2); assert(d.fracSec.msecs == 1); assert(d.fracSec.usecs == 1200); assert(d.fracSec.hnsecs == 12_007);
その方が Duration.splitの方が混乱が少ないので しかし、より強力であることは間違いない。これは また、要求されたユニットだけを分割し、フィールドを持つ構造体を返すこともできる。 要求されたユニットだけを分割し、要求されたユニットと同じ名前のフィールドを持つ構造体を返すことができる。 を持つ構造体を返すことさえできる。その上、引数として様々な を引数として扱うことができる。しかもその実装はそれほど複雑ではない。 - いくつかの組み込み型プロパティはライブラリ関数に置き換えられている:
組み込みの配列プロパティdup とidup は、Dが モジュールをサポートしたおかげで、"@property" の代わりにライブラリ関数に置き換わった。 object (モジュール・スコープの)フリー関数に置き換えられた。 統一された関数コール構文である。
組み込みの連想配列プロパティrehash,dup,byKey 、 byValue keys ,values, およびget もまた、 モジュールのフリー関数に置き換えられた。 object 関数に置き換えられた。
- 連想配列のキーは順序ではなく等式を要求するようになった:
2.065までは、AA構造体のキーの比較をカスタマイズするためにopCmpが使用されていた。
void main() { int[MyKey] aa; } struct MyKey { int x; int y; // AAのキー比較では無視されたい int opCmp(ref const MyKey rhs) const { if (this.x == rhs.x) return 0; // 定義された順序は、単にAAのキーで使用されなかっただけである。 return this.x > rhs.x ? 1 : -1; } }
2.066以降、AAの実装は、キーの比較に等号演算子 (==) を使用するように変更された。 を使用するように変更された。そのため、MyKey 構造体を次のように修正する必要がある:struct MyKey { int x; int y; // AAのキー比較では無視されたい int opEquals(ref const MyKey rhs) const { return this.x == rhs.x; } }
D 2.066のすべてのバグフィックスと機能強化のリスト:
DMDコンパイラのリグレッション
- Bugzilla 5105: メンバー関数テンプレートが同期化されない。
- Bugzilla 9449: 128ビット型の静的配列が初期化時にセグメンテーションエラーになる。memset128iiの呼び出しが正しくない。
- Bugzilla 11777: Scope::pop free sfieldinit でも使用されているため、[ICE] dmd のメモリ破壊が発生した。enclosing
- Bugzilla 12174: std.algorithm.sumでの列挙型述語による問題。
- Bugzilla 12179: [ICE](e2ir.c 1861)の配列操作による問題
- Bugzilla 12242: public imports の競合エラー : : public imports の競合エラー : : public imports の競合エラー : : public imports の競合エラー : : : public imports の競合エラー : : : public imports の競合エラー
- Bugzilla 12243: [REG 2.065.0] "ICE: cannot append 'char' to 'string'" with -inline
- Bugzilla 12250: [REG 2.065.0][ICE](e2ir.c2077)でinout T[]と配列の操作を行う
- Bugzilla 12255: リグレッション:AAに対するopCmpの要件がコードを壊す
- Bugzilla 12262: [REG2.065] 特殊化されたパラメータalias a : B!A 、同名でないインスタンス化された変数と一致してはならない。
- Bugzilla 12264: [REG2.066a] 特殊化されたエイリアスパラメータが特殊化されていないパラメータと衝突する。
- Bugzilla 12266: リグレッション(2.065):ヘッダー生成でコンパイル不可能なヘッダーが生成される
- Bugzilla 12296: [REG2.066a] CTFEでconst互換AAポインタ変換が誤って拒否される
- Bugzilla 12312: リグレッション (2.064):void static 配列の診断がおかしくなった。
- Bugzilla 12316: GIT HEAD: AA.getがObject VAL型で壊れている。
- Bugzilla 12376: 定数化されたテンプレートのインスタンス化でエラーギャグが発生するICE
- Bugzilla 12382: opDollar がCTで使えない。
- Bugzilla 12390: [REG2.066a] "has no effect in expression" 診断リグレッション。
- Bugzilla 12396: リグレッション:新しいインポートルールによる大きな破損
- Bugzilla 12399: 静的で選択的なインポートは通常のインポートのように動作する。
- Bugzilla 12400: 不正な完全修飾シンボル名に対する誤解を招く/無用な診断
- Bugzilla 12403: [AA] 連想配列get 関数で拒否されるケースがある。
- Bugzilla 12405: 名前付きインポートが通常のインポートのように動作する
- Bugzilla 12413: の無限再帰Package::search
- Bugzilla 12467: リグレッション (2.066 git-head): char[] は暗黙のうちに文字列に変換される。
- Bugzilla 12485: [REG2.065] 再帰的なテンプレート展開でDMDがクラッシュする。
- Bugzilla 12497: [REG2.064] 文字列以外のオペランドを持つ "文字列ミックスイン"でICEが発生する。
- Bugzilla 12501: アサーションglobal.gaggedErrors || global.errors に失敗した。
- Bugzilla 12509: コンパイラの性能は宣言された配列サイズに大きく依存する。
- Bugzilla 12554: [ICE](struct.c行 898)でデリゲートが失敗した。
- Bugzilla 12574: [ICE](statement.c、713行目) タプルのアリティを間違えてリデュースしてしまった。
- Bugzilla 12580: [REG2.066a] dup()がvoid[]を受け付けない。
- Bugzilla 12581: [ICE](statement.c、713行目)の無効な代入 + このエイリアス
- Bugzilla 12585: リグレッション(2.064):lazy/catch/opIndexでセグメンテーションエラーが発生した。
- Bugzilla 12591: [DMD|REG] std/typecons.d(440):エラー: タプルは式に影響しない。
- Bugzilla 12593: [REG2.065] AAは構造体をキーとして持つことができない。
- Bugzilla 12619: デバッグmemcpyの未使用の戻り値に対する警告が無効である。
- Bugzilla 12649: "戻り値を破棄する"警告は関数ポインタ呼び出しでICEの原因となる。
- Bugzilla 12650: インスタンスフィールドinitializの"l値"を取る際のコードジェネが無効である。
- Bugzilla 12689: [CTFE] "in"式からのポインタ経由の代入が機能しない
- Bugzilla 12703: GIT HEAD : finalクラスがメンバの初期化を拒否する
- Bugzilla 12719: struct.c:705: virtual void StructDeclaration::semantic(Scope*):アサーションparent && parent == sc->parent に失敗した。
- Bugzilla 12727: [REG2.066a] 再帰的エイリアス宣言でDMDがハングアップする
- Bugzilla 12728: [REG2.066a] IFTIはデフォルトの引数を持つテンプレートパラメータを持つインスタンス化された型を考慮すべきである。
- Bugzilla 12760: this(Args)inout "を持つオブジェクトを初期化すると"戻り値を破棄する"警告が発生する。
- Bugzilla 12769: 配列を返すICE
- Bugzilla 12774: REG(2.066) ICE(optimize.c) "共用体"を含む構造体の新規作成でセグメンテーションフォールトが発生する。
- Bugzilla 12824: REG(2.066) ICE(statement.c) ラベルと static if でセグメンテーションフォールトが発生する。
- Bugzilla 12860: REG 2.065: typeid(_error_) シンボルがバックエンドに漏れる
- Bugzilla 12864: 文字列のスイッチケースで toLower が使えなくなった
- Bugzilla 12880: [REG2.066a] string.init引数のIFTIが正しくない。
- Bugzilla 12896: libphobos2.soのビルド時にld.goldが不正なリロケーションについて文句を言う
- Bugzilla 12900: REG 2.065:IfStatementの条件Expressionに間違ったコードがある。
- Bugzilla 12904: を使用した場合、一部のスライスからスライスへの代入で誤ったコードが発生する。opDollar
- Bugzilla 12906: [CTFE] 構造体の静的配列でポストブリットコールが発生する。
- Bugzilla 12910: [AA]rehash がいくつかの連想配列に対して強く純粋であると誤って推論される
- Bugzilla 12924: deprecated("foo"); と deprecated; はコンパイルすべきではない。
- Bugzilla 12956: [ICE] expression.c:432のアサーション。
- Bugzilla 12981: ミックスインテンプレートから'outer'を参照できない。
- Bugzilla 12989: lib(-lib)としてコンパイルされた場合のデリゲートリターンの誤ったx86_64コード
- Bugzilla 13002: DMD 2.066の準備:Ubuntuでcreate_dmd_releaseを使った32ビットビルドに失敗する
- Bugzilla 13008: [REG2.066a] 'deprecated'が関数宣言の場合、別のdeprecatedを参照することができない
- Bugzilla 13021: 浮動型で共用体を構築し、そのフィールドに1つの式でアクセスすると、ICEが発生する。
- Bugzilla 13024: [ICE](expression.c行1172)で配列リテラルの異なる列挙型の暗黙のスーパータイプ変換が発生する。
- Bugzilla 13025: ToolsリポジトリがUbuntuでビルドされない
- Bugzilla 13026: object.getを[]を "defaultValue"引数として呼び出すことができない。
- Bugzilla 13027: アサーションex->op == TOKblit || ex->op == TOKconstruct に失敗した。
- Bugzilla 13030: mtype.c:697でdelegateに引数名があるとDMDアサーションに失敗する。
- Bugzilla 13034: [Reg] core.stdc.stdio - dmd -inlineで非推奨の警告が出た。
- Bugzilla 13053: 暗黙的に生成された__xtoHashで間違った警告が出る
- Bugzilla 13056: [2.066.0-b1] リグレッション:エラー: テンプレート std.path.baseName は引数の型から関数を推論できない !()(DirEntry)
- Bugzilla 13071: [ICE] nogc.c:73のdmd 2.066.0-b1アサーションに誤りがある。
- Bugzilla 13077: [dmd 2.066-b2] std.range.array with shared InputRangeObject
- Bugzilla 13081: ICEのエイリアスはthisとopSliceである。
- Bugzilla 13087: エラー:型'Vec!4'のプロパティ'xyz'がない。
- Bugzilla 13102: 184467440737095516153.6Lをパースできない。
- Bugzilla 13113: -debug=INVARIANTでdruntimeのgc.dをビルドできない。
- Bugzilla 13114: AAキーの古いopCmp要件はクラスに対して検出されるべきである。
- Bugzilla 13117: hello worldの実行可能サイズが472Kから2.7Mに爆発した。
- Bugzilla 13127: int[][]引数と "in"パラメータを持つ関数を推論できない。
- Bugzilla 13132: インターフェースAAキーのICE
- Bugzilla 13141: 配列のstring[]からimmutable(char[][])へのキャストはコンパイル時にサポートされない
- Bugzilla 13152: [REG2.064.2] コンパイラのCPU使用率が高く、終了しない
- Bugzilla 13154: スライスされたstatic float配列のinitが正しくない。
- Bugzilla 13158: std.variant.Algebraicの"void has no value"(D:YAMLに影響)。
- Bugzilla 13178: コンパイラが生成するシンボルの重複
- Bugzilla 13179: AAキー型TagIndexが比較ではなく等式を要求するようになった
- Bugzilla 13180: [REG2.066a] AA getが文字列の代わりにconst(char[])を返す。
- Bugzilla 13187: 関数" が誤って純粋と推論された。
- Bugzilla 13193: 最適化されたビルドのためにTangoのOpenSSLのコンパイル時間が極端に遅くなる
- Bugzilla 13201: wによる間違った "Warning: Statement is not reachable "エラー。
- Bugzilla 13208: [ICE](e2ir.c2077)の配列操作でエラーが発生した。
- Bugzilla 13218: [ICE] s2ir.c 142:ParameterTypeTuple の呼び出しを完全に修飾する必要がある。
- Bugzilla 13219: を完全に修飾する必要がある。
- Bugzilla 13220: [ICE] 'global.gaggedErrors || global.errors' のセグメンテーションフォールトが発生した。
- Bugzilla 13221: [ICE] '0' がファイル 'interpret.c' の 318 行目にある。
- Bugzilla 13223: 配列テンプレートパラメータの引数を推論できない
- Bugzilla 13232: dmdのコンパイル時間が10-20%増加した。
- Bugzilla 13237: -inline -O "で間違ったコードになる。
- Bugzilla 13245: コンパイルされない関数リテラルでテンプレートをインスタンス化するとsegfaultが発生する。
- Bugzilla 13252: ParameterDefaultValueTupleが他のインスタンス化に影響を与える
- Bugzilla 13259: [ICE]ファイル'todt.c'の191行目の'v.result'
- Bugzilla 13284: [dmd 2.066-rc2] 受信時に共有クラスにマッチしない
DMDコンパイラのバグ
- Bugzilla 648: DDoc: "ミックスイン"ステートメントを文書化できない。
- Bugzilla 846: エラー42:シンボルが未定義 "<mangle_of_class_template>__arrayZ" となっている。
- Bugzilla 1659: テンプレートエイリアスパラメーターは、完全に一致するもの以外より選択される。
- Bugzilla 2427: 構造体イニシャライザーの関数呼び出しがコンパイルに失敗する。
- Bugzilla 2438: デリゲートプロパティの型が取得できない。
- Bugzilla 2456: catch文をfinallyブロック内に記述できない。
- Bugzilla 2711: 関数定義がテンプレート化され、"auto return value"を持つ場合、-Hは不正なヘッダーファイルを生成する。
- Bugzilla 2791: port.hとport.cが見つからない。
- Bugzilla 3032: scope c = new class Object {};" のスタック割り当てがない。
- Bugzilla 3109: [meta] テンプレート注文
- Bugzilla 3490: DMDはスローする可能性のある関数を決してインライン化しない。
- Bugzilla 3672: [tdpl] リード・モディファイ・ライト(rmw)演算子は共有では無効にしなければならない。
- Bugzilla 4225: mangle.c:81: char* mangle(Declaration*):アサーションfd && fd->inferRetType に失敗した。
- Bugzilla 4423: [tdpl] 構造体型の列挙(enum)
- Bugzilla 4757: 内部で定義された構造体の戻り値で前方参照エラーが発生した。
- Bugzilla 4791: 静的配列の自分自身への代入を許可する
- Bugzilla 5030: 演算子は連想配列では動作しない!(T1,T2)
- Bugzilla 5095: 構造体に対するタイプセーフ可変長引数関数のエラー。
- Bugzilla 5498: クラスの配列の共通型控除がおかしい。
- Bugzilla 5635: opApplyを使用した'foreach'内のコードは、テンプレート化された "関数"のスコープ外の変数を変更することができない。
- Bugzilla 5810: 構造体のポストインクリメントが構造体メンバに使用された場合、「効果なし」エラーが発生する。
- Bugzilla 5835: TypeInfo_Array.getHash 、配列要素のハッシュ関数を使用する代わりに生データのハッシュを作成する。
- Bugzilla 5854: 組み込みの配列ソートがSysTimeを正しくソートしない。
- Bugzilla 6140: オーバーロードで誤った曖昧さエラー
- Bugzilla 6359: Pure/@safe-inferenceは"__traits(compiles)"の影響を受けるべきではない。
- Bugzilla 6430: オーバーロードされた "auto-return関数"とネストされた同名の集合体が混同される。
- Bugzilla 6677: static this attributes position
- Bugzilla 6889: コンパイルエラーに "scope(exit)"や"scope(success)"ではなく、"finally"と記載される。
- Bugzilla 7019: 暗黙のコンストラクタが矛盾して許可される
- Bugzilla 7209: 明示的に型付けされた "列挙型"の循環依存性でスタックオーバーフローが発生する。
- Bugzilla 7469: テンプレートのマングリングはインスタンス化順序に依存する
- Bugzilla 7477: 値を指定しない列挙構造体" : enum structs without specified values
- Bugzilla 7870: Linux用の共有ライブラリーのサポートがない
- Bugzilla 7887: [CTFE]返された参照に代入できない
- Bugzilla 8100: [ICE]テンプレート化されたサブクラス化
- Bugzilla 8236: ベクトル操作から構造体を作成する際のエラーメッセージが正しくない。
- Bugzilla 8254: ネストされた構造体が親のフィールドの型にアクセスできない。
- Bugzilla 8269: with文」は一時的なオブジェクトの寿命を観察しない。
- Bugzilla 8296: with文は一時オブジェクトの寿命を観察しない。
- Bugzilla 8309: void main(){auto x = [()=>1.0, ()=>1];}' の typeMerge で ICE が発生した。
- Bugzilla 8370: -release -inline -noboundscheckで無効な非推奨エラーになる。
- Bugzilla 8373: 関数のオーバーロードと非関数のテンプレート化でIFTIが失敗する。
- Bugzilla 8392: 関数テンプレート内で静的でない関数テンプレートを使用すると、DMDが失敗することがある。
- Bugzilla 8499: 未定義識別子に関するICE
- Bugzilla 8596: リハッシュにおける不確定性アサーションの失敗
- Bugzilla 8704: 無効な入れ子構造体を検出すべきである。
- Bugzilla 8738: 構造体リテラルが割り当て順序を壊す。
- Bugzilla 9245: [CTFE] 静的配列の初期化時にpostblitが呼び出されない
- Bugzilla 9596: 曖昧なマッチが、追加の少ないマッチによって不正に隠される
- Bugzilla 9708: inoutがゼロパラメータIFTIを壊す
- Bugzilla 9931: extern (C) の構造体を返す際に Mac OS X ABI に従っていない
- Bugzilla 10054: x86_64 valgrindが認識できない命令を報告する (DMD 2.062)
- Bugzilla 10071: いくつかのプラットフォームで 'real' のアライメントが正しくない
- Bugzilla 10112: pragma(mangle) で定義された Mangle はバックエンドでマングルされるべきではない。
- Bugzilla 10133: テンプレート化された静的条件ラムダのICE
- Bugzilla 10169: 重複したエラーメッセージ:メンバにアクセスできない
- Bugzilla 10219: クラスを返すデリゲートとインターフェイスを返すデリゲートの間の暗黙の変換
- Bugzilla 10366: Ddoc:テンプレート・クラスのシンボルが完全修飾アンカーを取得しない
- Bugzilla 10629: [ICE](dt.c106)でvoid配列が使われている
- Bugzilla 10658: エイリアス宣言を使って設定されたテンプレートのオーバーロードをマージできない
- Bugzilla 10703: try/catchブロックを使ったフロントエンドのコード削除「最適化」が間違ったコードジェネを生成する
- Bugzilla 10908: d.chmファイルのリンクが壊れている
- Bugzilla 10928: dtorで構造体を参照するクロージャの作成に失敗する。
- Bugzilla 10985: コンパイラはライブラリからテンプレート化された関数以外をインライン化しようとしない。
- Bugzilla 11066: profileで「文に到達できない」という警告が表示される。
- Bugzilla 11177: パラメータ化された列挙型は型付けできない。
- Bugzilla 11181: 間違った配列リテラルに対するコンパイル時エラーが見つからない。
- Bugzilla 11201: ICE: (symbol.c) -inlineがコンパイルを停止する。
- Bugzilla 11333: ICE:0タプルを "alias this"でサブタイプできない。
- Bugzilla 11421: 連想配列の動的配列リテラル型推論
- Bugzilla 11448: dup "@safe"純粋関数から"@system"純粋でないコードを呼び出す。
- Bugzilla 11453: パッケージのコンパイルは、コンパイラに渡されるモジュールの順番に依存する。
- Bugzilla 11511: DDoc - Cの可変長パラメータが正しくドキュメント化できない。
- Bugzilla 11535: ブロック代入で初期化された静的配列を再代入する際のCTFE ICE
- Bugzilla 11542: スコープ(失敗)がnothrowチェックを混乱させる
- Bugzilla 11543: 共有ライブラリによるstd.regexの多重定義
- Bugzilla 11545: 集約関数のリテラルメンバはスコープにアクセスすべきではない。
- Bugzilla 11550: [ICE] std.conv.toが非ビルトインの配列でコンパイルされるかどうかをチェックすると、s2ir.cでICEが発生する。
- Bugzilla 11622: glue.c、1288行目のtotym()でアサーションに失敗した。
- Bugzilla 11672: 構造体の静的配列のデフォルト初期化に失敗する。
- Bugzilla 11677: ユーザー定義属性は最初になければならない
- Bugzilla 11678: ユーザー定義属性は接頭辞として使用できない
- Bugzilla 11679: ユーザー定義属性はローカル自動宣言では使用できない
- Bugzilla 11680: ユーザー定義属性は型推論に使用できない。
- Bugzilla 11735: pragma(msg,...)が"wstring", "dstring"の表示に失敗する。
- Bugzilla 11740: [64ビット] コンストラクタを持つ構造体がスタックからextern(C++)関数に正しく渡されない。
- Bugzilla 11752: issues.dlang.orgを動作させる
- Bugzilla 11774: テンプレート化された関数へのラムダ引数が永遠にシグネチャを変えてしまう。
- Bugzilla 11783: std.datetimeのunittestを高速化する。
- Bugzilla 11788: [x86] Valgrindの未処理命令バイト数: 0xC8 0x8 0x0 0x0
- Bugzilla 11832: std.datetime: ddocの警告
- Bugzilla 11872: withブロックのオーバーロードされたテンプレート関数をサポートした。
- Bugzilla 11885: ICE(s2ir.c359)のラベル付きByLine(dtor付き範囲構造体)ループを継続する
- Bugzilla 11889: std.container.Array.opIndexが値で返され、パーフェクトストームとなる
- Bugzilla 11901: real win64
- Bugzilla 11906: 関数ポインターを比較する際のコンパイラのアサーション
- Bugzilla 12009: ローカル・インポートで "unable to resolve forward reference "エラー : local import and "unable to resolve forward reference" error.
- Bugzilla 12011: "Internal Compiler Error:.initのCTFEメソッド呼び出しで「Nullフィールド」が発生した。
- Bugzilla 12042: CTFE内部エラー:テンプレートメソッドと "with"での"ドットバーの代入"
- Bugzilla 12057: [ICE], backend/cg87.c 925
- Bugzilla 12063: ベース型がインクリメント可能でない場合、未初期化の列挙型メンバで行番号エラーはない。
- Bugzilla 12077: インスタンス化された型が特殊化されたエイリアスパラメータと一致しない。
- Bugzilla 12078: is()の前方参照の問題と,不思議なことに繰り返されるテンプレートパターン
- Bugzilla 12110: [CTFE] エラー:CTFE 内部エラー:ドットバーの割り当て
- Bugzilla 12138: Label 文が予期しないスコープブロックを作成した。
- Bugzilla 12143: ベースクラスが前方参照されている
- Bugzilla 12164: 64ビットでptrdiff_t.minを返す関数が-Oを設定すると0を返す。
- Bugzilla 12212: 静的配列の代入は暗黙的にスライスを作る。
- Bugzilla 12231: テンプレート制約の中のラムダ内のクラス宣言でICEを使う
- Bugzilla 12235: pragma(msg)によるラムダの前方参照名の揶揄表示に関するICE
- Bugzilla 12236: 矛盾したmangleofの結果
- Bugzilla 12237: テンプレート化された関数をインスタンス化する際の動作の不整合
- Bugzilla 12263: 特殊化されたテンプレート・パラメーターが同名のテンプレートに正しくマッチしない。
- Bugzilla 12278: クラスが宣言される前に"__traits(classInstanceSize)"を使用すると間違った値を返す
- Bugzilla 12287: std.trait.moduleNameで無限ループが発生する。
- Bugzilla 12292: テンプレート特殊化": string"が他の型の静的配列に渡される。
- Bugzilla 12302: expression.c(432行目)でisCallableテンプレートを使用した場合にアサーションに失敗する。
- Bugzilla 12306: 構造体列挙型をコンパイル時に読み込むことができない。
- Bugzilla 12307: AAキー型に関するコンテキストフルエラー診断
- Bugzilla 12313: タプルforeachによって生成される不要なスタック・テンポラリー
- Bugzilla 12334: ラムダ内部からネストしたクラスのフレーム・ポインタにアクセスできない
- Bugzilla 12350: 変数に__traits(getAttributes)を代入するとDMDがクラッシュする
- Bugzilla 12362: 未定義の列挙型を使おうとするとdmdがハングする
- Bugzilla 12378: コンパイラは二重にネストされたマップ述語内の構文的に有効なコードを受け付ける
- Bugzilla 12392: 最初のテンプレートのインスタンス化にalias
- Bugzilla 12397: CTFE ICE CompiledCtfeFunction::walkAllVars を 2.065 で使用する。
- Bugzilla 12432: 範囲と opApply の引数数の不一致の診断が改善された。
- Bugzilla 12436: 不透明な構造体パラメータ型は許されない
- Bugzilla 12460: goto と static if でクラッシュする。
- Bugzilla 12476: interpret.c:3204のassertエラー
- Bugzilla 12480: static assertは解釈可能な値の文字列表現を出力すべきである。
- Bugzilla 12498: ICE: while(string)がCTFE中にコンパイラをクラッシュさせる
- Bugzilla 12499: CTFE中にtuple/TypeTuple 1-Argの初期化に失敗する。
- Bugzilla 12503: スコープ(success)とreturn文の最適化が間違っている。
- Bugzilla 12506: グローバルな不変配列を定義するための間違ったプライベート・ラムダ
- Bugzilla 12508: ラムダ型推論によるインターフェイス型共変returnのCodegenバグ
- Bugzilla 12523: refとinoutのforeach引数の型が間違っている。
- Bugzilla 12524: inout const arg と inout return の間違った型 : : inout const arg と inout return の間違った型
- Bugzilla 12528: [CTFE] inout配列から別のinout配列に要素を追加できない
- Bugzilla 12534: 式タプルを型タプルとして使用する際のICE
- Bugzilla 12539: 連想配列で存在しないタプル要素を検索するとコンパイラがクラッシュする
- Bugzilla 12542: 再帰関数の属性推論ができない。
- Bugzilla 12543: Class.sizeofはClassの定義を必要とする
- Bugzilla 12555: 投機的にインスタンス化されたクラスに対する不正確なエラー・アンギャグ
- Bugzilla 12571: __traits(parent)はイニシャライザー内の型付き顕在定数に対して機能すべきである。
- Bugzilla 12577: コンパイル時の構造体フィールド・アクセスにおける氷
- Bugzilla 12586: タプルインデックスに対する冗長なエラーメッセージが増えた。
- Bugzilla 12602: [CTFE] 構造体にラップされた配列スライスの変更が元の構造体に伝搬されない。
- Bugzilla 12604: 絞り込み変換で「配列の長さが不一致」エラーが発生しない
- Bugzilla 12622: 関数へのポインタに対して"@safe"がチェックされない。
- Bugzilla 12630: nogcはコンパイル時の評価コンテキストを認識すべきである。
- Bugzilla 12640: switch文の内部でエラーが発生すると、偽のswitch case fallthrough警告が発生する。
- Bugzilla 12642: 固定サイズ配列に対するヒープ割り当てのケースを回避する
- Bugzilla 12651: TemplateArgsOfが無意味な引数を受け取る
- Bugzilla 12660: 間違った非@nogc関数不変エラー
- Bugzilla 12673: ICE with static assert and __traits(compiles) with non-existent symbol(スタティック・アサートと__traits(コンパイル)が存在しないシンボルでICEを実行する。
- Bugzilla 12677: アサーション失敗: 'isCtfeValueValid(newval)'(ファイル'interpret.c'の6579行目
- Bugzilla 12678: 複数フィールド初期化エラーの診断でフィールドの constness が見つからない。
- Bugzilla 12686: 構造体不変量がNRVOを防いでいる。
- Bugzilla 12688: 関数呼び出しが括弧内にある場合の奇妙なエラー
- Bugzilla 12704: typeof 関数リテラルが属性を正しく推論しない。
- Bugzilla 12705: typeof(関数)でgetFunctionAttributesを使用すると@systemが見つからない。
- Bugzilla 12706: ddoc:ddoc:__dollarはドキュメントに登場すべきではない
- Bugzilla 12725: IFTIは依存テンプレートパラメーターを持つインスタンス化された型を考慮すべきである。
- Bugzilla 12737: 静的コンストラクタはスーパーコンストラクタの呼び出しを必要とする。
- Bugzilla 12739: opApplyへのForeachデリゲートはnothrowを持たない。
- Bugzilla 12745: [Ddoc] ドキュメントコメント中の数字からアンダースコアが削除される
- Bugzilla 12746: 手動でエイリアスされた同名関数テンプレート内の間違ったオーバーロードへのアクセス
- Bugzilla 12749: コンストラクタ・ローカル関数が不変のメンバ関数を複数回変異させる。
- Bugzilla 12756: longdoubleが原因でWindows上でdmdをビルドできない。
- Bugzilla 12777: const/不変のメンバ関数がconst-nessに違反する - 混乱させるエラーメッセージ
- Bugzilla 12778: opBinaryRightからopBinaryへのエイリアスは特定のケースでのみ機能する。
- Bugzilla 12788: -di は char[] から char* への暗黙の変換について警告しない。
- Bugzilla 12809: try-finally文のnothrowチェックをより厳密にした。
- Bugzilla 12820: DMDは、allocaを使用する関数への呼び出しをインライン化し、代わりに呼び出し元関数でメモリを確保することができる。
- Bugzilla 12825: extern(C++)クラスの初期化フィールドで "重複共用体初期化"エラーが発生する。
- Bugzilla 12826: Win64: x ~= x のコードが正しくない;
- Bugzilla 12833: switch文が-inline使用時に正しく動作しない。
- Bugzilla 12836: CTFE ICE CompiledCtfeFunction::walkAllVars が正しく動作しない。
- Bugzilla 12838: タプルと間違った型を使用するとDmdがICEを表示する
- Bugzilla 12841: 関数アドレス取得時のICE
- Bugzilla 12849: pmovmskb命令が64ビットレジスタにストアできない
- Bugzilla 12850: テンプレートに連想配列を渡す際のICE
- Bugzilla 12851: テンプレートにconst static配列を渡す際のICE
- Bugzilla 12852: 64ビットの間違ったコードが生成される
- Bugzilla 12855: こぼれるためのシャドウ・レジスタの割り当てが衝突する可能性がある
- Bugzilla 12873: Valgrind が未処理の命令バイト 0x48 0xDB (x87 ロード時の冗長な REX_W 接頭辞) を処理した。
- Bugzilla 12874: 範囲違反エラーでファイル名が間違っている
- Bugzilla 12876: テンプレートでも配列スライスの固定サイズ配列への暗黙のキャスト
- Bugzilla 12901: in/out 構造体コンストラクタの契約は関数本体が必要である。
- Bugzilla 12902: [ICE] expression.cで'ae->lengthVar'を使用した場合のアサーション失敗 : /opDollar
- Bugzilla 12907: [ICE] 'mangle.c' で、auto の戻り値の型を、参照されないfunction 呼び出しのラムダで使用する際のアサーションの失敗 '0' : / contract must require function body : [ICE] 'expression.c' で、 の戻り値の型を、参照されない 呼び出しのラムダで使用する際のアサーションの失敗 '0'
- Bugzilla 12909: [AA] 変数でない配列のキーまたはポインタを引数に持つ連想配列の場合、関数が強く純粋であると誤って推論される。
- Bugzilla 12928: array[length]の境界チェックが省略された。
- Bugzilla 12933: [D1] デフォルトの"__FILE__"と"__LINE__"を持つICE
- Bugzilla 12934: foreachで新しく実装されたVRPの奇妙な動作
- Bugzilla 12937: 静的配列の初期化が無効なICE
- Bugzilla 12938: outパラメータに"@disable"を指定するとエラーメッセージが出る。
- Bugzilla 12953: エラーメッセージのアラインメント番号が正しくない
- Bugzilla 12962: osver.makはSolarisのisainfoを使ってモデルを決定すべきである。
- Bugzilla 12965: DMDはすべてのシステムでELFOSABIをELFOSABI_LINUXに設定する。
- Bugzilla 12968: DMDのインラインasmが間違ったXCHG命令を出力する。
- Bugzilla 12970: system属性は@safeより優先される。
- Bugzilla 13003: 共有オブジェクト・フィールドの読み取り・変更・書き込み操作チェックの欠如
- Bugzilla 13011: inoutデリゲートパラメータが全く同じ型の引数を受け取ることができない。
- Bugzilla 13023: オプティマイザはulongの比較と除算に対して間違ったコードを生成する。
- Bugzilla 13043: 非ルート・モジュールにおけるTypeInfoへの冗長なリンク
- Bugzilla 13044: constメンバを持つ構造体の割り当て
- Bugzilla 13045: TypeInfo.getHashは、デフォルトでオブジェクトの等質性と一貫性のある結果を返すべきである。
- Bugzilla 13049: テンプレート化された関数" : テンプレート引数において、コンパイラは関数ポインタ引数のスコープの解析に失敗する。
- Bugzilla 13050: pragma mangleは同音異義語テンプレートのエイリアシングを壊す
- Bugzilla 13082: クラスCtorの呼び出しに失敗したときの偽のエラーメッセージ
- Bugzilla 13088: 些細なケース・コードでコンパイラーがセグメンテーションに失敗する。
- Bugzilla 13089: 静的配列の初期化で "is nothrow"エラーが発生する。
- Bugzilla 13109: -run と -lib dmd フラグが競合する。
- Bugzilla 13116: this'への参照を返すことはできないはずだ。
- Bugzilla 13131: [2.066-b3] dmd: glue.c:1492: unsigned int totym(Type*):アサーション0 に失敗した。
- Bugzilla 13135: 部分的に修飾された引数でIFTIが失敗する場合がある
- Bugzilla 13142: 異なるクラスの"列挙型"がコンパイラを混乱させる
- Bugzilla 13161: extern(C++)クラスのメンバのオフセットが正しくない。
- Bugzilla 13175: [D1] デフォルトの"__FILE__/__LINE__"が存在する場合、オーバーロードの衝突に関するICEが発生する。
- Bugzilla 13182: extern(C++)クラスのスコープがスタックに割り当てられるとクラッシュする。
- Bugzilla 13190: オプティマイザがゼロとの比較を壊す
- Bugzilla 13194: 静的クラスのメンバがvoidに初期化された場合のICE
- Bugzilla 13195: 削除はデストラクタを呼び出すが、解放はしない
- Bugzilla 13204: 再帰的エイリアス宣言
- Bugzilla 13212: .ddocマクロからWindowsの行末が取り除かれない
- Bugzilla 13217: nothrow、テンプレート化された関数とデリゲート:コンパイルエラー。
- Bugzilla 13225: [ICE] 無効な "ミックスイン"テンプレートのインスタンス化でアクセス違反が発生した。
- Bugzilla 13226: トレイト "または "ミックスイン"使用時にシンボルにアクセスできない。
- Bugzilla 13230: std.variant.VariantがTが浮動小数点型のときにopArithmeticで非推奨の.minプロパティを使用する
- Bugzilla 13235: 相互に再帰的なタプル型での誤ったコード
- Bugzilla 13260: [D1] 存在しない集約メンバにアクセスするICE
- Bugzilla 13273: ddocはunittestsとESCAPESの˶rを正しく扱えない。
- Bugzilla 13275: if文とforeach文での誤ったdiヘッダ生成
DMDコンパイラの機能強化
- Bugzilla 1553: foreach_reverse はデリゲートに対して許可される。
- Bugzilla 1673: isTemplate特徴を実装する。
- Bugzilla 1952: ユニットテストハンドラをサポートする
- Bugzilla 2025: タプルパラメータを持つテンプレートのインスタンス化のルールに矛盾がある
- Bugzilla 2548: 新しい配列に値を返す配列操作は機能するはずである。
- Bugzilla 3882: 純粋関数の結果が未使用である。
- Bugzilla 5070: ヒープ確保されたクロージャのリスト
- Bugzilla 6798: 多次元インデクシングとスライシングのためのオーバーロードの統合
- Bugzilla 7747: 再帰呼び出しで推測される戻り値の型について、診断が有益であるべきである。
- Bugzilla 7961: C++名前空間のサポートを追加する
- Bugzilla 8101: 関数呼び出しに失敗した場合、関数のオーバーロード候補を表示する。
- Bugzilla 9112: 組み込み型の統一的な構築
- Bugzilla 9570: 間違った foreach インデックスの暗黙の変換エラー
- Bugzilla 9616: SortedRangeはすべての種類のレンジをサポートすべきである。
- Bugzilla 10018: 不変の変数に対する値域のプロパゲーション
- Bugzilla 11345: 配列リテラルから静的配列への代入をGCヒープに割り当てないように最適化する。
- Bugzilla 11620: dmdのjson出力は列挙型を出力すべきである。
- Bugzilla 11819: 認識できないトレイトの診断を改善した。
- Bugzilla 12232: 一意なポインタに対するポインタ算術の結果は一意なポインタであるべきである。
- Bugzilla 12273: dmd -color'フラグでエラー/警告メッセージに色をつける。
- Bugzilla 12280: 冗長な "template instance ... error instantiating "メッセージ
- Bugzilla 12290: IFTIはリテラル引数の暗黙の変換を考慮すべきである。
- Bugzilla 12310: [CTFE] 組み込みスカラー型のヒープ割り当てをサポートする。
- Bugzilla 12352: 親関数の戻り値のエンコードを一貫して停止する。
- Bugzilla 12550: noboundscheckを廃止し、より便利な-boundscheck=オプションに置き換える。
- Bugzilla 12598: ローカル・インポート・ハイジャックの診断が悪い。
- Bugzilla 12606: 動的 => 静的配列代入時の既知の配列長の不一致は、より良い診断を出すべきである。
- Bugzilla 12641: D1:FILE__と__LINE__のデフォルト引数の挙動。
- Bugzilla 12653: getFunctionAttributes 特性を追加する。
- Bugzilla 12681: 書き換えルールは一意検出を防ぐ
- Bugzilla 12798: 定数の折りたたみは後続の連結を最適化すべきである。
- Bugzilla 12802: 新しいエイリアス構文にオプションの'StorageClasses'を許可する
- Bugzilla 12821: 冗長なストレージクラス/プロテクションエラーを見逃す。
- Bugzilla 12932: 即時反復配列リテラルの@nogcをサポートする。
- Bugzilla 12967: プレフィックス・メソッドのthis修飾子はDeclDefsスコープで禁止されるべきである。
- Bugzilla 13001: 三項演算子(CondExp)のVRPをサポートする。
- Bugzilla 13138: peek/pokeをコンパイラ・イントリニックスとして追加する。
- Bugzilla 13277: JSON出力のベースクラスは常に非修飾である。
- Bugzilla 13281: pragma(msg)とエラー診断で実数/複素数リテラルの接尾辞を表示する。
phobosのリグレッション
- Bugzilla 12332: std.json API が予告なしに壊れる
- Bugzilla 12375: 文字+固定サイズの文字配列の書き込み
- Bugzilla 12394: リグレッション : std.regexのunittestの実行に時間がかかる - OSXでは数時間かかる。
- Bugzilla 12428: リグレッション(2.066 git-head):toUpperが入力データを破損している(不変の文字列を変更している)。
- Bugzilla 12455: [uni][reg]「LATIN CAPITAL LETTER I WITH DOT ABOVE」の小文字マッピングが正しくない。
- Bugzilla 12494: Regression (2.064): to!string(enum) が不正な値を返す。
- Bugzilla 12505: 16進数出力が要求された場合でもヌルポインタがプリティプリントされる
- Bugzilla 12713: [REG 2.066A] std.regex.regex が特定の不正な入力で SEGV, 不正な命令 resp.
- Bugzilla 12859: Phobosの共有変数に対する読み書き操作
- Bugzilla 13076: [dmd 2.066-b2] 空リストのDListクリア問題
- Bugzilla 13098: DirEntryでstd.path関数が動作しなくなった。
- Bugzilla 13181: インストールターゲットが壊れた
phobos のバグ
- Bugzilla 1452: std.cstream ドキュメントが正しくない - stream と stdio のインポートが public ではない。
- Bugzilla 1726: std.stream FileMode ドキュメントの問題
- Bugzilla 3054: マルチスレッドのGC問題。また、Stdioはマルチスレッドセーフではない
- Bugzilla 3363: std.stream.readfがイミュータブルなフォーマット文字列でセグメンテーションエラーになる。
- Bugzilla 3484: std.socket.Address階層がconst-safeではない
- Bugzilla 4330: std.range.transposed()はドキュメント化されるべきである。
- Bugzilla 4600: writeln() はスレッドセーフではない
- Bugzilla 5177: std.socketstreamのclose()はsuper.close()を呼び出すべきである。
- Bugzilla 5538: 不変クラスはstd.concurrencyのメッセージとして渡せない
- Bugzilla 5870: SortedRangeのデバッグコードは常に範囲を表示できると仮定している
- Bugzilla 6644: std.stdio write/writef(ln)は"@trusted"ではない
- Bugzilla 6791: std.algorithm.splitterのランダムインデックスがutf文字列である。
- Bugzilla 6998: std.container.Arrayはクラスインスタンスを破棄する
- Bugzilla 7246: std.algorithm.removeにもっと簡単な例を用意する。
- Bugzilla 7289: std.formatが構造体、共用体、ハッシュをどのように扱うかを文書化する。
- Bugzilla 7693: Getoptは列挙型の末尾文字を無視する
- Bugzilla 7767: ソートが不安定 - パフォーマンスが低下する
- Bugzilla 7822: lseek cast(int)offsetはlseek cast(off_t)offsetとすべきである。
- Bugzilla 7924: reduceはmapやfilterのようにimmutable/constでは動作しない。
- Bugzilla 8086: std.stdioはドキュメント不足だ。
- Bugzilla 8590: std.algorithmの"any"と "all"のドキュメントが正しくない。
- Bugzilla 8721: std.algorithm.removeの問題
- Bugzilla 8730: D文字列を渡された場合でも、writelnはヌル文字で止まってしまう。
- Bugzilla 8756: curlスタティック・ライブラリの場所へのリンクを追加
- Bugzilla 8764: chunks.transposedが無限の範囲を引き起こす。
- Bugzilla 8866: Splitter(R1, R2)は双方向にはできない。
- Bugzilla 8905: DList.Range:内部エラー、一貫性のない状態
- Bugzilla 8921: 列挙型配列は正しくフォーマットされるべきである。
- Bugzilla 9015: std.container.DList.opOpAssign の return が見つからない。
- Bugzilla 9016: std.container.DList.frontとbackでswap()が動作しない
- Bugzilla 9054: std.net.curlのbyLineAsyncとbyChunkAsyncが壊れた。
- Bugzilla 9556: std.string.isNumericのアンダースコアがドキュメントにない。
- Bugzilla 9878: std.algorithm.cartesianProductの結果の順序がおかしい。
- Bugzilla 9975: pointsToがunionの偽ポインタのためにアサートする。
- Bugzilla 10500: variantを使用した場合のlengthプロパティの問題
- Bugzilla 10502: テンプレート化された構造体のfullyQualifiedNameを取得できない
- Bugzilla 10693: cartesianProductに7つ以上の範囲があるとコンパイル時にセグメンテーションエラーが発生する
- Bugzilla 10779: cartesianProductはコードの肥大化を招く
- Bugzilla 10798: std.regex: ctRegexのユニコードセット操作が実装されていない
- Bugzilla 10911: std.net.curl.HTTP: POSTデータのコンテントタイプをユーザコードで指定できるようにすべきである。
- Bugzilla 10916: VariantN の toHash が認識されない
- Bugzilla 10931: etc.c.zlibはconstパラメータを適切にアノテートすべきである。
- Bugzilla 10948: BitArray.opEquals が無効である。
- Bugzilla 11017: std.string/uni.toLower が非常に遅い。
- Bugzilla 11072: BitArray.opCmpは64xでは無効である。
- Bugzilla 11175: フォーマットはIUnknownクラスをサポートすべきである。
- Bugzilla 11183: Win64: lrint が不正な結果を返す
- Bugzilla 11184: Win64: kill process with invalid handle terimates current process.
- Bugzilla 11192: std.demangleがエイリアステンプレート引数を分離しない
- Bugzilla 11253: std.algorithm.countはnothrowではない
- Bugzilla 11308: std.processの出力にVoldemort型を使ってはいけない。
- Bugzilla 11364: Variantがconst(TypeInfo)でコンパイルに失敗する。
- Bugzilla 11608: std.getopt.config.passThroughのドキュメントが不十分である。
- Bugzilla 11698: readfがboolでコンパイルできない。
- Bugzilla 11705: std.typecons.Typedefに適切なドキュメントがない。
- Bugzilla 11778: nullのフォーマットがfmtフラグを検証していない。
- Bugzilla 11784: std.regex: set intersectionのバグ。
- Bugzilla 11825: CTFEでcartesianProduct.arrayがmemcpyできない。
- Bugzilla 11834: std.net.curl:ddocの警告
- Bugzilla 11978: std.algorithmのcanFindで "value"が"needle"になっている。
- Bugzilla 12007: cartesianProduct は不変量の範囲では動作しない
- Bugzilla 12076: ctRegexの範囲違反
- Bugzilla 12148: std.uuid.parseUUIDは "l値"入力データを変更することを文書化すべきである。
- Bugzilla 12157: 変数opEqualsがクラスに対して常にfalseを返す。
- Bugzilla 12169: sum(int[])はintを返すべきである。
- Bugzilla 12183: std.algorithm.sortを使うとvalgrindがアボートする
- Bugzilla 12245: BinaryHeapはデバッグモードで2次関数的なパフォーマンスを示す
- Bugzilla 12297: std.typecons.ProxyがIFTIコールを正しく転送しない
- Bugzilla 12309: テンプレートのfullyQualifiedNameが間違った結果を返す
- Bugzilla 12349: std.File.flushとclose呼び出し後のエラーでsegfaultが発生する
- Bugzilla 12356: std.trait.isTypeTupleとisExpressionTupleのドキュメントが不十分である。
- Bugzilla 12366: コンパイル時の正規表現における範囲違反
- Bugzilla 12419: std.utfのアサーション失敗
- Bugzilla 12434: std.algorithm.sumが不変配列すぎる。
- Bugzilla 12449: std.algorithm.maxの未定義書式
- Bugzilla 12464: DMD/PhobosはD可変長メソッドを自動実装できない。
- Bugzilla 12477: std.bitmanipは有益な診断を出すべきである
- Bugzilla 12557: std.numeric.gcdのドキュメントではオイラーのアルゴリズムが報告されているが、これはユークリッドのアルゴリズムである。
- Bugzilla 12568: std.functional.memoizeで定数配列の引数も指定できるようになった。
- Bugzilla 12569: std.algorithm.reduceを2つの関数とスカラーシードで使用した場合のエラーメッセージを改善した。
- Bugzilla 12582: 名前付きキャプチャ・グループが存在しないと、正規表現で実行時に範囲違反やセグメンテーション・フォールトが発生する
- Bugzilla 12600: バリアントはboolへの強制をサポートすべきである。
- Bugzilla 12608: UUIDParsingExceptionのデッドアサイン
- Bugzilla 12609: std.regexの無駄な変数代入
- Bugzilla 12643: std.range.dropOne : std.range.dropOneにおける無駄な変数割り当て
- Bugzilla 12668: std.trait.functionAttributesは新しいgetFunctionAttributesを使うべきだ。
- Bugzilla 12691: std.regex.bmatchの()*内の空のOR演算子のバグが修正された。
- Bugzilla 12731: 無限の範囲のスライスはそれ自身スライス可能ではない
- Bugzilla 12747: std.regexのパーサのバグにより、オープン・グループへの参照が可能になった。
- Bugzilla 12771: Variant内の静的配列のopIndexが実装されていない。
- Bugzilla 12781: process.d:process.d: "Executable file not found" は実行ファイル名を表示するはずが失敗する。
- Bugzilla 12796: std.string toLower/toUpper 配列変換。
- Bugzilla 12806: std.trait.isArrayは連想配列を含むか?
- Bugzilla 12828: SimpleTimeZone.utcOffsetの戻り値が正しい型になるように修正した。
- Bugzilla 12846: phobos git HEAD: std.datetimeが大量の非推奨メッセージを吐き出している。
- Bugzilla 12853: std.encoding EncodingSchemeUtf16NativeとEncodingSchemeUtf32Nativeのdecode()とSafeDecode()のストリップ長がおかしい。
- Bugzilla 12875: [unittest] std.datetime が失敗する:有効なtzdataファイルではない。
- Bugzilla 12898: std.process.browse は Windows 上で URL が UTF-8 ではなく CP_ACP でエンコードされることを期待している。
- Bugzilla 12921: モジュールstd.getoptがプロパティの構文を尊重していない。
- Bugzilla 12923: バリデーションをパスしたにもかかわらず、strideでUTF例外が発生した。
- Bugzilla 12996: SList: linearRemove がルートノードを削除できない。
- Bugzilla 13000: inoutの機能を利用するためにキャストを削除すべきである。
- Bugzilla 13068: std.typecons.Uniqueはpostblitを無効にすべきである。
- Bugzilla 13100: std.process.setCLOEXEC()は無効なファイル記述子でスローする。
- Bugzilla 13151: std.range.takeテンプレート制約の曖昧さ
- Bugzilla 13163: std.conv.parseが小さい値にならない場合にオーバーフローを見逃す
- Bugzilla 13171: std.algorithm.until(範囲, センチネル, OpenRight.no)がセンチネルのポッピングを範囲に伝搬しない
- Bugzilla 13214: array.opSliceの1要素が空である。
- Bugzilla 13258: std.processのファイルを閉じるロジックが正しくない
- Bugzilla 13263: phobos/posix.makの依存関係が正しくない。
phobosの機能強化
- Bugzilla 3780: Igor Lesikによるgetoptの改良
- Bugzilla 4725: std.algorithm.sum()
- Bugzilla 4999: 原健二氏のadaptTo()をPhobosに追加した。
- Bugzilla 5175: std.トレイトにパラメータ名を取得する方法を追加した。
- Bugzilla 5228: std.getoptにGetOptException(またはそれに類するもの)を追加する。
- Bugzilla 5240: 0.0,1.0)の範囲に対するstd.random.uniform()の高速化
- Bugzilla 5316: std.getopt:配列と連想配列の文字区切り要素のサポートを追加した。
- Bugzilla 5808: std.string.indexOfにstart-atパラメータを追加した。
- Bugzilla 6793: コンテキストによってはassumeUniqueが不要な場合があることを文書化した。
- Bugzilla 7146: strip*の強化(実装は提供される)
- Bugzilla 8278: std.range.chunksによる汎用Forward Ranges?
- Bugzilla 8762: 静的条件指定のためのinstanceOfトレイト。
- Bugzilla 9819: 名前付きタプルの名前へのアクセスを許可する。
- Bugzilla 9942: 関数スイッチ関数を追加する。
- Bugzilla 10162: std.string.representationの反対
- Bugzilla 11598: std.random.uniformの方が積分に対して高速かもしれない
- Bugzilla 11876: std.getopt:helpと--help=optionの自動プリントアウトを実装する。
- Bugzilla 12015: std.digest.sha256もそうだ。
- Bugzilla 12027: std.bitmanip.BitArrayの真のビットの範囲。
- Bugzilla 12173: std.algorithm.sumの開始値を指定する。
- Bugzilla 12184: std.uni.InversionListの書式オプションを提供する。
- Bugzilla 12446: std.parallelism.amapはインデックス作成よりも反復処理を優先する
- Bugzilla 12448: std.string.toStringzの"in"引数
- Bugzilla 12479: "pointsTo"を"maybePointsTo"と "definitlyPointsTo"に置き換える
- Bugzilla 12556: 永続的なbyLineを追加する
- Bugzilla 12566: DListに真の参照セマンティクスを与える
- Bugzilla 12596: 自分自身をパラメータとして受け取ることができるTypedef ctorを実装する
- Bugzilla 12633: std.conv.toは対象の固定サイズ配列をサポートすべきである。
- Bugzilla 12644: いくつかのstd.math関数はまだ@nogcされていない。
- Bugzilla 12656: std.asciiのいくつかの関数が@nogcになる。
- Bugzilla 12671: std.complexのabsと^^が@nogcになる。
- Bugzilla 12784: std.json.JSONValueにin演算子を追加した。
- Bugzilla 12835: std.random.uniformの下界が開いている場合、より小さい整数型や文字型をサポートできない
- Bugzilla 12877: std.random.uniformはdchar型を扱えない
- Bugzilla 12886: std.datetimeはHTTPの日付を解析できない
- Bugzilla 12890: std.arrayのインデックスに基づく置換
- Bugzilla 12957: std.algorithm.cartesianProductはコンパイルに非常に時間がかかることがある
- Bugzilla 13013: std.jsonのunittestsに失敗 - doubleを正しくパースできない。
- Bugzilla 13022: std.complexにComplexの2乗モジュラスを返す関数がない。
- Bugzilla 13042: std.net.curl.SMTPがlibcurl-7.34.0以降でメールを送信しない
- Bugzilla 13159: std.socket.getAddressがDNS検索ヒットごとに1回割り当てられる
Druntimeのリグレッション
- Bugzilla 12220: [REG2.066a] hash.get()が適切なパラメータを受け付けない。
- Bugzilla 12427: リグレッション(2.066 git-head):druntimeのビルドが-debug=PRINTFで失敗する。
- Bugzilla 12710: Windowsコールバックの@nogc要件が悪い。
- Bugzilla 12738: core.sys.posix.signalのsigaction_tハンドラの型が不一致である。
- Bugzilla 12848: [REG2.061]_d_run_main()でunicodeコマンドライン引数でクラッシュする(Win32)
- Bugzilla 13078: [dmd 2.066-b2] AA rehash failed with shared
- Bugzilla 13084: ModuleInfo.opApply delegate が immutable パラメータを期待している。
- Bugzilla 13111: GC.reallocが大きな再割り当てに対して無効なメモリを返す
- Bugzilla 13148: ModuleInfoのフィールドはconstに変更する必要がない
Druntimeのバグ
- Bugzilla 4323: std.demangleでテンプレート浮動小数点数の扱いが正しくない。
- Bugzilla 5892: 例外スロー時のスタックトレースの遅延評価
- Bugzilla 7954: x86_64 Windowsファイバーが不揮発性のXMMレジスタを保存しない。
- Bugzilla 8607: simdとpcmpeqは純粋なnothrowであるべきである。
- Bugzilla 9584: D言語での例外処理はおどろくほど遅い(Javaよりはるかに悪い)。
- Bugzilla 10380: [AA] 連想配列のキー型として連想配列を使うコードが間違っている。
- Bugzilla 10897: btc, btr, btsはセーフであるべきではない
- Bugzilla 11011: core.time.Durationにコンパイルできないコード例がある。
- Bugzilla 11037: [AA] インダイレクトを持つ構造体キーのAAが完全に壊れている。
- Bugzilla 11519: core.thread unittestのタイミングの問題を修正した。
- Bugzilla 11761: aa.byKeyとaa.byValueは前方範囲ではない
- Bugzilla 12800: Win64でファイバーが壊れている
- Bugzilla 12870: 浮動小数点配列の演算に x86_64 に最適化された実装がない。
- Bugzilla 12958: core.checkedint.muluが壊れている。
- Bugzilla 12975: posix.makはSolarisシステムではisainfoを使用してモデルを決定すべきである。
- Bugzilla 13057: core/sys/posix/unistd.d の posix getopt 変数は __gshared とマークすべきである。
- Bugzilla 13073: uint/int 配列比較の誤り
Druntime の機能強化
- Bugzilla 8409: 提案: arr.dupをライブラリに実装する
- Bugzilla 12964: Solarisシステムのランタイムでdev_tの定義が正しくない。
- Bugzilla 12976: SolarisではModuleInfoは不変であるべきだ。
- Bugzilla 12977: Solarisではlf64の定義が正しくない。
- Bugzilla 12978: 32ビットSolarisではsigaction構造体が小さすぎる。
- Bugzilla 13037: SolarisでSIGRTMINとSIGRTMAXが正しく定義されていない。
- Bugzilla 13144: Solaris用のfenvサポートを追加
- Bugzilla 13145: Solaris用のLC_ロケール値が必要である。
- Bugzilla 13146: Solaris上でstdlib.hから不足している関数定義を追加する。
インストーラの不具合
- Bugzilla 13004: cl.exeの/?オプションがICEになる。
- Bugzilla 13047: cannot stat./icons/16/dmd-source.png: そのようなファイルまたはディレクトリがない。
- Bugzilla 13210: libphobos2.so がビルドされない。
- Bugzilla 13233: Windowsインストーラ:外部インストーラ(Visual D/dmc)のダウンロードが機能しない
インストーラのバグ
- Bugzilla 3319: DInstaller が変数 %PATH% を上書きする
- Bugzilla 5732: Windows インストーラがスタートメニューのリンクに不正なターゲットを作成する。
- Bugzilla 13149: リリースされた libphobos2.a が PIC コードでビルドされている。
ウェブサイトのリグレッション
- Bugzilla 12813: パーサーがfloat構文とUFC構文を混同する。
ウェブサイトのバグ
- Bugzilla 1497: DWikiデバッガーのページへのリンクを追加する
- Bugzilla 1574: DDocドキュメントにマクロ例がない。
- Bugzilla 3093: Object.factoryのドキュメントが不完全である
- Bugzilla 4164: sieve Sample D Program -- 配列表現に関するドキュメントが必要である。
- Bugzilla 6017: std.algorithm.removeのリンクが間違っている。
- Bugzilla 7075: クラスに対するopAssignのオーバーロードの指定が不十分である。
- Bugzilla 7459: 相互にネストされた関数の回避策を文書化すること。
- Bugzilla 8074: テンプレートミックスインの例が矛盾している。
- Bugzilla 8798: タプルのカレーの例はカレーとは言えない。
- Bugzilla 9542: std.rangeドキュメントページのリンク切れ
- Bugzilla 10033: ベクター拡張" の章における間違った例
- Bugzilla 10231: Spec:文書型エイリアスパラメータ機能
- Bugzilla 10297: メモリーセーフD仕様は古い
- Bugzilla 10564: 言語仕様のテンプレートページのエラー
- Bugzilla 10764: バグ報告 / issue trackerへのより良いリンク / デフォルト検索に解決されたものを含める
- Bugzilla 10901: Win_64 オートテスター KO'd
- Bugzilla 11104: AA内部でのstructsasd初期化の正確な動作を文書化する。
- Bugzilla 11396: 関数エイリアスの宣言が仕様に従って有効ではない
- Bugzilla 11462: std.algorithm.multiSortがインデックスにない。
- Bugzilla 11638: 可変長引数関数のドキュメントが古い例である。
- Bugzilla 11846: pragma/(mangle)のドキュメントがない。
- Bugzilla 11867: 新しい package.d 機能のドキュメント
- Bugzilla 11917: サイトルートで見つかった古いphobosドキュメントページ
- Bugzilla 11979: inout const がドキュメント化されていない
- Bugzilla 12005: DDocの例: 枯れたプロジェクトに言及しているが、もっと新しいプロジェクトが存在し、それに言及していない。
- Bugzilla 12241: staticなopCallへの変更履歴を "変更履歴"に記載する。
- Bugzilla 12293: std.algorithmのチートシートにforwardがない。
- Bugzilla 12459: Bugzillaがhttpsのサイトでのみユーザーをログインさせ、httpからhttpsにリダイレクトしない。
- Bugzilla 12526: 大文字と小文字を区別するファイル名に関するDDoxの可能性
- Bugzilla 12535: 言語紹介ページがインデックスからリンクされていない
- Bugzilla 12538: ZeroBUGSのリンクが壊れている
- Bugzilla 12607: IUnknownクラスをオーバーライドする場合、extern(D)でtoStringをマークしなければならないことを文書化した。
- Bugzilla 12623: 言語仕様で言及されていない特殊な字句構造の場合
- Bugzilla 12740: DMDは無効なバージョン構文を受け入れる
- Bugzilla 13012: https://dlang.org/bugstats.php にオープン・バグ・チャートがない
ウェブサイトの強化
- Bugzilla 8103: ドキュメントの Jump-to リストで大文字と小文字を区別しないソートを使用するようにした。
- Bugzilla 12783: ナビゲーション・サイドバーに'Third Party Libraries'リンクを追加。
- Bugzilla 12858: AAにおけるopEqualsの使用法を文書化する
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku