[Issue 5590] Regression(2.036) ICE(e2ir.c): when using .values on enum which is associative array

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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()

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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()

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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

2012-03-03 Thread d-bugmail
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: ---