[Issue 10351] [GC] GC deadlocks in thread_suspendAll()

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

Aleksei Preobrazhenskii  changed:

   What|Removed |Added

   See Also||https://issues.dlang.org/sh
   ||ow_bug.cgi?id=15939

--


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

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

Aleksei Preobrazhenskii  changed:

   What|Removed |Added

   See Also||https://issues.dlang.org/sh
   ||ow_bug.cgi?id=10351

--


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

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

--- Comment #6 from Aleksei Preobrazhenskii  ---
I think I saw the same behaviour in debug builds, I will try to verify it. As
of 32-bit question, due to the nature of the program I can't test it in 32-bit
environment.

After investigating problem a little further, I think that the issue might be
in GC relying on traditional POSIX signals. One way to get such stack traces is
if suspend signal (SIGUSR1 by default) wasn't delivered, which could happen for
traditional POSIX signals if they occur in quick succession. Like, if
thread_suspendAll happens while some threads are still in the
thread_suspendHandler (already handled resume signal, but still didn't leave
the suspend handler).

Real-time POSIX signals (SIGRTMIN .. SIGRTMAX) have stronger delivery
guarantees, I'm going to try the same code but with
thread_setGCSignals(SIGRTMIN, SIGRTMIN + 1).

--


[Issue 15942] bogus "cannot implicitly convert expression" error when using vector notation to copy from immutable to mutable

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

ag0ae...@gmail.com changed:

   What|Removed |Added

Summary|bogus "cannot implicitly|bogus "cannot implicitly
   |convert expression" error   |convert expression" error
   |when using vector notation  |when using vector notation
   |to from immutable to|to copy from immutable to
   |mutable |mutable

--


[Issue 15941] [REG v2.069] rbtree no longer supports classes

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

Jack Stouffer  changed:

   What|Removed |Added

 CC||j...@jackstouffer.com
Summary|Regression: rbtree no   |[REG v2.069] rbtree no
   |longer supports classes |longer supports classes

--


[Issue 15941] New: Regression: rbtree no longer supports classes

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

  Issue ID: 15941
   Summary: Regression: rbtree no longer supports classes
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: regression
  Priority: P1
 Component: phobos
  Assignee: nob...@puremagic.com
  Reporter: jbc.enge...@gmail.com

```
class A {}
RedBlackTree!(A, "cast(void*)a < cast(void*)b") tree;
```

This used to work, but now no longer works because of the addition of
rbtree.toString.
With a nice instantiation error:

/Library/D/dmd/src/phobos/std/format.d(2916): Error: template instance
std.format.formatObject!(void delegate(const(char)[]), const(A), char) does not
match template declaration formatObject(Writer, T, Char)(ref Writer w, ref T
val, ref FormatSpec!Char f) if (hasToString!(T, Char))
/Library/D/dmd/src/phobos/std/format.d(2649): Error: template instance
std.format.formatValue!(void delegate(const(char)[]), const(A), char) error
instantiating
/Library/D/dmd/src/phobos/std/format.d(2435):instantiated from here:
formatElement!(void delegate(const(char)[]), const(A), char)
/Library/D/dmd/src/phobos/std/format.d(3142):instantiated from here:
formatRange!(void delegate(const(char)[]), RBRange!(const(RBNode!(A))*), char)
/Library/D/dmd/src/phobos/std/container/rbtree.d(1679):instantiated
from here: formatValue!(void delegate(const(char)[]),
RBRange!(const(RBNode!(A))*), char)
/Users/johan/ldc/johan/ddmd/root/array.d(217):instantiated from here:
RedBlackTree!(A, "cast(void*)a < cast(void*)b", false)

--


[Issue 13674] ICE(el.c) with simd multiplication of short8

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

--- Comment #2 from github-bugzi...@puremagic.com ---
Commits pushed to master at https://github.com/dlang/dmd

https://github.com/dlang/dmd/commit/89b765778fa46c1cd7eeb5173dbb6f9a5518176d
fix Issue 13674 - ICE(el.c) with simd multiplication of short8

https://github.com/dlang/dmd/commit/24b214bdbe54fe478b66b2a1d9d67d0584ac1331
Merge pull request #5687 from WalterBright/fix13674

fix Issue 13674 - ICE(el.c) with simd multiplication of short8

--


[Issue 15144] Bad operand size in asm { movdqa ... } produces bogus ubyte16 initializer error elsewhere.

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

Walter Bright  changed:

   What|Removed |Added

 OS|Linux   |All

--- Comment #3 from Walter Bright  ---
https://github.com/dlang/dmd/pull/5689

--


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

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

--- Comment #5 from Sobirari Muhomori  ---
Also what about 32-bit mode?

--


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

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

--- Comment #4 from Sobirari Muhomori  ---
(In reply to Aleksei Preobrazhenskii from comment #0)
> dmd 2.071.0 with -O -release -inline -boundscheck=off

Do these flags affect the hang?

--


[Issue 15940] New: std.variant.Variant: compilation fails if a value is aliased struct

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

  Issue ID: 15940
   Summary: std.variant.Variant: compilation fails if a value is
aliased struct
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: normal
  Priority: P1
 Component: phobos
  Assignee: nob...@puremagic.com
  Reporter: goldmax3...@gmail.com

import std.variant;

class C { }
struct S
{
C a;
alias a this;
}
S s = S(new C());
auto v = Variant(s); // compile error


/opt/compilers/dmd2/include/std/traits.d(3636): Error: template instance
std.traits.BaseClassesTuple!(S) does not match template declaration
BaseClassesTuple(T) if (is(T == class))
/opt/compilers/dmd2/include/std/traits.d(4054): Error: template instance
std.traits.TransitiveBaseTypeTuple!(S) error instantiating
/opt/compilers/dmd2/include/std/variant.d(263):instantiated from here:
ImplicitConversionTargets!(S)
/opt/compilers/dmd2/include/std/variant.d(632):instantiated from here:
handler!(S)
/opt/compilers/dmd2/include/std/variant.d(548):instantiated from here:
opAssign!(S)
/d296/f123.d(10):instantiated from here: __ctor!(S)

--