[Issue 21169] make checkedint as a drop-in replacement of native int/long
https://issues.dlang.org/show_bug.cgi?id=21169 --- Comment #6 from Dlang Bot --- dlang/phobos pull request #7599 "std.experimental.checkedint should support chain assignment." was merged into master: - 25493144f517b5afed630f4907fc23fe9dfc7e1e by H. S. Teoh: std.experimental.checkedint should support chain assignment. Cf. bug #21169. https://github.com/dlang/phobos/pull/7599 --
[Issue 21232] std.parallelism.parallel reuses thread, leading to stale static data
https://issues.dlang.org/show_bug.cgi?id=21232 --- Comment #2 from Mathias LANG --- > Pardon me, but isn't this to be expected? Creating a thread per iteration > would be an absolutely inacceptable overhead in many cases. It might be unacceptable performance-wise, but I think violating the type-system like this is even less acceptable. `std.parallelism` (and `std.concurrency`) do that on multiple occasions, by not requiring a `shared` delegate and executing things in threads "sometimes". D2 was designed to have a strong distinction between data that is used by multiple threads and data that isn't, with the assumption that the latter is the most common case. `parallel` is just trampling all over this. --
[Issue 14708] destructor for temporary not called during stack unwinding
https://issues.dlang.org/show_bug.cgi?id=14708 Dlang Bot changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |FIXED --- Comment #9 from Dlang Bot --- dlang/dmd pull request #11676 "fix Issue 14708 - destructor for temporary not called during stack un…" was merged into master: - 206fa12a6754a04d12c9e2ac0e6028c6dfa92b9a by Walter Bright: fix Issue 14708 - destructor for temporary not called during stack unwinding https://github.com/dlang/dmd/pull/11676 --
[Issue 15909] Duplicate case error reports characters as numbers
https://issues.dlang.org/show_bug.cgi?id=15909 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #1 from Dlang Bot --- @Luhrel created dlang/dmd pull request #11716 "Fix Issue 15909 - Duplicate case error reports characters as numbers" fixing this issue: - Fix Issue 15909 - Duplicate case error reports characters as numbers https://github.com/dlang/dmd/pull/11716 --
[Issue 21233] New: std.conv.parse doesn't report the number of characters consumed
https://issues.dlang.org/show_bug.cgi?id=21233 Issue ID: 21233 Summary: std.conv.parse doesn't report the number of characters consumed Product: D Version: D2 Hardware: x86 OS: All Status: NEW Severity: enhancement Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: adela.vai...@gmail.com I was working with an input range and I would find it useful to be able to do something like: int ctr = 0; val = input.parse!int(ctr); and then use ctr for location tracking purposes. --
[Issue 7386] Can't use a 'version' that was set inside 'static if'
https://issues.dlang.org/show_bug.cgi?id=7386 Iain Buclaw changed: What|Removed |Added Priority|P2 |P1 CC||ibuc...@gdcproject.org --- Comment #1 from Iain Buclaw --- Bumping priority of this one. --
[Issue 21232] std.parallelism.parallel reuses thread, leading to stale static data
https://issues.dlang.org/show_bug.cgi?id=21232 kinke changed: What|Removed |Added CC||ki...@gmx.net --- Comment #1 from kinke --- Pardon me, but isn't this to be expected? Creating a thread per iteration would be an absolutely inacceptable overhead in many cases. From the std.parallelism docs: "After creation, a Task may be executed in a new thread, or submitted to a TaskPool for execution. A TaskPool encapsulates a task queue and its worker threads. Its purpose is to efficiently map a large number of Tasks onto a smaller number of threads." --
[Issue 21232] New: std.parallelism.parallel reuses thread, leading to stale static data
https://issues.dlang.org/show_bug.cgi?id=21232 Issue ID: 21232 Summary: std.parallelism.parallel reuses thread, leading to stale static data Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: industry Severity: blocker Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: pro.mathias.l...@gmail.com Test code: ``` import std.parallelism; import std.process; import std.range; import std.stdio; import core.atomic; shared int initCount, liveCount; static this () { atomicOp!("+=")(initCount, 1); atomicOp!("+=")(liveCount, 1); } static ~this () { atomicOp!("-=")(liveCount, 1); } class B { int val; static B f() { static B b; if (b is null) b = new B(); return b; } } void runTest (int i){ B b = B.f(); writeln("val is: ", b.val, "; thread id: ", thisThreadID); b.val = 2; } private void main() { foreach (myVal; parallel(iota(0,9))) runTest(myVal); writefln("initCount: %d - liveCount: %d", initCount, liveCount); } ``` Result: ``` val is: 0; thread id: 1149C4DC0 val is: 2; thread id: 1149C4DC0 val is: 2; thread id: 1149C4DC0 val is: 2; thread id: 1149C4DC0 val is: 0; thread id: 7C529000 val is: 0; thread id: 7C6B2000 val is: 0; thread id: 7C62F000 val is: 0; thread id: 7C5AC000 val is: 0; thread id: 7C735000 initCount: 6 - liveCount: 6 ``` IMO, this is just a disaster. Since threads are reused, the program will have access to stale, static data. Type safety cannot be guaranteed because the guarantees of module ctor / dtor are just thrown out the window. We found this bug in our custom test runner, which handles priority, and run many threads to speed up testing. --
[Issue 314] [module] Static, renamed, and selective imports are always public
https://issues.dlang.org/show_bug.cgi?id=314 --- Comment #59 from Dlang Bot --- dlang/dmd pull request #11704 "Improve error message for 'already defined error'" was merged into master: - ee023891d1b0a33b128087d2849b18543bc34aa8 by Geod24: Improve error message for 'already defined error' Those errors message could get very confusing if the package name was common. In this case, core is used, but working in 'dub' is another situation I encountered. The 'fail314' test didn't have anything to do with issue 314 so was merged with the others. I couldn't find a way to trigger the error message on inserting the template parameter, so it was left as-is. https://github.com/dlang/dmd/pull/11704 --
[Issue 10442] RTInfo generation can fail for structs defined in imported modules
https://issues.dlang.org/show_bug.cgi?id=10442 --- Comment #7 from Dlang Bot --- @rainers updated dlang/dmd pull request #2480 "fix issues #10442: no or incomplete RTInfo" fixing this issue: - fix issue 10442: predict type info references in glue layer - add test case for issue 10442 https://github.com/dlang/dmd/pull/2480 --