[Issue 6102] New: [RDMD] Changing a string import file doesn't trigger a rebuild

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

   Summary: [RDMD] Changing a string import file doesn't trigger a
rebuild
   Product: D
   Version: D2
  Platform: Other
OS/Version: Windows
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: cbkbbej...@mailinator.com


--- Comment #0 from Nick Sabalausky cbkbbej...@mailinator.com 2011-06-04 
00:03:36 PDT ---
1. Build some program with RDMD
2. Modify a string import file your program uses.
3. Run RDMD again.

RDMD will use the cached executable instead of rebuilding it.

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


[Issue 1747] interface inheritance + casting == wrong method invoked

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


Brad Roberts bra...@puremagic.com changed:

   What|Removed |Added

 CC||bra...@puremagic.com
  Component|Phobos  |DMD
Version|0.24|D1  D2
 AssignedTo|ibuc...@ubuntu.com  |nob...@puremagic.com
Product|DGCC aka GDC|D
Summary|math.hypot and conv.toReal  |interface inheritance +
   | toString unittests failed |casting == wrong method
   |on FreeBSD8 |invoked
   Severity|minor   |normal


--- Comment #4 from Brad Roberts bra...@puremagic.com 2011-06-04 00:13:48 PDT 
---
This is a general front end bug, not a gdc specific bug.  Recategorizing it.

Changing the attached code slightly shows that mA is what's being invoked
rather than the intended mB.

class ClassX : IntyD
{
void mA() { g |= 1; }
void mB() { g |= 2; }
void mD() { g |= 4; }
}

void main()
{
ClassX x = new ClassX;
assert(g == 0);
IntyB b = test(x);
assert(g == 0);
b.mB();

printf(g = %d\n, g);
assert(g == 2);
}

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


[Issue 6088] Stack trace or some info with stack overflow

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



--- Comment #1 from bearophile_h...@eml.cc 2011-06-04 07:44:23 PDT ---
Regarding a stack overflow in a program Andrei has answered:

 I think a better tail call optimization would be in order.

A better compiler with better optimizations is welcome, but there are
situations where even if you are able to optimize the code a lot, a stack
overflow happens anyway. In such cases receiving some kind of error message (in
debug builds only, if necessary) is quite useful.

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


[Issue 6103] New: hasFinalizer field in ClassInfo

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

   Summary: hasFinalizer field in ClassInfo
   Product: D
   Version: D2
  Platform: Other
OS/Version: Windows
Status: NEW
  Keywords: performance
  Severity: enhancement
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: dsim...@yahoo.com


--- Comment #0 from David Simcha dsim...@yahoo.com 2011-06-04 09:55:52 PDT ---
ClassInfo needs a hasFinalizer field that is true iff the class or its ancestor
has a non-empty finalizer.  This way, instead of conservatively flagging all
GC-allocated objects with GC.BlkAttr.FINALIZE, only those that need to be
finalized could be flagged.  On this benchmark
(https://github.com/dsimcha/druntime/blob/master/gcBench/tree1.d) avoiding
calling empty finalizers results in about a 20% speedup.

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


[Issue 4154] Incorrect DWARF section names on Mac

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


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

   What|Removed |Added

 CC||bugzi...@digitalmars.com


--- Comment #9 from Walter Bright bugzi...@digitalmars.com 2011-06-04 
10:37:40 PDT ---
(In reply to comment #8)
 https://github.com/D-Programming-Language/dmd/pull/83 - Everything works as it
 should, the file just needs running through dsymutil.

I don't understand - why should dsymutil be needed at all? It isn't needed for
gcc.

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


[Issue 5859] Declaration inside if condition doesn't call destructor

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


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

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bugzi...@digitalmars.com
 Resolution||FIXED


--- Comment #2 from Walter Bright bugzi...@digitalmars.com 2011-06-04 
11:40:23 PDT ---
See:
https://github.com/9rnsr/dmd/commit/5f11cd1ce43b43562f88f05b8bedc3c382db56b5

https://github.com/D-Programming-Language/dmd/commit/e35d337d42525fdd4deaffa327fd8da3083baa37

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


[Issue 4107] Duplicate documentation for member function templates

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


kenn...@gmail.com changed:

   What|Removed |Added

 CC||kenn...@gmail.com


--- Comment #1 from kenn...@gmail.com 2011-06-04 11:45:40 PDT ---
The bug is that, DMD only recognizes the a template declares exactly one
member, and that member is a function with the same name as the template (is
there are short-form for that?) during semantic(), but the template isn't
instantiated, so its members won't be semantic()-ed. Therefore, does not know
that 'foo' is a magic one-member template, and emits the ddoc comment as if
it's a regular template.

A related bug is when there are nested templated aggregates, the inner levels
won't be shown in DDoc.

--
/// alpha
struct Bug4107b(T) {
/// beta
public struct B(U) {
/// gamma
public struct C(V) {
/// delta
public struct D(W) {
}
}
}
}
--

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


[Issue 5317] Assertion is not work in a function called by std.concurrency.spawn

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



--- Comment #6 from Andrej Mitrovic andrej.mitrov...@gmail.com 2011-06-04 
12:34:49 PDT ---
s/taskbar/taskmanager

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


[Issue 5317] Assertion is not work in a function called by std.concurrency.spawn

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



--- Comment #5 from Andrej Mitrovic andrej.mitrov...@gmail.com 2011-06-04 
12:33:33 PDT ---
This might not be directly relevant to this bug report, but I thought I'd share
the story anyway. I currently have this in one of my projects:

An extern(C) callback is passed to a device driver. The user-code then calls
driver.start(), and the driver starts a new high-priority/ISR routine which
calls the callback at some predetermined rate.

Now, in my main() function I have this (pseudocode):

driver.start()
scope(exit) driver.stop();  // Calling this before app exit on started drivers
is crucial
while (engineRunning) { }   // shared bool of the engine state

That works well for the user thread, if an exception is thrown in the user
thread scope exit will be ran and the driver is released. 

But if in the callback thread an exception is thrown and is uncaught it will
shut down my application but it won't call driver.stop(), because it's in a
different thread which main doesn't directly know about.

I've had this happen to me several times with ASIO Audio drivers. Most of the
times, the app will quit but appear frozen in taskbar and the device driver
won't get released even if I do a cold-reboot of my soundcard (it's external
with its own power source). It then takes a few minutes or a pc-reboot for the
driver to actually get released.

But worse things have happened, I've had several BSODs as well. It wasn't
obvious to me what was going on until I've realized that driver.stop() never
gets called. 

So now my current workaround is to wrap any code in the callback with a
try..catch:

extern(C) callback(args..)
{
try
{
realCallback(args);
}
catch (Throwable)
{
engineRunning = false;
}
}

If an exception is thrown the app can call driver.stop() (since the user thread
keeps checking the state ofr the shared engineRunning boolean), and then the
app can quit safely.

Quitting forcefully on any errors might not be the best thing to do. But maybe
my use-case is a special one, and this doesn't happen that frequently outside
of using device drivers or other types of external resources.

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


[Issue 5657] Temporary object destruction

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


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

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


--- Comment #9 from Walter Bright bugzi...@digitalmars.com 2011-06-04 
12:39:25 PDT ---
https://github.com/9rnsr/dmd/commit/bf31931a097a30254e2ce14f114ccba97fb3dc9f

https://github.com/D-Programming-Language/dmd/commit/7a73683fa1391c88ab659d453b9104e0ce06293d

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


[Issue 4107] Duplicate documentation for member function templates

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


kenn...@gmail.com changed:

   What|Removed |Added

   Keywords||patch


--- Comment #2 from kenn...@gmail.com 2011-06-04 12:54:48 PDT ---
DMD pull request #84.

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

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


[Issue 6104] Add takeWhile to std.range.

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


timon.g...@gmx.ch changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


--- Comment #1 from timon.g...@gmx.ch 2011-06-04 13:36:46 PDT ---
*** This issue has been marked as a duplicate of issue 4535 ***

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


[Issue 6102] [RDMD] Changing a string import file doesn't trigger a rebuild

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


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

   What|Removed |Added

 CC||and...@metalanguage.com


--- Comment #1 from Andrei Alexandrescu and...@metalanguage.com 2011-06-04 
15:19:53 PDT ---
I talked to Walter about adding support for this in the compiler.

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


[Issue 5819] DMD doesn't error/warn about illegal asm for 64bit mode

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


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

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bugzi...@digitalmars.com
 Resolution||FIXED


--- Comment #1 from Walter Bright bugzi...@digitalmars.com 2011-06-04 
16:54:56 PDT ---
https://github.com/D-Programming-Language/dmd/commit/b9e5a1565113cf641d72125e311578e3611d3ca1

https://github.com/D-Programming-Language/dmd/commit/26816f717b393582842efe6a3fe94ecf97ef4784

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


[Issue 1772] regexp.split behavior with captures needs to be documented

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


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

   What|Removed |Added

 AssignedTo|and...@metalanguage.com |dmitry.o...@gmail.com


--- Comment #3 from Andrei Alexandrescu and...@metalanguage.com 2011-06-04 
17:48:10 PDT ---
Reassigning to Dmitry.

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


[Issue 6106] New: Keep track of changes during replace function

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

   Summary: Keep track of changes during replace function
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: enhancement
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: josvanu...@gmail.com


--- Comment #0 from josvanu...@gmail.com 2011-06-04 19:15:09 PDT ---
Just had an idea, not sure if it makes sense.

When I was writing a code that executes a Markov algorithm, I had to call
std.array.replace(R, R, R), then depending on whether the replacement had made
any actual changes, I had to either continue the loop or redo it. In order to
find out if replace had made any changes I had to keep a copy and compare on
every iteration.

The relevant part of the code:

redo:
auto copy = tests[i];
foreach (c; capt) {
tests[i] = replace(tests[i], c[0], c[2]);
if (c[1] == .) break;
if (tests[i] != copy) goto redo;
}   

It occurred to me that it would have been useful if the replace function had
had an out parameter keeping track of the number of changes. My code could have
looked like this:

redo:
int changed;
foreach (c; capt) {
tests[i] = replace(tests[i], c[0], c[2], changed);
if (c[1] == .) break;
if (changed) goto redo;
}   

I realize that you can't meet everybody's needs and preferences, but I thought
I'd suggest it just in case it might be doable.

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


[Issue 4648] In contracts in interfaces missbehaving

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


Mike Shulman viritrilbi...@gmail.com changed:

   What|Removed |Added

 CC||viritrilbi...@gmail.com


--- Comment #1 from Mike Shulman viritrilbi...@gmail.com 2011-06-04 20:37:50 
PDT ---
'Out' contracts in interfaces seem to have the same problem: the arguments
passed to the function get replaced by garbage.

On my system (DMD v2.053 on Ubuntu) the precise value of the garbage appears to
depend on what data members exist in the class which implements the interface. 
E.g. Andrej's code writeln outputs 0 for me, but if I add int x; to the
definition of Base, it outputs instead 135115244.

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


[Issue 5551] opUnary-opBinary conflict

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


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

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bugzi...@digitalmars.com
 Resolution||FIXED


--- Comment #2 from Walter Bright bugzi...@digitalmars.com 2011-06-04 
21:31:47 PDT ---
https://github.com/D-Programming-Language/dmd/commit/ea9848b16fad21599b65a6669eef3abb2c3d0fc0

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


[Issue 5821] Calling spawn in std.concurrency without all the parameters required by void function(T) fn

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


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

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


--- Comment #2 from yebblies yebbl...@gmail.com 2011-06-04 22:52:55 PDT ---
With only the function pointer as an argument, spawn becomes:
void spawn(void function() fn)
and fun is (incorrectly) implicitly converted to void function() fn.

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

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


[Issue 3797] Regression(2.038): Implicit conversion between incompatible function pointers

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


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

 CC||jsan...@gmail.com


--- Comment #12 from yebblies yebbl...@gmail.com 2011-06-04 22:52:55 PDT ---
*** Issue 5821 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: ---