[Issue 11461] `Error`s are not thrown as `pure nothrow` functions are optimized out with -O -release

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11461



--- Comment #3 from Martin Nowak c...@dawg.eu 2013-11-15 00:09:19 PST ---
Interesting btw, such a function will either never or always throw an Error.

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


[Issue 8525] optimizer loops infinitely

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=8525



--- Comment #3 from Walter Bright bugzi...@digitalmars.com 2013-11-15 
00:12:00 PST ---
https://github.com/D-Programming-Language/dmd/pull/2774

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


[Issue 11034] ICE: Assertion failed: (!scope), function toObjFile, file toobj.c, line 366.

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11034


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

   What|Removed |Added

   Keywords||pull


--- Comment #2 from Kenji Hara k.hara...@gmail.com 2013-11-15 00:25:20 PST ---
(In reply to comment #1)
 Adding:
 
  Module::dprogress = 1;
  Module::runDeferredSemantic();
 
 to line 1577 in mars.c resolves the forward ref problem. But the bizarre thing
 is with or without that change, the std.range import results in errors, caused
 by the unrelated fwd refs. I'm baffled at the moment.

The root cause is that current forward reference check for class declarations
is strongly associated with class instance size.

https://github.com/D-Programming-Language/dmd/pull/2775

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


[Issue 8650] SLice opOpAssign SLice with overlap does not throw

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=8650



--- Comment #10 from Martin Nowak c...@dawg.eu 2013-11-15 00:49:44 PST ---
(In reply to comment #8)
 IMHO, debug/release builds of druntime (or any library) are the wrong 
 direction
 for contract enforcement.  They pre/post conditions should be visible to call
 sites and executed based on the call site's compilation settings.  For _all_
 code, not just druntime or phobos.

You're right, any contract that is part of the API needs to be visible (or at
least callable) for the caller.

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


[Issue 10074] segfault in dmd

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=10074


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

   What|Removed |Added

 CC||daniel...@bigpond.com


--- Comment #6 from Kenji Hara k.hara...@gmail.com 2013-11-15 00:47:11 PST ---
*** Issue 11090 has been marked as a duplicate of this issue. ***

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


[Issue 11090] ICE Template recursive instantiation causes Segfault

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11090


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

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


--- Comment #1 from Kenji Hara k.hara...@gmail.com 2013-11-15 00:47:10 PST ---
Fixed in 2.064

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

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


[Issue 11461] `Error`s are not thrown as `pure nothrow` functions are optimized out with -O -release

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11461


monarchdo...@gmail.com changed:

   What|Removed |Added

 CC||monarchdo...@gmail.com


--- Comment #4 from monarchdo...@gmail.com 2013-11-15 01:23:58 PST ---
(In reply to comment #2)
 (In reply to comment #1)
  Well, if a function has no side effect and does not produce a result or the
  result isn't used, there is no point in calling it. It's pretty harsh to 
  demand
  that the compiler always calls such functions only to support the minor
  noreturn use-case.
 
 Minor or no it is documented `pure` functions can throw and the compiler
 already consider `pure` but not `nothrow` functions as doing this (i.e. they
 aren't optimized out). So `nothrow` must be treated the same way as `nothrow`
 just means no recoverable `Exception`s are thrown. Breaking language changes
 are welcome but in a separate enhancement issue. Currently 
 `onOutOfMemoryError`
 is no-op because of this and the issue should be fixed.

I don't know... an Error isn't really considered as observable program
behavior, is it? If a function is (either strongly or weakly) pure, takes no
reference arguments, and is nothrow, then it calling it will not have
observable side effect, and can (and IMO should) be optimized out.

This can be workaround simply by forcing the function to look like it can have
observable side effects, as so:

//
void f(void* = null) pure nothrow
{ throw new Error(); }

void main()
{ f(); }
//

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


[Issue 11461] `Error`s are not thrown as `pure nothrow` functions are optimized out with -O -release

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11461



--- Comment #5 from Martin Nowak c...@dawg.eu 2013-11-15 01:35:56 PST ---
(In reply to comment #3)
 Interesting btw, such a function will either never or always throw an Error.

The fix is fairly simple, we need a way to annotate noreturn functions.

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


[Issue 8525] optimizer loops infinitely

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=8525



--- Comment #4 from github-bugzi...@puremagic.com 2013-11-15 03:00:15 PST ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/9ad67cf518b7bb5747a9f9595d71c394a39c4196
fix Issue 8525 - optimizer loops infinitely

https://github.com/D-Programming-Language/dmd/commit/8f635c55a0ee52bcbff193d27a6503855e656a0c
Merge pull request #2774 from WalterBright/fix8525

fix Issue 8525 - optimizer loops infinitely

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


[Issue 8650] SLice opOpAssign SLice with overlap does not throw

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=8650



--- Comment #11 from github-bugzi...@puremagic.com 2013-11-15 03:57:37 PST ---
Commit pushed to master at https://github.com/D-Programming-Language/druntime

https://github.com/D-Programming-Language/druntime/commit/a6aa6ee66dcbe3f77b4e0c816e02d8f32040dede
Fix Issue 8650 - SLice opOpAssign SLice with overlap does not throw

Issue URL: http://d.puremagic.com/issues/show_bug.cgi?id=8650

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


[Issue 11461] `Error`s are not thrown as `pure nothrow` functions are optimized out with -O -release

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11461



--- Comment #6 from github-bugzi...@puremagic.com 2013-11-15 03:57:30 PST ---
Commit pushed to master at https://github.com/D-Programming-Language/druntime

https://github.com/D-Programming-Language/druntime/commit/e68e2459bd9a977338837a7e784041de56b68516
Add issue 11461 workaround.

Issue URL: https://d.puremagic.com/issues/show_bug.cgi?id=11461

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


[Issue 11103] w and d suffix for char literals too

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11103


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

 CC||yebbl...@gmail.com


--- Comment #2 from yebblies yebbl...@gmail.com 2013-11-15 23:18:19 EST ---
Well, I implemented it.

It was pretty easy, but I'm really not sure if it's worth doing after all.

https://github.com/yebblies/dmd/tree/issue11103

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


[Issue 11103] w and d suffix for char literals too

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11103



--- Comment #3 from bearophile_h...@eml.cc 2013-11-15 04:26:43 PST ---
(In reply to comment #2)
 Well, I implemented it.
 
 It was pretty easy, but I'm really not sure if it's worth doing after all.
 
 https://github.com/yebblies/dmd/tree/issue11103

Thanks to a patch from Kenji we'll be able to write:


import std.algorithm: map, joiner;
import std.string: text;
void main() {
string r = [1, 2]
   .map!(x = [1, 2].map!(y = dchar('*')))
   .joiner(_)
   .text;
}


But having the same string suffixes is shorter, better and more uniform with
the string syntax:

.map!(x = [1, 2].map!(y = '*'d))

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


[Issue 11519] New: fixtiming issue in core.thread unittest

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11519

   Summary: fixtiming issue in core.thread unittest
   Product: D
   Version: unspecified
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P4
 Component: druntime
AssignedTo: nob...@puremagic.com
ReportedBy: c...@dawg.eu


--- Comment #0 from Martin Nowak c...@dawg.eu 2013-11-15 04:35:40 PST ---
This will need a second Semaphore like most of the other tests.
https://github.com/D-Programming-Language/druntime/blob/74506d433a174f5ecc89ec268426c809aed25ba8/src/core/thread.d#L2630

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


[Issue 11520] New: [bionic] qsort is missing on linux/bionic

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11520

   Summary: [bionic] qsort is missing on linux/bionic
   Product: D
   Version: unspecified
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: druntime
AssignedTo: nob...@puremagic.com
ReportedBy: c...@dawg.eu


--- Comment #0 from Martin Nowak c...@dawg.eu 2013-11-15 04:43:33 PST ---
Druntime could easily implement it's own qsort.

https://github.com/ldc-developers/ldc/issues/490#issuecomment-28356710

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


[Issue 11521] New: Switch using same name variable leads to Access Violation

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11521

   Summary: Switch using same name variable leads to Access
Violation
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: temta...@gmail.com


--- Comment #0 from Temtaime temta...@gmail.com 2013-11-15 06:01:31 PST ---
import std.algorithm;

void main() {
auto arr = [ 1, 3, 4, 2, 3, 8, 2 ];
int dummy;

switch(0) {
case 1:
auto f = (int a, int b) { return a - dummy  b; };
sort!f(arr);
break;
default:
auto f = (int a, int b) { return a - dummy  b; };
sort!f(arr);
}
}

This code causes AV, renaming second f to f2 runs successful.

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


[Issue 2547] Array Ops should check length, at least when bounds checking is on

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=2547


Denis Shelomovskij verylonglogin@gmail.com changed:

   What|Removed |Added

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


--- Comment #9 from Denis Shelomovskij verylonglogin@gmail.com 2013-11-15 
20:43:35 MSK ---
Fixed in pull
https://github.com/D-Programming-Language/druntime/pull/661

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


[Issue 11175] format prints null for all objects inheriting IUnknown

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11175


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

 CC||yebbl...@gmail.com


--- Comment #2 from yebblies yebbl...@gmail.com 2013-11-16 03:57:12 EST ---
(In reply to comment #1)
 I don't even see any special code handling in Phobos that would cause this. It
 seems like a compiler issue?

Does D still derive from Object?  If not, that's probably the answer.

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


[Issue 11504] [CTFE] JSONValue cannot make in CTFE

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11504



--- Comment #4 from Andrej Mitrovic andrej.mitrov...@gmail.com 2013-11-15 
10:24:30 PST ---
(In reply to comment #2)
 The reason why the code mentioned above was OK in the past is a thing by the
 bugs of the compilers. (SeeAlso: Issue11427

std.json was refactored a while ago and it might be the cause of this
regression. But I still don't understand what the problem is with this code
*right now*. Can anyone try to explain what SHOO meant in plain English?

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


[Issue 11461] `Error`s are not thrown as `pure nothrow` functions are optimized out with -O -release

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11461



--- Comment #7 from github-bugzi...@puremagic.com 2013-11-15 10:33:56 PST ---
Commit pushed to master at https://github.com/D-Programming-Language/druntime

https://github.com/D-Programming-Language/druntime/commit/0422e58d1bd6c86063f73b9ca372e5e16afd64b0
Add issue 11461 workaround.

Issue URL: https://d.puremagic.com/issues/show_bug.cgi?id=11461

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


[Issue 8650] SLice opOpAssign SLice with overlap does not throw

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=8650


Stewart Gordon s...@iname.com changed:

   What|Removed |Added

 CC||s...@iname.com


--- Comment #12 from Stewart Gordon s...@iname.com 2013-11-15 10:30:18 PST ---
(In reply to comment #8)
 IMHO, debug/release builds

By debug do you mean debug or non-release?

 of druntime (or any library) are the wrong direction for contract 
 enforcement.

Then release a build that has the in contracts but is otherwise a release
build.

 They pre/post conditions should be visible to call sites and 
 executed based on the call site's compilation settings.  For _all_ 
 code, not just druntime or phobos.

This has been asked for on many occasions.  But Walter doesn't seem to like
this idea, so I filed issue 9482 and issue 9483 as an alternative way of
dealing with the same problem.

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


[Issue 11461] `Error`s are not thrown as `pure nothrow` functions are optimized out with -O -release

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11461


Temtaime temta...@gmail.com changed:

   What|Removed |Added

 CC||temta...@gmail.com


--- Comment #8 from Temtaime temta...@gmail.com 2013-11-15 10:38:43 PST ---
Hi, guys.
Maybe i'm too stupid, but how nothrow function can throw ?

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


[Issue 8525] optimizer loops infinitely

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=8525



--- Comment #5 from github-bugzi...@puremagic.com 2013-11-15 11:49:07 PST ---
Commit pushed to dmd-1.x at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/5efd1c82b425992da07c57c929028ab3a0f65e8e
Merge pull request #2774 from WalterBright/fix8525

fix Issue 8525 - optimizer loops infinitely

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


[Issue 11461] `Error`s are not thrown as `pure nothrow` functions are optimized out with -O -release

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11461



--- Comment #9 from monarchdo...@gmail.com 2013-11-15 11:53:06 PST ---
(In reply to comment #8)
 Hi, guys.
 Maybe i'm too stupid, but how nothrow function can throw ?

D defines both Exception and Error, which derive from Throwable.
Exception, is what you know from C++: The standard thing that gets thrown
around to notify things like database/io problems: Things that happen and
need to be dealt with. They unwind the stack, destroy things on the stack,
etc...

Error is an entire other beast: They are C++'s assert in more powerful:
They represent a critical error of the program state: corruption, out of
memory, failed assertions. They represent something you *cannot* recover from,
and are telling you the program needs to halt.

Unlike an Exception, Error will blast through the call stack, bypassing
destructors, bypassing nothrow function, bypassing catch(Exception)... They
are not meant to happen general, and shouldn't be handled in the general
sense of the term.

So long story short, an Error can be thrown from a nothrow function, because an
Error doesn't trigger stack cleanup, which means there is no need to generate
_Exceptio_ handling code.

= nothrow means will not throw _Exceptions_.

I'd link some references, but the best I know of is TDPL.

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


[Issue 8525] optimizer loops infinitely

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=8525


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
Version|D2  |D1  D2
 Resolution||FIXED
 OS/Version|Other   |FreeBSD


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


[Issue 11461] `Error`s are not thrown as `pure nothrow` functions are optimized out with -O -release

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11461



--- Comment #10 from Temtaime temta...@gmail.com 2013-11-15 12:33:55 PST ---
Clear.
Thanks very much for explanation.

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


[Issue 11522] New: mixing template mixins of template functions creates issues for dmd

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11522

   Summary: mixing template mixins of template functions creates
issues for dmd
   Product: D
   Version: D2
  Platform: x86
OS/Version: Windows
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: maidenp...@hotmail.com


--- Comment #0 from Phil Lavoie maidenp...@hotmail.com 2013-11-15 13:36:22 
PST ---
mixin template innerMixin() {

  void someFunc( string s )() if( s == tata ) {

  }

}

mixin template outerMixin() {

  //If you comment out this function, it compiles and work.
  void someFunc( string s )() if( s == toto ) {

  }


  mixin innerMixin;

}

void main( string[] args ) {

  mixin outerMixin;

  static assert( __traits( compiles, mixin( someFunc!\tata\() ) ) ); //Does
not pass.
}

Shouldn't it work? Version is 2.064

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


[Issue 11522] mixing template mixins of template functions creates issues for dmd

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11522



--- Comment #1 from Phil Lavoie maidenp...@hotmail.com 2013-11-15 13:42:10 
PST ---
(In reply to comment #0)
 mixin template innerMixin() {
 
   void someFunc( string s )() if( s == tata ) {
 
   }
 
 }
 
 mixin template outerMixin() {
 
   //If you comment out this function, it compiles and work.
   void someFunc( string s )() if( s == toto ) {
 
   }
 
 
   mixin innerMixin;
 
 }
 
 void main( string[] args ) {
 
   mixin outerMixin;
 
   static assert( __traits( compiles, mixin( someFunc!\tata\() ) ) ); 
 //Does
 not pass.
 }
 
 Shouldn't it work? Version is 2.064

K, if you move the outer someFunc into its own mixin template, like such:

mixin template otherInnerMixin() {

  void someFunc( string s )() if( s == toto ) {

  }

}

and change outerMixin for this:

mixin template outerMixin() {

  mixin innerMixin;
  mixin otherInnerMixin;

}

Then it works.

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


[Issue 11522] mixing template mixins of template functions creates issues for dmd

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11522



--- Comment #2 from Phil Lavoie maidenp...@hotmail.com 2013-11-15 13:50:22 
PST ---
(In reply to comment #1)
 (In reply to comment #0)
  mixin template innerMixin() {
  
void someFunc( string s )() if( s == tata ) {
  
}
  
  }
  
  mixin template outerMixin() {
  
//If you comment out this function, it compiles and work.
void someFunc( string s )() if( s == toto ) {
  
}
  
  
mixin innerMixin;
  
  }
  
  void main( string[] args ) {
  
mixin outerMixin;
  
static assert( __traits( compiles, mixin( someFunc!\tata\() ) ) ); 
  //Does
  not pass.
  }
  
  Shouldn't it work? Version is 2.064
 
 K, if you move the outer someFunc into its own mixin template, like such:
 
 mixin template otherInnerMixin() {
 
   void someFunc( string s )() if( s == toto ) {
 
   }
 
 }
 
 and change outerMixin for this:
 
 mixin template outerMixin() {
 
   mixin innerMixin;
   mixin otherInnerMixin;
 
 }
 
 Then it works.

Scratch that, it's working for this short example but not in my real world
problem.

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


[Issue 11034] ICE: Assertion failed: (!scope), function toObjFile, file toobj.c, line 366.

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11034


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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


[Issue 11417] rotate with immediate not recognized by optimizer

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11417



--- Comment #2 from github-bugzi...@puremagic.com 2013-11-15 14:42:46 PST ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/6cdeae745a816d68c13dbdf7db06dd6c05e32f7f
Fix Issue 11417 - rotate with immediate not recognized by optimizer

https://github.com/D-Programming-Language/dmd/commit/964188a54b363574adfcbf00847944b2cd713ec4
Merge pull request #2772 from yebblies/issue11417

Issue 11417 - rotate with immediate not recognized by optimizer

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


[Issue 8596] Indeterministic assertion failure in rehash

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=8596



--- Comment #27 from Walter Bright bugzi...@digitalmars.com 2013-11-15 
14:59:28 PST ---
Without a reproducible test case, this issue is really dead in the water.

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


[Issue 11417] rotate with immediate not recognized by optimizer

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11417



--- Comment #3 from github-bugzi...@puremagic.com 2013-11-15 15:01:45 PST ---
Commit pushed to dmd-1.x at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/a8693d0a053a8c3ec88712956905e5d3c731dc3e
Merge pull request #2772 from yebblies/issue11417

Issue 11417 - rotate with immediate not recognized by optimizer

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


[Issue 8596] Indeterministic assertion failure in rehash

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=8596



--- Comment #28 from deadalnix deadal...@gmail.com 2013-11-15 15:03:35 PST ---
(In reply to comment #27)
 Without a reproducible test case, this issue is really dead in the water.

I assume you know what indeterministic means. Sadly these are very hard issue
to solve.

I haven't seen it triggered for a long time now. It may be solve, or my code
evolved to not trigger the error anymore.

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


[Issue 11417] rotate with immediate not recognized by optimizer

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11417


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
Version|D2  |D1  D2
 Resolution||FIXED


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


[Issue 11523] New: pragma(lib x) doesn't have any effect in a static library

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11523

   Summary: pragma(lib x) doesn't have any effect in a static
library
   Product: D
   Version: D2
  Platform: x86_64
OS/Version: Linux
Status: NEW
  Severity: minor
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: flamaros.xav...@gmail.com


--- Comment #0 from Xavier Bigand flamaros.xav...@gmail.com 2013-11-15 
15:30:15 PST ---
A pragma(lib, x) putted in a module that isn't not directly use by the client
application doesn't make the dependency linked into the generated static
library.

The work around is to report the pragma(lib, x) declaration in the main.d
module.

PS: I also think that the documentation on pragma(lib, x) miss to explain the
format that x must have on each platform. I am always confuse on the
necessity to have the extension or not, and the lib prefix on linux.

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


[Issue 1955] debug info for temp variables

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=1955


Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

 CC||and...@erdani.com


--- Comment #2 from Andrei Alexandrescu and...@erdani.com 2013-11-15 18:02:48 
PST ---
Is this still relevant?

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


[Issue 704] destructors are called even if the constructor throws an exception

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=704


Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

 CC||and...@erdani.com


--- Comment #7 from Andrei Alexandrescu and...@erdani.com 2013-11-15 18:58:06 
PST ---
On the other hand we don't throw if a struct's ctor throws. So this is an
inconsistency.I think it's fair in D to consider a throwing constructor as
abandoning all construction of the object.

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


[Issue 309] std.boxer incorrectly handles interface instances (major problem in dmd reflection?)

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=309


Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||WONTFIX


--- Comment #4 from Andrei Alexandrescu and...@erdani.com 2013-11-15 19:05:03 
PST ---
D1 is not supported anymore.

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


[Issue 11524] New: str.strip being shadowed by std.algorithm.strip

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11524

   Summary: str.strip being shadowed by std.algorithm.strip
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: h...@fugal.net


--- Comment #0 from Hans Fugal h...@fugal.net 2013-11-15 19:19:10 PST ---
import std.string;
import std.stdio;

// OK
unittest {
string foo =  foo ;
writeln(foo.strip);
}

/* Not OK

strip.d(21): Error: template std.algorithm.strip does not match any function
template declaration. Candidates are:
/usr/share/dmd/src/phobos/std/algorithm.d(7122):   
std.algorithm.strip(Range, E)(Range range, E element) if
(isBidirectionalRange!Range  is(typeof(range.front == element) : bool))
/usr/share/dmd/src/phobos/std/algorithm.d(7129):   
std.algorithm.strip(alias pred, Range)(Range range) if
(isBidirectionalRange!Range  is(typeof(pred(range.back)) : bool))
strip.d(21): Error: template std.algorithm.strip(Range, E)(Range range, E
element) if (isBidirectionalRange!Range  is(typeof(range.front == element) :
bool)) cannot deduce template function from argument types !()(string)

*/
unittest {
import std.algorithm;
string bar =  bar ;
writeln(bar.strip);
}

/* if I move import std.algorithm; outside of the unittest, it works fine. */

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


[Issue 235] goto scope: cannot goto forward into different try block level

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=235


Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


--- Comment #11 from Andrei Alexandrescu and...@erdani.com 2013-11-15 
19:24:22 PST ---
Just tried it now, works as expected.

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


[Issue 11508] [REG 2.064] Wrong code with -O on x86_64 for char comparisons

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11508


tchaje...@gmail.com changed:

   What|Removed |Added

 CC||tchaje...@gmail.com


--- Comment #1 from tchaje...@gmail.com 2013-11-15 19:20:32 PST ---
I wasn't able to isolate the issue in the compiler, but it looks like starting
at
https://github.com/D-Programming-Language/dmd/commit/fd999804a0d79fcbbfac39191d4e8f4ba7872467
an optimization was added for sequences of OR operations that is doing
something strange to this code. Just prior to this commit the isWordChar
function looked like this (in earlier versions there was no optimization and
the code just did a straightforward sequence of cmp and je):

0050 _D4dbug10isWordCharFaZb:
  50:55   push   %rbp
  51:48 8b ec mov%rsp,%rbp
  54:48 83 ec 10  sub$0x10,%rsp
  58:89 7d f8 mov%edi,-0x8(%rbp)
  5b:0f b6 45 f8  movzbl -0x8(%rbp),%eax
  5f:83 c0 d5 add$0xffd5,%eax
  62:83 f8 34 cmp$0x34,%eax
  65:77 0aja 71 _D4dbug10isWordCharFaZb+0x21
  67:b9 0d 00 00 00   mov$0xd,%ecx
  6c:0f a3 c1 bt %eax,%ecx
  6f:72 04jb 75 _D4dbug10isWordCharFaZb+0x25
  71:31 c0xor%eax,%eax
  73:eb 05jmp7a _D4dbug10isWordCharFaZb+0x2a
  75:b8 01 00 00 00   mov$0x1,%eax
  7a:48 8b e5 mov%rbp,%rsp
  7d:5d   pop%rbp
  7e:c3   retq

While afterward it looks like (but only on X86_64):
  70:55   push   %rbp
  71:48 8b ec mov%rsp,%rbp
  74:48 83 ec 10  sub$0x10,%rsp
  78:89 7d f8 mov%edi,-0x8(%rbp)
  7b:0f b6 45 f8  movzbl -0x8(%rbp),%eax
  7f:83 c0 d5 add$0xffd5,%eax
  82:83 f8 34 cmp$0x34,%eax
  85:77 0fja 96 _D4dbug10isWordCharFaZb+0x26
  87:48 b9 0d 00 00 00 00 movabs $0x1d,%rcx
  8e:00 10 00
  91:0f a3 c1 bt %eax,%ecx
  94:72 04jb 9a _D4dbug10isWordCharFaZb+0x2a
  96:31 c0xor%eax,%eax
  98:eb 05jmp9f _D4dbug10isWordCharFaZb+0x2f
  9a:b8 01 00 00 00   mov$0x1,%eax
  9f:48 8b e5 mov%rbp,%rsp
  a2:5d   pop%rbp
  a3:c3   retq

I don't understand the codebase well enough to see how to fix the issue, but
hope this helps!

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


[Issue 275] Undefined identifier in instances of templates with forward mixins

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=275


Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Issue 11479] [REG 2.064] DDoc regression?

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11479



--- Comment #1 from github-bugzi...@puremagic.com 2013-11-15 20:02:13 PST ---
Commit pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/d11d14628aafa957e35ae5f1d59130c005b58bf6
fixup issue  11479 and enum -- auto in examples

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


[Issue 888] -cov and _ModuleInfo linking bugs

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=888


Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||and...@erdani.com
 Resolution||WORKSFORME


--- Comment #9 from Andrei Alexandrescu and...@erdani.com 2013-11-15 20:30:30 
PST ---
Please reopen if necessary.

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


[Issue 900] changing import order causes type mismatch

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=900


Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 CC||and...@erdani.com
 Resolution||FIXED


--- Comment #10 from Andrei Alexandrescu and...@erdani.com 2013-11-15 
20:34:29 PST ---
This seems to have been fixed, possibly a while ago.

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


[Issue 946] (D1 only) Circular reference undetected in some cases

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=946


Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||and...@erdani.com
 Resolution||WONTFIX


--- Comment #3 from Andrei Alexandrescu and...@erdani.com 2013-11-15 20:35:21 
PST ---
Closing because D1 is no longer supported.

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


[Issue 1360] GC emits HLT when GetThreadContext fails after CreateRemoteThread.

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=1360


Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

 CC||and...@erdani.com


--- Comment #7 from Andrei Alexandrescu and...@erdani.com 2013-11-15 20:50:48 
PST ---
Is this still a problem?

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


[Issue 1687] extern (C++) interface and vtbl

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=1687


Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

 CC||and...@erdani.com


--- Comment #4 from Andrei Alexandrescu and...@erdani.com 2013-11-15 21:03:49 
PST ---
This segfaults:

extern (C++) interface A { void foo(); void bar(); }

extern (C++) class B : A { void foo() { } void bar() { } }

void main()
{
A a = new B;
a.foo();
}

It actually segfaults even without the interface and the call.

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


[Issue 3517] Allocators proposal

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=3517


Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC||and...@erdani.com
 AssignedTo|nob...@puremagic.com|and...@erdani.com


--- Comment #1 from Andrei Alexandrescu and...@erdani.com 2013-11-15 21:05:11 
PST ---
Taking this over.

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


[Issue 1957] 'new' may return same memory to two threads

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=1957


Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||and...@erdani.com
 Resolution||INVALID


--- Comment #2 from Andrei Alexandrescu and...@erdani.com 2013-11-15 21:14:50 
PST ---
I'll preemptively close because it has no supporting code demonstrating the
issue. Please reopen if still relevant.

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


[Issue 2162] Access violation when threads run closures

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=2162


Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||and...@erdani.com
 Resolution||FIXED


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


[Issue 2764] Skip link if main not found

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=2764


Andrei Alexandrescu and...@erdani.com changed:

   What|Removed |Added

 CC||and...@erdani.com
   Severity|normal  |enhancement


--- Comment #4 from Andrei Alexandrescu and...@erdani.com 2013-11-15 21:24:44 
PST ---
downgrading to enhancement

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


[Issue 11508] [REG 2.064] Wrong code with -O on x86_64 for char comparisons

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11508


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

   Keywords||pull
 CC||yebbl...@gmail.com


--- Comment #2 from yebblies yebbl...@gmail.com 2013-11-16 16:22:21 EST ---
(In reply to comment #1)
   87:48 b9 0d 00 00 00 00 movabs $0x1d,%rcx
   8e:00 10 00
   91:0f a3 c1 bt %eax,%ecx

The error is here   

https://github.com/D-Programming-Language/dmd/pull/2776

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


[Issue 1687] extern (C++) interface and vtbl

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=1687


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

 CC||yebbl...@gmail.com


--- Comment #5 from yebblies yebbl...@gmail.com 2013-11-16 16:42:33 EST ---
I'm pretty sure this bug was fixed by
https://github.com/D-Programming-Language/dmd/pull/2441

https://github.com/D-Programming-Language/dmd/pull/2441/files#diff-51c17721512749ee0a457d576c82eb2eR638

This code
=
extern (C++) interface A { void foo(); void bar(); }

void main()
{
A a;
a.foo();
}

Generates:

__Dmain PROC NEAR
;  COMDEF __Dmain
xor eax, eax  ;  _ 31. C0 // a = null
mov ecx, eax  ; 0002 _ 89. C1
mov edx, dword ptr [eax]  ; 0004 _ 8B. 10 // edx = a.__vptr[0]
calldword ptr [edx]   ; 0006 _ FF. 12 // edx()
xor eax, eax  ; 0008 _ 31. C0
ret   ; 000A _ C3
__Dmain ENDP


ie foo is called from vtbl index 0

(In reply to comment #4)
 This segfaults:
 
 extern (C++) interface A { void foo(); void bar(); }
 
 extern (C++) class B : A { void foo() { } void bar() { } }
 
 void main()
 {
 A a = new B;
 a.foo();
 }
 
 It actually segfaults even without the interface and the call.

It does?  What platform?  Are you using git head or a release?

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


[Issue 1687] extern (C++) interface and vtbl

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=1687



--- Comment #6 from Andrei Alexandrescu and...@erdani.com 2013-11-15 22:12:18 
PST ---
Ah. I was using DMD64 D Compiler v2.064-devel-acc0cb0. OK to close then?

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


[Issue 11445] adding double[string] causes crash

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11445



--- Comment #2 from github-bugzi...@puremagic.com 2013-11-15 22:14:37 PST ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/1e49b6a428352d4af24ed4430fabe78a701e4944
Fix Issue 11445 - adding double[string] causes crash

https://github.com/D-Programming-Language/dmd/commit/978757826845d4a382335c8d6c98685c8f5cd7fe
Merge pull request #2773 from yebblies/issue11445

Issue 11445 - adding double[string] causes crash

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


[Issue 8664] Compiler causes stack overflow with recursive typedef and option -g

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=8664


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 CC||bugzi...@digitalmars.com


--- Comment #1 from Walter Bright bugzi...@digitalmars.com 2013-11-15 
22:52:27 PST ---
https://github.com/D-Programming-Language/dmd/pull/2777

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


[Issue 11445] adding double[string] causes crash

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11445


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

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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


[Issue 1687] extern (C++) interface and vtbl

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=1687



--- Comment #7 from yebblies yebbl...@gmail.com 2013-11-16 17:59:25 EST ---
(In reply to comment #6)
 Ah. I was using DMD64 D Compiler v2.064-devel-acc0cb0. OK to close then?

Can you try head on your machine?  That commit is fairly recent - there have
been no changes I'm aware of to this code since then.

The vtable access looks correct for win64 codegen.

It's quite possible there's a non-windows problem with extern(C++) classes
lurking somewhere in there...

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


[Issue 11317] glue.c:1218: virtual unsigned int Type::totym(): Assertion `0' failed.

2013-11-15 Thread d-bugmail
https://d.puremagic.com/issues/show_bug.cgi?id=11317



--- Comment #3 from Kenji Hara k.hara...@gmail.com 2013-11-15 23:25:26 PST ---
Merged pull request: https://github.com/D-Programming-Language/dmd/pull/2766

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