[Issue 16273] [REG 2.072a] dmd segfault with inheritance, templates, override

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16273

--- Comment #4 from Walter Bright  ---
Sorry, I meant https://github.com/dlang/dmd/pull/7198

--


[Issue 16273] [REG 2.072a] dmd segfault with inheritance, templates, override

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16273

Walter Bright  changed:

   What|Removed |Added

 CC||bugzi...@digitalmars.com

--- Comment #3 from Walter Bright  ---
https://issues.dlang.org/show_bug.cgi?id=16273

--


[Issue 15735] std.algorithm.iteration.splitter returns empty range

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15735

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

https://github.com/dlang/phobos/commit/c6ef7c3f5e5caafe5469af671a761e42c04ef7f9
Fix issue 15735: Correct splitter documentation when argument is an empty
range.

https://github.com/dlang/phobos/commit/181efe61db4d4cb33fee047c955b8bc00c2090f7
Merge pull request #5767 from jondegenhardt/issue-15735-splitter-emptyrange-doc

Fix issue 15735: Correct splitter documentation when arg is an empty range.
merged-on-behalf-of: Petar Kirov 

--


[Issue 15735] std.algorithm.iteration.splitter returns empty range

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15735

--- Comment #5 from Jon Degenhardt  ---
(In reply to Andrei Alexandrescu from comment #4)
> I'm reopening this pending a change in the documentation.

PR for the documentation change: https://github.com/dlang/phobos/pull/5767

--


[Issue 17885] Unable to remove a tuple from associative array.

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17885

ag0ae...@gmail.com changed:

   What|Removed |Added

   Keywords||wrong-code
 CC||ag0ae...@gmail.com
  Component|druntime|dmd

--- Comment #1 from ag0ae...@gmail.com ---
I think this is a wrong-code bug in the compiler.

For this D code:


struct T { ulong a, b; }
T f() { return T(); }

void main()
{
int[T] set;
set.remove(f());
}


dmd generates this machine code for _Dmain (excerpt):


   0x000300ba <+14>:call   0x30090 <_D4test1fFZSQk1T>
   0x000300bf <+19>:movQWORD PTR [rbp-0x8],rax
   0x000300c3 <+23>:leardx,[rbp-0x8]
   0x000300c7 <+27>:learsi,[rip+0x238f42]# 0x269010
<_D17TypeInfo_S4test1T6__initZ>
   0x000300ce <+34>:movrdi,QWORD PTR [rbp-0x10]
   0x000300d2 <+38>:call   0x303c0 <_aaDelX>


Note that after the `f` call, only rax gets copied to the stack. But the other
half of the return value is in rdx which is not being copied.

Changing component to dmd.

--


[Issue 17883] Error: undefined identifier: Static if bodies depend on order of declarations

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17883

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

https://github.com/dlang/druntime/commit/e239f80fbee0c953ed50a039d140d0376647d7d4
Add workaround for issue 17883 in core.sys.linux.sys.mman

https://github.com/dlang/druntime/commit/58d573a593d6417928b9d710421b16802001a2c2
Merge pull request #1931 from ibuclaw/wkarnd17883

Add workaround for issue 17883 in core.sys.linux.sys.mman
merged-on-behalf-of: Petar Kirov 

--


[Issue 17852] cannot compile phobos on freebsd

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17852

--- Comment #3 from Mengu Kagan  ---
(In reply to Jonathan M Davis from comment #2)
> So, what's the bug then? dmd, phobos, etc. are written to build with GNU's
> make on POSIX systems, and Digital Mars' make on Windows. That means using
> gmake on FreeBSD rather than make. The wiki should be updated to reflect the
> fact that gmake is needed on FreeBSD (or probably any POSIX system that
> isn't Linux), but that's not a bug in Phobos or dmd or any of that. Using
> BSD make for FreeBSD would mean either having different makefiles for
> FreeBSD and Linux rather than sharing them like we do now, or it would mean
> forcing Linux users to install and use BSD's make.

this was the first time i compiled dmd, druntime and phobos myself. i've always
used pre-compiled versions or installed through brew or apt. 

when you download from dlang.org web site and intuitively try compiling it
(let's say after you've changed some stuff on phobos), nothing works out. when
you check out all the projects separately into a dir and compile, it compiles
without any issues. i believe it's core team's decision to think of it as a bug
or not.

--


[Issue 17319] icmp - cannot use in sort with string array arguments - compilation fails

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17319

Rainer Schuetze  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||r.sagita...@gmx.de
 Resolution|--- |FIXED

--- Comment #1 from Rainer Schuetze  ---
Works for me, very likely fixed by https://github.com/dlang/phobos/pull/5361

--


[Issue 17188] `core.stdc.stdlib.qsort()` is broken

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17188

--- Comment #3 from Rainer Schuetze  ---
The overload with a non-scope callback should also not pretend to not escape
the base pointer:

voidqsort(void* base, size_t nmemb, size_t size, _compare_fp_t compar);

--


[Issue 17188] `core.stdc.stdlib.qsort()` is broken

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17188

Rainer Schuetze  changed:

   What|Removed |Added

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

--- Comment #2 from Rainer Schuetze  ---
As qsort is @system anyway, the callback does not have to guarantee anything.
To still be able to pass a function with scope parameters, how about
overloading it with both variants:

alias int function(scope const void*, scope const void*) _scope_compare_fp_t;
alias int function(const void*, const void*) _compare_fp_t;

voidqsort(scope void* base, size_t nmemb, size_t size, _scope_compare_fp_t
compar);
voidqsort(scope void* base, size_t nmemb, size_t size, _compare_fp_t
compar);

--


[Issue 17876] [REG 2.074] Internal error when comparing inout(Foo[][]) with Foo[][]

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17876

Rainer Schuetze  changed:

   What|Removed |Added

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

--- Comment #4 from Rainer Schuetze  ---
https://github.com/dlang/druntime/pull/1934

--


[Issue 17885] Unable to remove a tuple from associative array.

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17885

keepitsimplesir...@gmail.com changed:

   What|Removed |Added

 CC||keepitsimplesir...@gmail.co
   ||m

--


[Issue 17885] New: Unable to remove a tuple from associative array.

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17885

  Issue ID: 17885
   Summary: Unable to remove a tuple from associative array.
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: critical
  Priority: P1
 Component: druntime
  Assignee: nob...@puremagic.com
  Reporter: keepitsimplesir...@gmail.com

Unable to remove a tuple from an associative array. Repro:


unittest
{
import std.stdio;
import std.typecons;

auto set = (void[0][Tuple!(size_t, size_t)]).init;

set[tuple!(size_t, size_t)(1, 2)] = (void[0]).init;
set[tuple!(size_t, size_t)(10, 3)] = (void[0]).init;
set[tuple!(size_t, size_t)(43, 3)] = (void[0]).init;

writeln(set);
set.remove(tuple!(size_t, size_t)(10, 3));
writeln(set);
assert((tuple!(size_t, size_t)(10, 3) in set) is null);
}

int main() { return 0; }

DMD64 D Compiler v2.076.0-dirty
Copyright (c) 1999-2017 by Digital Mars written by Walter Bright

--


[Issue 15985] [REG2.068/2.069] Code doesn't link unless compiled with -debug

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15985

ag0ae...@gmail.com changed:

   What|Removed |Added

 CC||ag0ae...@gmail.com

--- Comment #4 from ag0ae...@gmail.com ---
Reduced further:


void f()() { h!()(); }
void g()() { f!()(); }
void h()() { g!()(); }

enum x = is(typeof(g!()()));
alias my_h = h!();

void main() {}


And here's a variant that fails both with and without -debug:


void f()()
{
g!()();
h!()();
}

void g()() { f!()(); }
void h()() { f!()(); }

enum x = is(typeof(f!()()));
alias my_g = g!();

void main() {}


--


[Issue 16011] [REG2.068] recursive RefCounted used to work

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16011

ag0ae...@gmail.com changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|WORKSFORME  |---

--- Comment #6 from ag0ae...@gmail.com ---
(In reply to Walter Bright from comment #5)
> Looks like my copy of dmd is out of date. HEAD is passing the example.
> Closing because it works now.

I can't confirm that. DMD64 D Compiler v2.076.1-b1-169-g5db88ac83 gives me
"Error: struct test.S no size because of forward reference". Reopening.

--


[Issue 16100] [REG 2.069] Error with -O of struct enumeration value and comma operator

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16100

Walter Bright  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WORKSFORME

--


[Issue 16013] [REG2.072a] ICE with mutually dependent structs and alias this

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16013

--- Comment #3 from Walter Bright  ---
https://github.com/dlang/dmd/pull/7197 is just the tests, and they appear to
pass now.

--


[Issue 16011] [REG2.068] recursive RefCounted used to work

2017-10-08 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16011

Walter Bright  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #5 from Walter Bright  ---
Looks like my copy of dmd is out of date. HEAD is passing the example. Closing
because it works now.

--