[Issue 6102] New: [RDMD] Changing a string import file doesn't trigger a rebuild
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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: ---