[Issue 16373] gcc 6.1.1 compatibility

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

--- Comment #1 from hst...@quickfur.ath.cx ---
Turns out the problem is that posix.mak fails to reliably detect gcc.

Propose using a small utility program that uses #ifdef __GNUC__ as a more
reliable detection method:

http://nadeausoftware.com/articles/2012/10/c_c_tip_how_detect_compiler_name_and_version_using_compiler_predefined_macros#Howtodetectthecompilername

--


[Issue 14619] foreach implicitly slices ranges

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

Lodovico Giaretta  changed:

   What|Removed |Added

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

--


[Issue 16374] Foreach lowering tries opSlice before range primitives

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

Lodovico Giaretta  changed:

   What|Removed |Added

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

--


[Issue 16374] New: Foreach lowering tries opSlice before range primitives

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

  Issue ID: 16374
   Summary: Foreach lowering tries opSlice before range primitives
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: lodov...@giaretart.net
CC: lodov...@giaretart.net

When lowering a foreach, the compiler gives priority to opSlice over
front/popFront/empty, which is counter-intuitive (and also undocumented).

The following code, taken from [1] shows the issue: the overridden front in
RangeWrapper is ignored when the wrapped range also defines opSlice, which is
true for RangeT (the range returned by Array.opSlice). This causes the foreach
output to be different from the expected old-style for loop equivalent.

Example code:
=
import std.stdio, std.container.array;
struct RangeWrapper(Range)
{
Range range;
alias range this;

auto front()
{
return range.front + 1;
}
}
auto rangeWrapper(Range)(auto ref Range range)
{
return RangeWrapper!Range(range);
}
void main()
{
Array!int array;
array.insertBack(3);

foreach (i; rangeWrapper(array[]))
writeln(i);   // prints 3, which is wrong

// isn't the above foreach equivalent to the following loop ?

for (auto r = rangeWrapper(array[]); !r.empty; r.popFront())
writeln(r.front); // correctly prints 4
}
=

[1] http://forum.dlang.org/thread/fzwofczyvkxgmtvnc...@forum.dlang.org

--


[Issue 16373] New: gcc 6.1.1 compatibility

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

  Issue ID: 16373
   Summary: gcc 6.1.1 compatibility
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: blocker
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: hst...@quickfur.ath.cx

DMD does not compile with gcc 6.1.1:

backend/cg87.c:716:46: error: narrowing conversion of ‘232’ from ‘int’ to
‘char’ inside { } [-Wnarrowing]

backend/cod1.c:2508:9: error: narrowing conversion of ‘193’ from ‘int’ to
‘char’ inside { } [-Wnarrowing]

backend/cod3.c:431:13: error: narrowing conversion of ‘144’ from ‘int’ to
‘char’ inside { } [-Wnarrowing]

backend/ptrntab.c:1208:1: error: narrowing conversion of ‘-1006567058’ from
‘int’ to ‘unsigned int’ inside { } [-Wnarrowing]
[... above error repeated on many other lines in the same file ...]


These errors are making it impossible for me to use dmd git HEAD.

--


[Issue 16364] getUDAs and hasUDA do not give consistent results

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

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

https://github.com/dlang/phobos/commit/29470ebb3c3c1475950e317fa033199d92b48cee
Fix issue# 16364. Make getUDAs and hasUDA consistent.

https://github.com/dlang/phobos/commit/af39effdb467af75c04ccf139a730a6d68c2f9a7
Merge pull request #4721 from jmdavis/issue_16364

Fix issue# 16364. Make getUDAs and hasUDA consistent.

--


[Issue 16364] getUDAs and hasUDA do not give consistent results

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

github-bugzi...@puremagic.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--


[Issue 16362] `foreach (ref v; range)` with non-ref returning `.front()` missing dtors

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

Ketmar Dark  changed:

   What|Removed |Added

   Attachment #1607|0   |1
is obsolete||

--- Comment #2 from Ketmar Dark  ---
Created attachment 1608
  --> https://issues.dlang.org/attachment.cgi?id=1608=edit
fix and test case, v2

remove `ref` only for types that needs dtor to be called. this *may* give some
speedup when `.front` returns structs without dtors.

--


[Issue 16372] New: Broken links in documentation

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

  Issue ID: 16372
   Summary: Broken links in documentation
   Product: D
   Version: D2
  Hardware: x86
OS: Mac OS X
Status: NEW
  Severity: trivial
  Priority: P1
 Component: dlang.org
  Assignee: nob...@puremagic.com
  Reporter: vmal...@gmail.com

Errant "" causes broken links (e.g.
https://dlang.org/phobos/std_stdio.html#.readf)

--


[Issue 16369] [REG 2.071] getSymbolsByUDA fails if type inherits private members

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

Martin Nowak  changed:

   What|Removed |Added

 CC||c...@dawg.eu

--- Comment #2 from Martin Nowak  ---
At least the visibility warnings are related to Issue 15907 and should not
appear, if people had correctly used `__traits(getMember, T, name)`.

--


[Issue 12936] Some more @nogc cases for immediately iterated array literal

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

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

https://github.com/dlang/dmd/commit/6a48d5bb77be35a3778c7ad67de232b2e9c8
Issue 12936 - Some more @nogc cases for immediately iterated array literal

Support case#2 in bugzilla.

https://github.com/dlang/dmd/commit/46c35125b335354077c11973389c7e82686036ff
Merge pull request #5795 from 9rnsr/fix12936

Issue 12936 - Some more @nogc cases for immediately iterated array literal

--


[Issue 16370] outdated spec: templated functions allowed in interfaces and functions

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

Steven Schveighoffer  changed:

   What|Removed |Added

Summary|outdated spec: templated|outdated spec: templated
   |functions allowed in|functions allowed in
   |interfaces  |interfaces and functions

--- Comment #3 from Steven Schveighoffer  ---
The limitation that templates can't be inside functions also is no longer true!

--


[Issue 16371] warn/deprecate implicit final in interfaces

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

Steven Schveighoffer  changed:

   What|Removed |Added

 CC||schvei...@yahoo.com

--- Comment #1 from Steven Schveighoffer  ---
I don't think this makes sense. Templates can never add virtual functions or
non-static members, even to classes. Why should it be different for interfaces?

--


[Issue 16370] outdated spec: templated functions allowed in interfaces

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

Steven Schveighoffer  changed:

   What|Removed |Added

Summary|spec on templates ambiguous |outdated spec: templated
   |as to not allowing member   |functions allowed in
   |fields in interfaces|interfaces

--


[Issue 16370] spec on templates ambiguous as to not allowing member fields in interfaces

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

--- Comment #2 from Steven Schveighoffer  ---
Whoops! I misread the docs. I'll update the PR and restore the original
description. I still like my PR change, as to be clearer.

--


[Issue 16371] warn/deprecate implicit final in interfaces

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

Lodovico Giaretta  changed:

   What|Removed |Added

 CC||lodov...@giaretart.net
   See Also||https://issues.dlang.org/sh
   ||ow_bug.cgi?id=16370

--


[Issue 16370] outdated spec: templated functions allowed in interfaces

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

Lodovico Giaretta  changed:

   What|Removed |Added

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

--


[Issue 16370] outdated spec: templated functions allowed in interfaces

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

Lodovico Giaretta  changed:

   What|Removed |Added

 CC||lodov...@giaretart.net

--


[Issue 16370] New: outdated spec: templated functions allowed in interfaces

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

  Issue ID: 16370
   Summary: outdated spec: templated functions allowed in
interfaces
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Keywords: spec
  Severity: normal
  Priority: P1
 Component: dlang.org
  Assignee: nob...@puremagic.com
  Reporter: lodov...@giaretart.net

The last line of this page [1] says that interfaces cannot contain templated
functions (and suggest the compiler should raise an error).
But DMD allows templated functions in interfaces, making them implicitly final.
>From a thread [2] it looks like this was a conscious addition, so the spec
shall be updated.

[1] https://dlang.org/spec/template.html#limitations
[2] http://forum.dlang.org/post/wmnsqhzrzihgfrahf...@forum.dlang.org

--


[Issue 15335] getSymbolsByUDA fails if type has private members

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

--- Comment #7 from Johan Engelen  ---
PR is https://github.com/dlang/phobos/pull/3827

--


[Issue 16369] [REG 2.071] getSymbolsByUDA fails if type inherits private members

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

--- Comment #1 from Sobirari Muhomori  ---
PR was https://github.com/dlang/phobos/pull/3827 (specified in the commit)

--


[Issue 15335] getSymbolsByUDA fails if type has private members

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

Johan Engelen  changed:

   What|Removed |Added

 CC||jbc.enge...@gmail.com

--- Comment #6 from Johan Engelen  ---
Should this have been closed?
See:
https://github.com/dlang/phobos/commit/79fd6aac7956179b300c43f3320347ce0c1fe46b
No PR for that commit?

--


[Issue 16369] New: [REG 2.071] getSymbolsByUDA fails if type inherits private members

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

  Issue ID: 16369
   Summary: [REG 2.071] getSymbolsByUDA fails if type inherits
private members
   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

File m.d:
```
class M
{
private // comment out to "fix" the problem
int mmm;
}
```


File a.d:
```
import m;

enum U;

class A : M
{
@U int aaa;
}

void main()
{
import std.traits;
alias E = getSymbolsByUDA!(A, U);
}
```

Command `dmd -c a.d` works with DMD 2.070.2, but fails with DMD 2.071.2-b2.

Error:
❯ dmd -c a.d
std/traits.d-mixin-6733(6733): Deprecation: m.M.mmm is not visible from class A
std/traits.d-mixin-6733(6733): Deprecation: m.M.mmm is not visible from module
traits
std/traits.d-mixin-6733(6733): Error: class a.A member mmm is not accessible
std/meta.d(770): Error: template instance std.traits.getSymbolsByUDA!(A,
U).pred!"mmm" error instantiating
std/meta.d(780):instantiated from here: Filter!(hasSpecificUDA, "mmm")
std/meta.d(779):instantiated from here: Filter!(hasSpecificUDA, "aaa",
"mmm")
std/meta.d(779):instantiated from here: Filter!(hasSpecificUDA, "aaa",
"mmm", "toString", "toHash")
std/traits.d(6735):instantiated from here: Filter!(hasSpecificUDA,
"aaa", "mmm", "toString", "toHash", "opCmp", "opEquals", "Monitor", "factory")
a.d(13):instantiated from here: getSymbolsByUDA!(A, U)


Related bug (but not the same): https://issues.dlang.org/show_bug.cgi?id=15335
Related Phobos commit:
https://github.com/dlang/phobos/commit/79fd6aac7956179b300c43f3320347ce0c1fe46b
(no PR?)

--


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

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

--- Comment #20 from Илья Ярошенко  ---
I have not access to the source code anymore :/

--