[Issue 16049] core.sys.windows structs have wrong sizes and aligns

2016-05-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16049

--- Comment #2 from j...@red.email.ne.jp ---
(In reply to jiki from comment #1)
> done
> https://github.com/dlang/druntime/pull/1576

Note that I deferred to commit a module MMSYSTEM 
because it gets many conflicts with/without my previous commit #1574 for issue
15959.

--


[Issue 16050] New: Template type parameter "action at at a distance"

2016-05-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16050

  Issue ID: 16050
   Summary: Template type parameter "action at at a distance"
   Product: D
   Version: D2
  Hardware: All
OS: Linux
Status: NEW
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: thomas.bock...@gmail.com

"vit" on the D.lang forum found this bug:
http://forum.dlang.org/post/fiaqxpgaxttgifnky...@forum.dlang.org

Starting with the following declarations:
---
class Type { }

class Foo(T : const T) {
alias X = T;
}

alias Bar(T : Foo!Ts, Ts...) = Ts[0];
---

This will print "immutable(Type):
---
alias F1 = Foo!(immutable(Type));
alias F2 = Foo!Type;

pragma(msg, "Bar: ", Bar!(Foo!Type)); // Bar: immutable(Type)
---

But this will print just "Type":
---
alias F1 = Foo!Type;
alias F2 = Foo!(immutable(Type));

pragma(msg, "Bar: ", Bar!(Foo!Type));  // Bar: Type
---

The type of Bar!(Foo!Type) should not be effected by the existence or order of
F1 and F2 above.

--


[Issue 14084] cartesianProduct length is not defined

2016-05-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14084

--- Comment #1 from hst...@quickfur.ath.cx ---
One issue with defining .length in cartesianProduct is that the length grows
exponentially with the number of arguments, and it's unclear what .length
should return if it overflows size_t.

--


[Issue 15939] GC.collect causes deadlock in multi-threaded environment

2016-05-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15939

Artem Tarasov  changed:

   What|Removed |Added

 CC||lomerei...@gmail.com

--- Comment #15 from Artem Tarasov  ---
I'm apparently bumping into the same problem. Here's the last stack trace that
I've received from a user, very similar to the one posted here:
https://gist.github.com/rtnh/e2eab6afa7c0a37dbc96578d0f73c540

The prominent kernel bug mentioned here has been ruled out already. Another
hint I've got is that reportedly 'error doesn't happen on XenServer
hypervisors, only on KVM' (full discussion is taking place at
https://github.com/lomereiter/sambamba/issues/189)

--


[Issue 14519] Get rid of unicode validation in string processing

2016-05-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14519

--- Comment #38 from Martin Nowak  ---
(In reply to Vladimir Panteleev from comment #36)
> Question, is there any overhead in actually verifying the validity of UTF-8
> streams, or is all overhead related to error handling (i.e. inability to be
> nothrow)?

I think it's fairly measurable b/c you need to add lots of additional checks
and branches (though highly predictable ones).
While my initial decode implementation
https://github.com/MartinNowak/phobos/blob/1b0edb728c/std/utf.d#L577-L651 was
transmogrify into 200 lines in the meantime
https://github.com/dlang/phobos/blob/acafd848d8/std/utf.d#L1167-L1369, you can
still use it to benchmark validation.
I did run a lot of benchmarks when introducing that function, and the code path
for decoding just remains slow, even with the throwing code path removed out of
normal control flow.

--


[Issue 15831] IFTI voldemort type exploding bloat

2016-05-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15831

Rainer Schuetze  changed:

   What|Removed |Added

 CC||r.sagita...@gmx.de

--- Comment #4 from Rainer Schuetze  ---
I tried to untangle the name of the 1.s.s.s.s.s case. Replacing testexpansion
with E, I get

E.s!(E.s!(E.s!(E.s!(E.s!(int).s(int).Result)
.s (E.s!(int).s(int).Result)
.Result)
   .s (E.s!(E.s!(int).s(int).Result)
.s (E.s!(int).s(int).Result)
.Result)
   .Result)
  .s (E.s!(E.s!(E.s!(int).s(int).Result)
.s (E.s!(int).s(int).Result)
.Result)
   .s (E.s!(E.s!(int).s(int).Result)
.s (E.s!(int).s(int).Result)
.Result)
   .Result)
  .Result)
 .s (E.s!(E.s!(E.s!(E.s!(int).s(int).Result)
.s (E.s!(int).s(int).Result)
.Result)
   .s (E.s!(E.s!(int).s(int).Result)
.s (E.s!(int).s(int).Result)
.Result)
   .Result)
  .s (E.s!(E.s!(E.s!(int).s(int).Result)
.s (E.s!(int).s(int).Result)
.Result)
   .s (E.s!(E.s!(int).s(int).Result)
.s (E.s!(int).s(int).Result)
.Result)
   .Result)
  .Result)
 .Result.foo()

Each step has a mangling of "E.s!(T).s(T).Result" with T being the template
argument.

The length explosion comes from the type being listed twice. This is not caused
by the Voldemort return type, but the eponymous template that is created by the
function template.

--


[Issue 16049] core.sys.windows structs have wrong sizes and aligns

2016-05-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16049

j...@red.email.ne.jp changed:

   What|Removed |Added

   Keywords||pull

--- Comment #1 from j...@red.email.ne.jp ---
done
https://github.com/dlang/druntime/pull/1576

--


[Issue 15607] [ICE] CTFE internal error: bad compare on accessing default-initialized static immutable array of array

2016-05-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15607

--- Comment #8 from Walter Bright  ---
https://github.com/dlang/dmd/pull/5796

--