[Issue 6606] RefCounted doesn't work with unions due to use of format

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6606


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

   Keywords||patch


--- Comment #4 from Kenji Hara k.hara...@gmail.com 2011-09-06 00:04:34 PDT ---
https://github.com/D-Programming-Language/phobos/pull/242

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6608] Tuple field is not escaped

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6608


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

   Keywords||patch


--- Comment #1 from Kenji Hara k.hara...@gmail.com 2011-09-06 00:04:41 PDT ---
https://github.com/D-Programming-Language/phobos/pull/242

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6323] Regression(2.054) calling opAssign inside a struct initializer

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6323


Don clugd...@yahoo.com.au changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||clugd...@yahoo.com.au
 Resolution||FIXED


--- Comment #2 from Don clugd...@yahoo.com.au 2011-09-06 00:56:42 PDT ---
This had the same root cause as bug 6337.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6584] ICE on large version number/debug level

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6584


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

   Keywords||patch
 CC||yebbl...@gmail.com
   Platform|Other   |All
 OS/Version|Linux   |All


--- Comment #1 from yebblies yebbl...@gmail.com 2011-09-06 17:56:45 EST ---
https://github.com/D-Programming-Language/dmd/pull/366

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6337] [CTFE] ICE when touching member variable of struct during CTFE

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6337


Don clugd...@yahoo.com.au changed:

   What|Removed |Added

 CC||soy...@gmail.com


--- Comment #4 from Don clugd...@yahoo.com.au 2011-09-06 00:56:59 PDT ---
*** Issue 6323 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6323] Regression(2.054) calling opAssign inside a struct initializer

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6323


Don clugd...@yahoo.com.au changed:

   What|Removed |Added

 Resolution|FIXED   |DUPLICATE


--- Comment #3 from Don clugd...@yahoo.com.au 2011-09-06 00:56:59 PDT ---
*** This issue has been marked as a duplicate of issue 6337 ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3180] Covariance of delegates/function pointers

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3180


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

   Keywords|patch   |
 Status|RESOLVED|REOPENED
   Platform|Other   |All
 Resolution|FIXED   |
 OS/Version|Windows |All


--- Comment #10 from yebblies yebbl...@gmail.com 2011-09-06 18:12:49 EST ---
Partial is partial.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5766] undefined reference to `_D3std4bind12__ModuleInfoZ'

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5766


Don clugd...@yahoo.com.au changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


--- Comment #3 from Don clugd...@yahoo.com.au 2011-09-06 01:24:59 PDT ---
Bug 6014 has the same test case, and unlike this bug report, it makes sense.

*** This issue has been marked as a duplicate of issue 6014 ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6014] rt_finalize Segmentation fault , dmd 2.053 on linux freebsd

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6014



--- Comment #16 from Don clugd...@yahoo.com.au 2011-09-06 01:24:59 PDT ---
*** Issue 5766 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6608] Tuple field is not escaped

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6608


bearophile_h...@eml.cc changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bearophile_h...@eml.cc
 Resolution||FIXED


--- Comment #2 from bearophile_h...@eml.cc 2011-09-06 01:45:10 PDT ---
Merged, and it works. Thanks for your work.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3267] int delegate() should be implicitly castable to const(int) delegate()

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3267


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||yebbl...@gmail.com
 Resolution||DUPLICATE


--- Comment #1 from yebblies yebbl...@gmail.com 2011-09-06 18:49:34 EST ---
*** This issue has been marked as a duplicate of issue 3180 ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3180] Covariance of delegates/function pointers

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3180


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

 CC||clugd...@yahoo.com.au


--- Comment #11 from yebblies yebbl...@gmail.com 2011-09-06 18:49:34 EST ---
*** Issue 3267 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3180] Covariance of delegates/function pointers

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3180


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

   Keywords||patch
   Severity|normal  |critical


--- Comment #12 from yebblies yebbl...@gmail.com 2011-09-06 19:02:19 EST ---
Part was fixed by
https://github.com/D-Programming-Language/dmd/commit/dfb683f63ec89709b0bf2760ef3b2a249ce320eb

Raising importance as while not a regression, this fixes one. (bug 6352)

Pull for the remaining common type bugs:
https://github.com/D-Programming-Language/dmd/pull/368

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3180] Covariance of delegates/function pointers

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3180


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

   Keywords||patch
   Severity|normal  |critical


--- Comment #12 from yebblies yebbl...@gmail.com 2011-09-06 19:02:19 EST ---
Part was fixed by
https://github.com/D-Programming-Language/dmd/commit/dfb683f63ec89709b0bf2760ef3b2a249ce320eb

Raising importance as while not a regression, this fixes one. (bug 6352)

Pull for the remaining common type bugs:
https://github.com/D-Programming-Language/dmd/pull/368

--- Comment #13 from yebblies yebbl...@gmail.com 2011-09-06 19:03:45 EST ---
Part was fixed by
https://github.com/D-Programming-Language/dmd/commit/dfb683f63ec89709b0bf2760ef3b2a249ce320eb

Raising importance as while not a regression, this fixes one. (bug 6352)

Pull for the remaining common type bugs:
https://github.com/D-Programming-Language/dmd/pull/368

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5590] ICE when using .values on enum which is associative array

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5590


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 CC||yebbl...@gmail.com
   Platform|x86 |All
 Resolution|DUPLICATE   |
 OS/Version|Linux   |All


--- Comment #4 from yebblies yebbl...@gmail.com 2011-09-06 19:10:00 EST ---
Not a duplicate, but probably related.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6606] RefCounted doesn't work with unions due to use of format

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6606


Jonathan M Davis jmdavisp...@gmx.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||jmdavisp...@gmx.com
 Resolution||FIXED


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3813] Bad writeln of arrays

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3813



--- Comment #24 from bearophile_h...@eml.cc 2011-09-06 02:31:57 PDT ---
(In reply to comment #23)

 Why are we spending our valuable time on this?

Because I print tuples often, and I'd like to see this situation improved. See
also:
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.Darticle_id=143987


 Quite honestly I think the noise is in this discussion.

It was an useful discussion already:
http://d.puremagic.com/issues/show_bug.cgi?id=6606

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6377] std.conv.to should check range when changing signedness

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6377


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


--- Comment #9 from Kenji Hara k.hara...@gmail.com 2011-09-06 02:44:21 PDT ---
https://github.com/D-Programming-Language/phobos/commit/995ddfc3316a6f6c520f84e6b44fb6c6c3c26d63

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6610] New: opAssign when copy-ing array

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6610

   Summary: opAssign when copy-ing array
   Product: D
   Version: unspecified
  Platform: Other
OS/Version: All
Status: NEW
  Severity: minor
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: luka8...@owave.net


--- Comment #0 from luka8088 luka8...@owave.net 2011-09-06 02:47:02 PDT ---
/*
 * As discussed on #d @ freenode on 2011-09-06
 * Should this work ?
 *
 */

import std.stdio;

struct s {

  int a;
  int b;
  int c;

  void opAssign (s value) {

// Should opAssign be call for each array member ?
(this)[0..1] = (value)[0..1];

// causes infinite loop (as it should)
// this = value;

this.c = 4;
  }

}

void main () {
  writeln(start);

  s s1;
  s1.a = 1;
  s1.b = 2;
  s1.c = 3;

  s s2;
  s2 = s1;

  writeln(s1.a,  , s1.b,  , s1.c); // 1 2 3
  writeln(s2.a,  , s2.b,  , s2.c); // 1 2 4

  writeln(end);
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 4977] cannot use nothrow or pure with Rebindable

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4977


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


--- Comment #5 from Kenji Hara k.hara...@gmail.com 2011-09-06 03:05:22 PDT ---
https://github.com/D-Programming-Language/phobos/commit/936f2a4c38dcca8cfe0a7e4247bddcff2f19f8ba

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6611] New: array[]++ and array[]-- too?

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6611

   Summary: array[]++ and array[]-- too?
   Product: D
   Version: D2
  Platform: x86
OS/Version: Windows
Status: NEW
  Severity: enhancement
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2011-09-06 03:17:47 PDT ---
This code contains two operations that are refused by DMD2.055beta:

void main() {
int[10] a;
a[] += 1; // OK
++a[];// OK
--a[];// OK
a[]++;// line 6, error
a[]--;// line 7, error
}


test2.d(6): Error: slice expression a[] is not a modifiable lvalue
test2.d(6): Error: 'a[]' is not a scalar, it is a int[]
test2.d(6): Error: cannot cast int to int[]
test2.d(7): Error: slice expression a[] is not a modifiable lvalue
test2.d(7): Error: 'a[]' is not a scalar, it is a int[]
test2.d(7): Error: cannot cast int to int[]


Maybe it's better to allow the last two lines too.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6612] New: Associative arrays with associative array keys literals

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6612

   Summary: Associative arrays with associative array keys
literals
   Product: D
   Version: D2
  Platform: x86
OS/Version: Windows
Status: NEW
  Keywords: rejects-valid
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2011-09-06 03:21:48 PDT ---
void main() {
auto aa1 = [1: 2]; // OK
auto aa2 = [4: 5]; // OK
int[int[int]] aa3 = [a1a:3, a1b:6]; // OK
int[int[int]] aa4 = [[1:2]:3, [4:5]:6]; // error
}


DMD 2.055beta shows:

test.d(5): comma expected separating array initializers, not :
test.d(5): semicolon expected, not '3'
test.d(5): found ':' when expecting ';' following statement
test.d(5): found ']' when expecting ';' following statement

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6611] array[]++ and array[]-- too?

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6611


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

 CC||yebbl...@gmail.com


--- Comment #1 from yebblies yebbl...@gmail.com 2011-09-06 23:34:55 EST ---
This line implies the following
a[]++ = (auto tmp = a[].dup, ++a[], tmp)

Do we really want it to be this easy to do?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5665] DmdScript Bug, Program.compile is very slow

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5665


Dmitry Olshansky dmitry.o...@gmail.com changed:

   What|Removed |Added

 CC||dmitry.o...@gmail.com


--- Comment #2 from Dmitry Olshansky dmitry.o...@gmail.com 2011-09-06 
08:48:34 PDT ---
Thanks for pointing this out, I was maintaining D2 port in my spare time, and
will sure have a look at this.
As for DMDscript bugzilla here it is:
http://bugzilla.digitalmars.com/issues/

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6611] array[]++ and array[]-- too?

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6611



--- Comment #2 from bearophile_h...@eml.cc 2011-09-06 10:22:34 PDT ---
(In reply to comment #1)
 This line implies the following
 a[]++ = (auto tmp = a[].dup, ++a[], tmp)
 
 Do we really want it to be this easy to do?

I understand. If doing this is not good, then I suggest to turn this into a
diagnostic enhancement request. So given code like this:

void main() {
int[10] a;
a[]++;
}


to raise a single error message that explains why that vector op is on purpose
not supported.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6611] array[]++ and array[]-- too?

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6611



--- Comment #3 from yebblies yebbl...@gmail.com 2011-09-07 03:41:35 EST ---
(In reply to comment #2)
 I understand. If doing this is not good, then I suggest to turn this into a
 diagnostic enhancement request. So given code like this:
 

It's probably not worth introducing yet another hidden allocation, or a special
case as it can be easily written using pre-inc.

 void main() {
 int[10] a;
 a[]++;
 }
 
 
 to raise a single error message that explains why that vector op is on purpose
 not supported.

That sounds reasonable, the error message is terrible.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6607] critical_.d and critical.c use double check locking the wrong way

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6607


Sean Kelly s...@invisibleduck.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC||s...@invisibleduck.org


--- Comment #1 from Sean Kelly s...@invisibleduck.org 2011-09-06 11:27:42 PDT 
---
I've always hoped that because Walter implemented this module, he did so
knowing how DMD would generate the involved code.  I do agree that this isn't a
safe long-term assumption though, since the compiler may change, leaving the
need to update this code as a forgotten detail.

What should really happen is for all the .c modules to be transitioned to .d
modules, and for any questionable practices like these to be changed to
something more universally reliable.  Between new language features and
core.atomic I think this can be improved without actually sacrificing
performance.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 4890] GC.collect() deadlocks multithreaded program.

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4890


Sean Kelly s...@invisibleduck.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


--- Comment #6 from Sean Kelly s...@invisibleduck.org 2011-09-06 11:39:15 PDT 
---
A thread will be added to the global thread list before its TLS range is set,
but the range will be set before the thread ever actually uses TLS data.  I
think this one can be closed.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6045] Unable to demangle symbols

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6045


Sean Kelly s...@invisibleduck.org changed:

   What|Removed |Added

 CC||s...@invisibleduck.org


--- Comment #2 from Sean Kelly s...@invisibleduck.org 2011-09-06 12:13:06 PDT 
---
Is that second symbol really valid?  Here's a brief run-down of one pertinent
portion of the parse, given:

70__T15SqlitePersisterTS8serenity9persister6Sqlite11__unittest6FZ

The format for a TemplateInstanceName is:

Number __T LName TemplateArgs Z

So we pick off '70' as Number, match the '__T', pick out the LName of
SqlitePersister, then match a template arg (which begin with a 'T', 'V', or
'S') to get serenity.persister.Sqlite.__unittest6.  At this point we expect a
'T', 'V', or 'S' if there's another template arg to parse... there isn't one,
so we jump back to parsing the TemplateInstance name and expect a 'Z' to
terminate the name.  We find an 'F' instead, so this isn't a template name and
so we assume that this is a weird qualified name instead.

Is there some use of the 'F' that the ABI doesn't mention?  Otherwise I think
core.demangle is currently correct in its treatment of the second symbol.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6613] New: Can't use empty tuple as default value for variadic template function parameter

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6613

   Summary: Can't use empty tuple as default value for variadic
template function parameter
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: minor
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: thecybersha...@gmail.com


--- Comment #0 from Vladimir Panteleev thecybersha...@gmail.com 2011-09-06 
12:40:19 PDT ---
template Tuple(T...) { alias T Tuple; }

void f(T...)(int arg0 = 0, T argN = Tuple!());

static this() { f(); }

Compiler output:
test.d(3): Error: cannot implicitly convert expression (tuple()) of type () to
()
test.d(5): Error: template instance test.f!() error instantiating

The compiler requires a default value for argN, because it comes after another
optional argument, but it doesn't seem like an empty tuple can be specified.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6607] critical_.d and critical.c use double check locking the wrong way

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6607



--- Comment #2 from deadalnix deadal...@gmail.com 2011-09-06 14:33:22 PDT ---
Actually, even if the compiler do not reorder that, modern CPU can, and this is
out of control, unless specific precautions are used. It's even more
problematic now that almost everybody has a multicore CPU.

We need stronger guaranties to make the double check locking pattern valid, for
exemple guaranties that java's 5+ volatile keyword provide.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6615] New: Implement optimization for downcast to final class

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6615

   Summary: Implement optimization for downcast to final class
   Product: D
   Version: D2
  Platform: Other
OS/Version: Linux
Status: NEW
  Severity: enhancement
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: timon.g...@gmx.ch


--- Comment #0 from timon.g...@gmx.ch 2011-09-06 16:36:04 PDT ---
Consider this benchmark:

import std.stdio, std.datetime;

class A{}
final class B:A{}
A x;
static this(){x=new B;}

B f1(){ return cast(B)x; }

T fastCast(T,R)(R x){return typeid(x) is typeid(T)?cast(T)cast(void*)x:null;}

B f2(){ return fastCast!(B)(x); }

void main() {
auto a=benchmark!(f1,f2)(100);
writeln(a[0].to!(seconds,double));
writeln(a[1].to!(seconds,double));
}


f2 is about 30x faster on my machine, compiled with dmd -O -release -inline.
(DMD 2.054). If the benchmark is changed so that the cast does not succeed, the
difference is even larger.
This means DMD should probably optimize downcasts to final classes to a simple
typeid pointer comparison. That is safe, because final classes have no
children.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6615] Implement optimization for downcast to final class

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6615



--- Comment #1 from timon.g...@gmx.ch 2011-09-06 16:44:26 PDT ---
hm, ok. It seems that druntime actually does shortcut and most of the
difference boils down to the fact that the druntime function cannot be
inlined...

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5980] foreach element of a type tuple of string literals is not implicitly convertible to immutable(char)*

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5980


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||yebbl...@gmail.com
 Resolution||FIXED


--- Comment #8 from yebblies yebbl...@gmail.com 2011-09-07 13:56:12 EST ---
Fixed in 2.055 beta, probably the same as issue 6220.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6518] break inside a static foreach inside a switch

2011-09-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6518


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

   Keywords||patch, rejects-valid
 CC||yebbl...@gmail.com
   Platform|x86 |All
 OS/Version|Windows |All


--- Comment #4 from yebblies yebbl...@gmail.com 2011-09-07 14:12:22 EST ---
https://github.com/D-Programming-Language/dmd/pull/370

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---