[Issue 16189] Optimizer bug, with simple test case
https://issues.dlang.org/show_bug.cgi?id=16189 --- Comment #2 from Kirill Kryukov --- A possible workaround: change "a--;" into "{ auto a2 = a - 1; a = a2; }". (This is NOT to suggest that the bug does not need fixing, as it's annoying as hell that even simplest C-like code does not work correctly.) As for previous reduction - it hurts my eyes to see size_t (unsigned type) compared for equality with -1, so I suggest to at least use ptrdiff_t. --
[Issue 16190] to!string on enum should be fully qualified for consistency
https://issues.dlang.org/show_bug.cgi?id=16190 Timothee Cour changed: What|Removed |Added CC||timothee.co...@gmail.com Component|dmd |phobos --
[Issue 16191] New: std/digest/digest.d should be renamed to package.d
https://issues.dlang.org/show_bug.cgi?id=16191 Issue ID: 16191 Summary: std/digest/digest.d should be renamed to package.d Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: minor Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: schvei...@yahoo.com The fully qualified name of the digest function template (https://dlang.org/phobos/std_digest_digest.html#digest) is std.digest.digest.digest. This is because std.digest is a package, with a module named digest in it, and the function digest inside that. I think it's reasonable to have std.digest.digest. Even though there's repetition, it's clear that the first digest is a module, the second is a function name. But there's no reason (especially with the advent of package.d) to have a std.digest.digest module. --
[Issue 16190] to!string on enum should be fully qualified for consistency
https://issues.dlang.org/show_bug.cgi?id=16190 b2.t...@gmx.com changed: What|Removed |Added CC||b2.t...@gmx.com Hardware|x86 |All OS|Mac OS X|All --- Comment #1 from b2.t...@gmx.com --- I think that any fix directly in to() can break a lot of code because currently to!string and to!E work together. I'm sure that it's already used as it is now by many people. The fix, if any, should maintain the old behvior and allow to get the identifier when explicitly needed, for example: auto toImpl(T, S, bool fq = false)(auto ref E e) if (is(S == enum) && is(T==string)) {} with "fq" a CT bool that indicates if the output includes the "enum identifier". "Fully qualified" would mean that even the module name would be included so I suppose that what you want is actually the enum identifier. By the way why do you report this as a dmd (and not phobos) issue ? --
[Issue 16189] Optimizer bug, with simple test case
https://issues.dlang.org/show_bug.cgi?id=16189 ag0ae...@gmail.com changed: What|Removed |Added Keywords||wrong-code CC||ag0ae...@gmail.com OS|Windows |All --- Comment #1 from ag0ae...@gmail.com --- Slightly more reduced: void main() { ubyte[9][1] data; size_t a = 0; loop: data[0] = data[a]; a--; bool b = false; if (b) goto loop; assert(a == -1); // Fails with -O } Also happens on Linux. --
[Issue 16188] [REG2.069] ICE on invalid code
https://issues.dlang.org/show_bug.cgi?id=16188 ag0ae...@gmail.com changed: What|Removed |Added CC||ag0ae...@gmail.com Summary|ICE on invalid code |[REG2.069] ICE on invalid ||code --- Comment #1 from ag0ae...@gmail.com --- Reduced further: void where() { Where().name; } struct Where { void opDispatch(string name)() { alias FieldType = typeof(getMember); WhereField!FieldType; } } struct WhereField(FieldType) {} Doesn't segfault with 2.068.2 and earlier. --
[Issue 16190] New: to!string on enum should be fully qualified for consistency
https://issues.dlang.org/show_bug.cgi?id=16190 Issue ID: 16190 Summary: to!string on enum should be fully qualified for consistency Product: D Version: D2 Hardware: x86 OS: Mac OS X Status: NEW Severity: major Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: timothee.co...@gmail.com enum A{ a1, a2, } struct B{ A b1; string b2; int c3; } import std.conv:to; void main(){ auto b=B(A.a1, "foo", 13); enum b_string=`B(a1, "foo", 13)`; assert(b.to!string == b_string); mixin(`auto b1=B(A.a1, "foo", 13);`);//works //mixin(`auto b2=`~b_string~`;`);//Error: undefined identifier 'a1' } Pretty much every type in D works when reconstructing as I did above: mixin(`auto b2=`~b.to!string~`;`); except when there's an enum type somewhere inside What's a workaround? --
[Issue 13572] etc.c.zlib must be nothrow
https://issues.dlang.org/show_bug.cgi?id=13572 --- Comment #4 from Ketmar Dark --- (In reply to Steven Schveighoffer from comment #2) > PR does not mark everything @trusted, that is not a good idea. So that part > is WONTFIX. nothrow is correct. i'd prefer it to have `@trusted` too, but... ok, it's not an issue, i can mark my wrappers `@trusted` instead. thanks. ;-) --
[Issue 13572] etc.c.zlib must be nothrow
https://issues.dlang.org/show_bug.cgi?id=13572 --- Comment #3 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/phobos https://github.com/dlang/phobos/commit/0ae7812969c5d763b0cf133e75dd488845a93ca4 Fix Issue 13572: etc.c.zlib must be nothrow https://github.com/dlang/phobos/commit/968329fc75fffc5e96f0ac108921bfa011d8407a Merge pull request #4451 from JackStouffer/patch-10 Fix Issue 13572: etc.c.zlib must be nothrow --
[Issue 13572] etc.c.zlib must be nothrow
https://issues.dlang.org/show_bug.cgi?id=13572 Steven Schveighoffer changed: What|Removed |Added CC||schvei...@yahoo.com --- Comment #2 from Steven Schveighoffer --- PR does not mark everything @trusted, that is not a good idea. So that part is WONTFIX. nothrow is correct. --
[Issue 16189] Optimizer bug, with simple test case
https://issues.dlang.org/show_bug.cgi?id=16189 Kirill Kryukov changed: What|Removed |Added CC||kkryu...@gmail.com --
[Issue 16189] New: Optimizer bug, with simple test case
https://issues.dlang.org/show_bug.cgi?id=16189 Issue ID: 16189 Summary: Optimizer bug, with simple test case Product: D Version: D2 Hardware: x86_64 OS: Windows Status: NEW Severity: critical Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: kkryu...@gmail.com Consider this code: === a.d === struct T { long a, b; } T[] data = [{0,0}]; void main() { int a = 0; for (int i = 0; i >= 0; i--) { data[0] = data[a]; a--; } assert(a == -1); // Fails with -O } === end === Fails when built with "-O", succeeds without "-O". The full command line: dmd a.d -ofa.exe -O dmd a.d -ofb.exe Windows 7, dmd 2.071.0 If you add "-m64" to dmd command, the bug disappears, but re-appears if "int a" is changed to "long a". Reduced from a large project with the help of dustmite and a lot of "WTF!". --
[Issue 13572] etc.c.zlib must be nothrow
https://issues.dlang.org/show_bug.cgi?id=13572 Jack Stouffer changed: What|Removed |Added CC||j...@jackstouffer.com --- Comment #1 from Jack Stouffer --- https://github.com/dlang/phobos/pull/4451 --
[Issue 15704] @safe code should not allow copying to/from void[]
https://issues.dlang.org/show_bug.cgi?id=15704 --- Comment #6 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/378e6e3ff01e8e1afd5b5bb97d259ae68918ef9e fix Issue 15704 - @safe code should not allow copying to/from void[] https://github.com/dlang/dmd/commit/8ed696695c913234d7bed276215c9dcae8a9cc66 Merge pull request #5877 from WalterBright/fix15704 fix Issue 15704 - @safe code should not allow copying to/from void[] --
[Issue 15704] @safe code should not allow copying to/from void[]
https://issues.dlang.org/show_bug.cgi?id=15704 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 16188] ICE on invalid code
https://issues.dlang.org/show_bug.cgi?id=16188 greensunn...@gmail.com changed: What|Removed |Added URL|http://dlang.org/ | CC||greensunn...@gmail.com Summary|[Home] |ICE on invalid code --
[Issue 16188] [Home]
https://issues.dlang.org/show_bug.cgi?id=16188 Sobirari Muhomori changed: What|Removed |Added Keywords||ice-on-invalid-code --