[Issue 16319] New: std.experimental.allocator.make subtly wrong with nested classes
https://issues.dlang.org/show_bug.cgi?id=16319 Issue ID: 16319 Summary: std.experimental.allocator.make subtly wrong with nested classes Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: lodov...@giaretart.net CC: lodov...@giaretart.net std.experimental.allocator.make does not initialize the implicit `this.outer` pointer of nested classes. After you find out, it is obvious that make cannot initialize it. But it is subtle and may cause long hours of useless debugging to find it out. make should either print a big red warning when used on a nested class or require an additional runtime argument to initialize the outer field with. --
[Issue 16318] New: inherit from interface via abstract class
https://issues.dlang.org/show_bug.cgi?id=16318 Issue ID: 16318 Summary: inherit from interface via abstract class Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: spec Severity: enhancement Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: lodov...@giaretart.net CC: lodov...@giaretart.net interface Foo { void foo(); } abstract class Bar: Foo { // the following line eliminates the error, if uncommented // abstract override void foo(); } class Baz: Bar { override void foo(); // error: Baz.foo does not override any function; // did you meant to override Foo.foo? } Why doesn't this work? Probably there's a good reason, but I can't find it. I would think that the commented-out line was implicit, but it is not. --
[Issue 16243] wrong C++ argument passing with empty struct and 6 integers
https://issues.dlang.org/show_bug.cgi?id=16243 ki...@gmx.net changed: What|Removed |Added CC||ki...@gmx.net --- Comment #4 from ki...@gmx.net --- clang doesn't pass empty structs at all for 32-bit, while GCC does. We have such a special case in LDC too for 32-bit OSX, where we assume clang, but not for 32-bit Linux, where we assume GCC. See https://github.com/ldc-developers/ldc/blob/master/gen/abi-x86.cpp#L214. --
[Issue 16243] wrong C++ argument passing with empty struct and 6 integers
https://issues.dlang.org/show_bug.cgi?id=16243 Martin Nowakchanged: What|Removed |Added Severity|normal |regression --- Comment #3 from Martin Nowak --- Now this also fails on the OSX-64/32 test on the auto-tester, so this might actually be a relevant regression. --
[Issue 16315] [] ?= operations does not work with packed slices [ndslice]
https://issues.dlang.org/show_bug.cgi?id=16315 --- Comment #1 from Илья Ярошенко--- https://github.com/dlang/phobos/pull/4647 --
[Issue 16004] Document changes to protection attributes
https://issues.dlang.org/show_bug.cgi?id=16004 github-bugzi...@puremagic.com changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --
[Issue 16004] Document changes to protection attributes
https://issues.dlang.org/show_bug.cgi?id=16004 --- Comment #2 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/dlang.org https://github.com/dlang/dlang.org/commit/7bd44bc2c241af0c7131e32a3232bf6af6577664 Fix issue 16004 - Document changes to protection attributes - Rename to visibility attribute - Expand documentation on name lookup in module doc https://github.com/dlang/dlang.org/commit/58e99baec2ee7936d1534a51dace3da9a68ddd0a Merge pull request #1325 from mathias-lang-sociomantic/fix-16004 Fix issue 16004 - Document changes to protection attributes --
[Issue 16317] New: Wrong binop evaluation/load order when optimizing
https://issues.dlang.org/show_bug.cgi?id=16317 Issue ID: 16317 Summary: Wrong binop evaluation/load order when optimizing Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: major Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: ki...@gmx.net The runtime assertion fails when specifying `-O`: - int add8ret3(ref int s) { s += 8; return 3; } int binAdd(int val) { val = val + add8ret3(val); return val; } void main() { assert(binAdd(1) == (1 + 3)); static assert(binAdd(1) == (1 + 3)); } - So the left hand side lvalue seems to be loaded after evaluating the right hand side. This can be caused by optimizing `val = val ...` to `val = ...`, which isn't valid for the current evaluation/load order rules. This came up when fixing a related CTFE issue in https://github.com/dlang/dmd/pull/5966, where I disabled the corresponding tests for now. --
[Issue 16316] New: [REG 2.071] (Import deprecation) fully qualified name of imports in mixin template not accessible
https://issues.dlang.org/show_bug.cgi?id=16316 Issue ID: 16316 Summary: [REG 2.071] (Import deprecation) fully qualified name of imports in mixin template not accessible Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: regression Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: c...@dawg.eu cat > bug.d << CODE template imp() { static import core.stdc.stdio; // also w/o static } mixin imp!(); void test() { core.stdc.stdio.puts(""); } CODE dmd -c bug bug.d(10): Deprecation: package core.stdc is not accessible here bug.d(10): Deprecation: module core.stdc.stdio is not accessible here, perhaps add 'static import core.stdc.stdio;' While imports from mixin templates are no longer searched for unqualified symbols, the fully qualified name of the imported modules should still be available. --
[Issue 16315] New: [] ?= operations does not work with packed slices [ndslice]
https://issues.dlang.org/show_bug.cgi?id=16315 Issue ID: 16315 Summary: [] ?= operations does not work with packed slices [ndslice] Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: ilyayaroshe...@gmail.com --