[Issue 16373] gcc 6.1.1 compatibility
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
https://issues.dlang.org/show_bug.cgi?id=14619 Lodovico Giarettachanged: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=16374 --
[Issue 16374] Foreach lowering tries opSlice before range primitives
https://issues.dlang.org/show_bug.cgi?id=16374 Lodovico Giarettachanged: 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
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
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
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
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
https://issues.dlang.org/show_bug.cgi?id=16362 Ketmar Darkchanged: 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
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
https://issues.dlang.org/show_bug.cgi?id=16369 Martin Nowakchanged: 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
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
https://issues.dlang.org/show_bug.cgi?id=16370 Steven Schveighofferchanged: 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
https://issues.dlang.org/show_bug.cgi?id=16371 Steven Schveighofferchanged: 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
https://issues.dlang.org/show_bug.cgi?id=16370 Steven Schveighofferchanged: 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
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
https://issues.dlang.org/show_bug.cgi?id=16371 Lodovico Giarettachanged: 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
https://issues.dlang.org/show_bug.cgi?id=16370 Lodovico Giarettachanged: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=16371 --
[Issue 16370] outdated spec: templated functions allowed in interfaces
https://issues.dlang.org/show_bug.cgi?id=16370 Lodovico Giarettachanged: What|Removed |Added CC||lodov...@giaretart.net --
[Issue 16370] New: outdated spec: templated functions allowed in interfaces
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
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
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
https://issues.dlang.org/show_bug.cgi?id=15335 Johan Engelenchanged: 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
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
https://issues.dlang.org/show_bug.cgi?id=15939 --- Comment #20 from Илья Ярошенко--- I have not access to the source code anymore :/ --