[Issue 21169] make checkedint as a drop-in replacement of native int/long

2020-09-09 Thread d-bugmail--- via Digitalmars-d-bugs
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

2020-09-09 Thread d-bugmail--- via Digitalmars-d-bugs
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

2020-09-09 Thread d-bugmail--- via Digitalmars-d-bugs
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

2020-09-09 Thread d-bugmail--- via Digitalmars-d-bugs
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

2020-09-09 Thread d-bugmail--- via Digitalmars-d-bugs
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'

2020-09-09 Thread d-bugmail--- via Digitalmars-d-bugs
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

2020-09-09 Thread d-bugmail--- via Digitalmars-d-bugs
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

2020-09-09 Thread d-bugmail--- via Digitalmars-d-bugs
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

2020-09-09 Thread d-bugmail--- via Digitalmars-d-bugs
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

2020-09-09 Thread d-bugmail--- via Digitalmars-d-bugs
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

--