[Issue 5590] Regression(2.036) ICE(e2ir.c): when using .values on enum which is associative array
http://d.puremagic.com/issues/show_bug.cgi?id=5590 --- Comment #10 from github-bugzi...@puremagic.com 2012-03-03 00:33:01 PST --- Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/44dae0ddcbdd851f8f73d4332ecfd415a2889e72 fix Issue 5590 - Regression(2.036) ICE(e2ir.c): when using .values on enum which is associative array -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7634] New: optlink creates bad debug info for a large number of modules
http://d.puremagic.com/issues/show_bug.cgi?id=7634 Summary: optlink creates bad debug info for a large number of modules Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Optlink AssignedTo: nob...@puremagic.com ReportedBy: r.sagita...@gmx.de --- Comment #0 from Rainer Schuetze r.sagita...@gmx.de 2012-03-03 04:03:43 PST --- Here's some code to generate 4000 functions: import std.stdio; import std.typetuple; template countTuple(int n) { static if (n 0) alias TypeTuple!(countTuple!(n - 1), n - 1) countTuple; else alias TypeTuple!() countTuple; } void func(int i, int j)() { writeln(i, j); } void fun() { foreach(i; countTuple!(40)) foreach(j; countTuple!(100)) func!(i, j)(); } When compiling it to a library with debug information: dmd -g -lib test.d And linking it with a simple main.d: import test; void main() { fun(); } dmd -g main.d test.lib the linker generates bad sstModule information for modules #2730, #4095, #6826,..., e.g. Module #2730 (0074CB64) SubSection: (undefined) iMod: 0 lfo: 76412 cb:25 unsupported type 0 Module #2731 (0074CB70) SubSection:0120 (sstModule) iMod: 2731 lfo: 76440 The module numbers seem fixed, they also appear in completely different code. BTW: if you increase the numbers of functions to 1, optlink crashes. Maybe some of the other reported crashes are related. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7534] Allow attribute-overloading of an overridden method
http://d.puremagic.com/issues/show_bug.cgi?id=7534 --- Comment #6 from Kenji Hara k.hara...@gmail.com 2012-03-03 07:01:05 PST --- I think this is almost same as issue 3757, and I think additional overload in derived class is useful and should work. Example: // after fixing object const correctness (bug 1824) class Object { bool opEquals(const Object o); //... } class C { alias super.opEquals opEquals; // additional overload for mutable object equality override bool opEquals(Object o) { // special processing, e.g. caching return super.opEquals(o); } } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7628] Regression with std.string format and alias this
http://d.puremagic.com/issues/show_bug.cgi?id=7628 --- Comment #3 from David ad...@dav1d.de 2012-03-03 07:04:33 PST --- https://github.com/D-Programming-Language/phobos/pull/473 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7534] Allow attribute-overloading of an overridden method
http://d.puremagic.com/issues/show_bug.cgi?id=7534 Kenji Hara k.hara...@gmail.com changed: What|Removed |Added Keywords||pull --- Comment #7 from Kenji Hara k.hara...@gmail.com 2012-03-03 07:06:37 PST --- https://github.com/D-Programming-Language/dmd/pull/779 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3282] The overload and override issue of const/immutable member functions
http://d.puremagic.com/issues/show_bug.cgi?id=3282 Kenji Hara k.hara...@gmail.com changed: What|Removed |Added Keywords||pull --- Comment #11 from Kenji Hara k.hara...@gmail.com 2012-03-03 07:18:10 PST --- https://github.com/D-Programming-Language/dmd/pull/779 I also think this never breaks type systems, and additional overloads is useful. e.g. http://d.puremagic.com/issues/show_bug.cgi?id=7534#c6 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7628] Regression with std.string format and alias this
http://d.puremagic.com/issues/show_bug.cgi?id=7628 --- Comment #4 from Kenji Hara k.hara...@gmail.com 2012-03-03 08:29:31 PST --- This test case with 2.059head does not raise errors, but std.format still has an issue. Reduced test case: struct Foo { int[] bar; alias bar this; } void main() { import std.format; import std.array; auto w = appender!string(); FormatSpec!char f; Foo foo; formatValue(w, foo, f);// OK formatValue(w, Foo(), f); // NG } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7635] New: Inconsistent naming in std.stdio - byLine(), byChunk()
http://d.puremagic.com/issues/show_bug.cgi?id=7635 Summary: Inconsistent naming in std.stdio - byLine(), byChunk() Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: minor Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: datta.sand...@gmail.com --- Comment #0 from Sandeep Datta datta.sand...@gmail.com 2012-03-03 10:18:23 PST --- The nomenclature adopted for some std.stdio methods like byLine and byChunk is inconsistent with preestablished conventions where functions/properties returning a collection of entities is named using the plural form of said entity. Following convention reduces the cognitive load on developers significantly in the long run. In view of the above IMHO byLine() and byChunk(size_t) should be renamed to lines() and chunks(size_t) respectively. Also the struct ByLines should be renamed to something like LineReader (let's avoid the plural form LinesReader here since presumably the LineReader reads one line at a time). Also convention dictates that class names should be nouns. English is not my first language but IMO by lines is neither a noun nor a noun phrase (or gerund for that matter). It seems the by*() names facilitate fluent reading of the foreach construct but as the following code snippet shows the fluency is not lost by using the suggested names... //Read: for each line in stdin.lines() do ... foreach(line; stdin.lines(){ ...do something with line... } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 5590] Regression(2.036) ICE(e2ir.c): when using .values on enum which is associative array
http://d.puremagic.com/issues/show_bug.cgi?id=5590 Walter Bright bugzi...@digitalmars.com changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution||FIXED -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7635] Inconsistent naming in std.stdio - byLine(), byChunk()
http://d.puremagic.com/issues/show_bug.cgi?id=7635 Walter Bright bugzi...@digitalmars.com changed: What|Removed |Added Status|NEW |RESOLVED CC||bugzi...@digitalmars.com Resolution||WONTFIX Severity|minor |enhancement --- Comment #1 from Walter Bright bugzi...@digitalmars.com 2012-03-03 12:03:43 PST --- Renaming these things breaks existing code. There's got to be a pretty high value to justify such breakage, and I don't think this case is justified. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7636] New: const hole for implicit conversion to base class
http://d.puremagic.com/issues/show_bug.cgi?id=7636 Summary: const hole for implicit conversion to base class Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: d...@dawgfoto.de --- Comment #0 from d...@dawgfoto.de 2012-03-03 16:17:19 PST --- class Base { int _val; } class Foo : Base { Base base() const { return this; } } void main() { const(Foo) foo = new const(Foo); static assert(!__traits(compiles, foo._val = 1)); static assert(!__traits(compiles, foo.base()._val = 1)); foo.base()._val = 1; assert(foo._val == 0); } Also broken for immutable and shared. This is probably implemented as 'return cast(Base)this;' and needs to include the right modifiers. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7637] New: writeln doesn't take custom toString into account
http://d.puremagic.com/issues/show_bug.cgi?id=7637 Summary: writeln doesn't take custom toString into account Product: D Version: D2 Platform: All OS/Version: All Status: NEW Keywords: accepts-invalid Severity: normal Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: andrej.mitrov...@gmail.com --- Comment #0 from Andrej Mitrovic andrej.mitrov...@gmail.com 2012-03-03 17:11:49 PST --- import std.stdio; struct Foo { string toString(bool x) { return ; } } void main() { Foo foo; writeln(foo.toString()); // nogo: ok writeln(foo); // compiles } The second writeln() call shouldn't compile. It seems writeln uses a default toString if it doesn't find a toString() function that takes exactly zero arguments. Note that it will call the custom toString if 'x' has a default argument. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7628] Regression with std.string format and alias this
http://d.puremagic.com/issues/show_bug.cgi?id=7628 --- Comment #6 from Kenji Hara k.hara...@gmail.com 2012-03-03 18:15:15 PST --- Pull request: https://github.com/D-Programming-Language/phobos/pull/473 Merged commit: https://github.com/D-Programming-Language/phobos/commit/b01e60f7195336e79dbe9e0aeef2925041d7f99b -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7640] New: CTFE: Confusing error message when looking up missing hash key
http://d.puremagic.com/issues/show_bug.cgi?id=7640 Summary: CTFE: Confusing error message when looking up missing hash key Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: andrej.mitrov...@gmail.com --- Comment #0 from Andrej Mitrovic andrej.mitrov...@gmail.com 2012-03-03 18:23:47 PST --- enum Enums { a, b } void main() { enum Fields = [ Enums.a : a, ]; mixin(auto x = ~ Fields[Enums.b] ~ ;); } Errors: test.d(16): Error: argument to mixin must be a string, not (auto x = ~ [cast(Enums)0:a][cast(Enums)1] ~ ;) test.d(16): Error: argument to mixin must be a string, not (auto x = ~ [cast(Enums)0:a][cast(Enums)1] ~ ;) I'd rather the errors be something like: test.d(16): Error: CTFE: Key 'Enums.b' is not in 'Fields' test.d(16): Error: argument to mixin must be a string, not (auto x = ~ (__error) ~ ;) We could also get rid of duplicate error messages. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 5525] Eponymous templates should allow for overloaded eponymous members
http://d.puremagic.com/issues/show_bug.cgi?id=5525 --- Comment #5 from github-bugzi...@puremagic.com 2012-03-03 19:28:13 PST --- Commit pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/dd9bbbf78a8371dc21bbd1a0bd63b13dc88a8107 Remove workaround for issue 5525 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 6329] Out of range exceptions not thrown in certain cases
http://d.puremagic.com/issues/show_bug.cgi?id=6329 --- Comment #9 from Walter Bright bugzi...@digitalmars.com 2012-03-03 20:21:31 PST --- (In reply to comment #0) import std.stdio; import std.file; void main() { foreach (string entry; dirEntries(., SpanMode.shallow)) { writeln(entry[0..1000]); // out of range } } DMD 2.053: D:\dmd test.d test.exe core.exception.RangeError@test(8): Range violation DMD 2.054: D:\dmd test.d test.exe D:\ Wheres the range error?? The range error is 'entry' is a string, and you are slicing it beyond it's end. This is not a bug in the compiler or runtime, it's in your code. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7636] const hole for implicit conversion to base class
http://d.puremagic.com/issues/show_bug.cgi?id=7636 yebblies yebbl...@gmail.com changed: What|Removed |Added CC||yebbl...@gmail.com --- Comment #1 from yebblies yebbl...@gmail.com 2012-03-04 15:59:53 EST --- Is this just 3731? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 2443] opApply should allow delegates that are not ref if it makes no sense
http://d.puremagic.com/issues/show_bug.cgi?id=2443 --- Comment #4 from github-bugzi...@puremagic.com 2012-03-03 21:25:06 PST --- Commit pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/f4a653ad068abe8436bac8dedd597533515ed090 Merge pull request #474 from dsimcha/master Remove Bug 2443 Workaround from InputRangeObject -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 6681] struct constructor call is converted to struct literal that breaks union initialization
http://d.puremagic.com/issues/show_bug.cgi?id=6681 --- Comment #10 from Walter Bright bugzi...@digitalmars.com 2012-03-03 21:30:50 PST --- It's a compiler structural problem: there's no way to specify a struct literal with missing fields. I don't know about in CTFE, but in the rest of the compiler the code is in place to just have elements[i] be NULL for missing fields. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 6681] struct constructor call is converted to struct literal that breaks union initialization
http://d.puremagic.com/issues/show_bug.cgi?id=6681 --- Comment #11 from yebblies yebbl...@gmail.com 2012-03-04 16:45:03 EST --- (In reply to comment #10) It's a compiler structural problem: there's no way to specify a struct literal with missing fields. I don't know about in CTFE, but in the rest of the compiler the code is in place to just have elements[i] be NULL for missing fields. I have branch for this that mostly works, but no time to work on it at the moment. https://github.com/yebblies/dmd/tree/ctfeunion -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7641] New: std.typecons.Proxy incorrectly allows implicit conversion to class
http://d.puremagic.com/issues/show_bug.cgi?id=7641 Summary: std.typecons.Proxy incorrectly allows implicit conversion to class Product: D Version: D2 Platform: All OS/Version: All Status: NEW Keywords: accepts-invalid Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: k.hara...@gmail.com --- Comment #0 from Kenji Hara k.hara...@gmail.com 2012-03-03 22:11:32 PST --- import std.typecons; void main() { class C {} auto a = Typedef!C(new C); C b = a; // accepts-invalid } This is a dmd bug, because opBinaryRight runs unexpectedly. Reduced test case: mixin template Proxy(alias a) { auto ref opBinaryRight(string op, B)(auto ref B b) { return mixin(b ~op~ a); } } struct Typedef(T) { private T Typedef_payload; this(T init) { Typedef_payload = init; } mixin Proxy!Typedef_payload; } void main() { class C {} C c1 = new C(); auto a = Typedef!C(c1); C c2 = a; } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7641] std.typecons.Proxy incorrectly allows implicit conversion to class
http://d.puremagic.com/issues/show_bug.cgi?id=7641 Kenji Hara k.hara...@gmail.com changed: What|Removed |Added Keywords||pull --- Comment #1 from Kenji Hara k.hara...@gmail.com 2012-03-03 22:22:09 PST --- https://github.com/D-Programming-Language/dmd/pull/780 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7563] Class members with default template arguments have no type
http://d.puremagic.com/issues/show_bug.cgi?id=7563 --- Comment #2 from github-bugzi...@puremagic.com 2012-03-03 22:57:50 PST --- Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/9225eea616ceb84e3b04d4e27c4d75db69fd282f Merge pull request #766 from 9rnsr/fix7563 Issue 7563 - Class members with default template arguments have no type -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7642] New: opDispatch with AA crashes dmd
http://d.puremagic.com/issues/show_bug.cgi?id=7642 Summary: opDispatch with AA crashes dmd Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: zan77...@nifty.com --- Comment #0 from SHOO zan77...@nifty.com 2012-03-03 23:10:24 PST --- This code crashes dmd: struct Foo { int[int] foo; } struct Bar { Foo xxx; template opDispatch(string name) { @property auto ref opDispatch(this X, V)(auto ref V v) { return mixin(xxx.~name~ = v); } } } void main() { Bar bar; bar.foo[0] = 0; } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---