[Issue 16011] [REG2.068] recursive RefCounted used to work
https://issues.dlang.org/show_bug.cgi?id=16011 --- Comment #4 from Walter Bright--- https://github.com/dlang/dmd/pull/7196 --
[Issue 17883] Error: undefined identifier: Static if bodies depend on order of declarations
https://issues.dlang.org/show_bug.cgi?id=17883 Ketmar Darkchanged: What|Removed |Added CC||ket...@ketmar.no-ip.org --
[Issue 16011] [REG2.068] recursive RefCounted used to work
https://issues.dlang.org/show_bug.cgi?id=16011 Walter Brightchanged: What|Removed |Added CC||bugzi...@digitalmars.com --- Comment #3 from Walter Bright --- Compiling this now gives the following error: core.exception.AssertError@dstruct.d(380): Assertion failure 0x005FD23F in _d_assertp 0x00408EFA in AttribDeclaration at C:\cbx\mars\attrib.d(181) 0x0045F5D7 in StructDeclaration at C:\cbx\mars\dstruct.d(373) 0x0045F5D7 in StructDeclaration at C:\cbx\mars\dstruct.d(373) 0x00474D79 in TemplateInstance at C:\cbx\mars\dtemplate.d(8272) 0x00474DDC in TemplateInstance at C:\cbx\mars\dtemplate.d(8290) 0x00470E61 in TemplateInstance at C:\cbx\mars\dtemplate.d(6361) 0x004714BB in TemplateInstance at C:\cbx\mars\dtemplate.d(6595) 0x004ECA1E in TypeInstance at C:\cbx\mars\mtype.d(8004) 0x004ECAE2 in TypeInstance at C:\cbx\mars\mtype.d(8027) 0x00434BE8 in VarDeclaration at C:\cbx\mars\declaration.d(1180) 0x0045F5D7 in StructDeclaration at C:\cbx\mars\dstruct.d(373) 0x00454D54 in Module at C:\cbx\mars\dmodule.d(1065) 0x004D9F9F in int ddmd.mars.tryMain(uint, const(char)**) at C:\cbx\mars\mars.d(847) 0x004DAB43 in _Dmain at C:\cbx\mars\mars.d(1086) 0x005FF73B in D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFNlZv 0x005FF6FF in scope void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll() 0x005FF600 in _d_run_main 0x004DCDD8 in main at C:\cbx\mars\root\stringtable.d(7) 0x0061B245 in mainCRTStartup 0x74F3336A in BaseThreadInitThunk 0x77359902 in RtlInitializeExceptionChain 0x773598D5 in RtlInitializeExceptionChain It appears to be a forward reference error. The code itself cannot work because RefCounted stores an instance of S in itself, and a struct cannot have itself as a field. In fact, the same error occurs with the following example: struct RefCounted { S s; } struct S { int x; RefCounted s; } --
[Issue 15985] [REG2.068/2.069] Code doesn't link unless compiled with -debug
https://issues.dlang.org/show_bug.cgi?id=15985 Walter Brightchanged: What|Removed |Added CC||bugzi...@digitalmars.com --- Comment #3 from Walter Bright --- Reduced it a bit to: struct S() { void delegate() d; } S!() f_Ds(U)() { static if (is(U == struct)) return S!() ( { foreach (i, field; U.init.tupleof) f_Ds!(typeof(field))(); } ); else return f_Ds!(D)(); } void f_E() { auto f = S!() ( { enum x = is(typeof(f_Ds!(D*)())); f_Ds!(D*)(); } ); } struct A { D* d; } struct D { A a; int b; } void main() { f_E(); f_Ds!(D*)(); } --
[Issue 17884] fwd reference leads to dmd assert failure
https://issues.dlang.org/show_bug.cgi?id=17884 Walter Brightchanged: What|Removed |Added Keywords||ice --
[Issue 17884] New: fwd reference leads to dmd assert failure
https://issues.dlang.org/show_bug.cgi?id=17884 Issue ID: 17884 Summary: fwd reference leads to dmd assert failure Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: bugzi...@digitalmars.com struct S() { void delegate() d; } S!() f_Ds(U)() { pragma(msg,U); static if (is(U == struct)) return S!() ( { foreach (i, field; U.init.tupleof) f_Ds!(typeof(field))(); } ); else return f_Ds!(D)(); } void f_E() { auto f = S!() ( { enum x = is(typeof(f_Ds!(D*)())); f_Ds!(D*)(); } ); } struct A { D d; } struct D { A a; int b; } void main() { f_E(); f_Ds!(D*)(); } --- dmd bug bug.d(40): Error: struct bug.A no size because of forward reference core.exception.AssertError@dstruct.d(380): Assertion failure 0x005FD23F in _d_assertp 0x0040477A in AggregateDeclaration at C:\cbx\mars\aggregate.d(339) 0x00404890 in AggregateDeclaration at C:\cbx\mars\aggregate.d(377) 0x004EE4E0 in TypeStruct at C:\cbx\mars\mtype.d(8662) 0x00434C64 in VarDeclaration at C:\cbx\mars\declaration.d(1199) 0x0045F5D7 in StructDeclaration at C:\cbx\mars\dstruct.d(373) 0x00454D54 in Module at C:\cbx\mars\dmodule.d(1065) 0x004D9F9F in int ddmd.mars.tryMain(uint, const(char)**) at C:\cbx\mars\mars.d(847) 0x004DAB43 in _Dmain at C:\cbx\mars\mars.d(1086) 0x005FF73B in D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFNlZv 0x005FF6FF in scope void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll() 0x005FF600 in _d_run_main 0x004DCDD8 in main at C:\cbx\mars\root\stringtable.d(7) 0x0061B245 in mainCRTStartup 0x74F3336A in BaseThreadInitThunk 0x77359902 in RtlInitializeExceptionChain 0x773598D5 in RtlInitializeExceptionChain --
[Issue 16100] [REG 2.069] Error with -O of struct enumeration value and comma operator
https://issues.dlang.org/show_bug.cgi?id=16100 Walter Brightchanged: What|Removed |Added CC||bugzi...@digitalmars.com --- Comment #3 from Walter Bright --- I cannot reproduce this problem. --
[Issue 17883] Error: undefined identifier: Static if bodies depend on order of declarations
https://issues.dlang.org/show_bug.cgi?id=17883 Iain Buclawchanged: What|Removed |Added Keywords||rejects-valid CC||ibuc...@gdcproject.org --
[Issue 17883] New: Error: undefined identifier: Static if bodies depend on order of declarations
https://issues.dlang.org/show_bug.cgi?id=17883 Issue ID: 17883 Summary: Error: undefined identifier: Static if bodies depend on order of declarations Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: critical Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: ibuc...@gdcproject.org This does not compile: --- public import core.sys.posix.sys.mman; import core.sys.linux.config; static if (__USE_MISC) { enum MAP_RENAME = MAP_ANONYMOUS; } static if (__USE_MISC) { enum MAP_ANONYMOUS = MAP_ANON; } --- Swapping the static ifs around, however, and it does. This is particular bug is causing SPARC, SPARC64, MIPS and MIPS64 builds to fail. --
[Issue 16984] Make more modules runnable on dlang.org
https://issues.dlang.org/show_bug.cgi?id=16984 --- Comment #2 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/phobos https://github.com/dlang/phobos/commit/2e96d0654bb7146d40f71697c66a8fa6826440ee Issue 16984 - Make std.math runnable https://github.com/dlang/phobos/commit/c2d03bf75492c9141026fc58db865e5e0ca4d5e8 Issue 16984 - Make std.stdio runnable https://github.com/dlang/phobos/commit/3cc63005e1bb05fdf78fd3017c1d9eb3c41705cc Issue 16984 - Make std.traits runnable https://github.com/dlang/phobos/commit/ff6c0f1dfc2405b4d0f92d08079d390fc4cc14a0 Issue 16984 - Make stdx.allocator.building_blocks.quantizer runnable https://github.com/dlang/phobos/commit/5a20f69160443a17a0fbc1abe2e676b60e5485d2 Issue 16984 - Make stdx.allocator.building_blocks.free_list runnable https://github.com/dlang/phobos/commit/d661120ff3bef457f1e9413965ebef3dd3f14fff Fix Issue 16984 - Remove runnable blacklist --
[Issue 17798] [2.076] "static foreach" not documented
https://issues.dlang.org/show_bug.cgi?id=17798 --- Comment #3 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/dlang.org https://github.com/dlang/dlang.org/commit/4caec8e66773560bef9e2f9df1f11c4b1e5378df fix Issue 17798 - [2.076] "static foreach" not documented https://github.com/dlang/dlang.org/commit/c190c0c29c3f1bd733936f94b69ec56548c33ce3 Merge pull request #1884 from tgehr/fix17798 fix Issue 17798 - [2.076] "static foreach" not documented merged-on-behalf-of: Petar Kirov--
[Issue 17190] [REG2.072] isNumeric!string conflict std.traits std.string
https://issues.dlang.org/show_bug.cgi?id=17190 --- Comment #3 from Jonathan M Davis--- https://github.com/dlang/phobos/pull/5763 --
[Issue 17326] 2.072 gc changes broke 32 bit Windows DLLs
https://issues.dlang.org/show_bug.cgi?id=17326 --- Comment #7 from Rainer Schuetze--- Benjamin Thaut has prototyped it and showed it at Dconf http://dconf.org/2016/talks/thaut.html. Development seems to have stalled at the moment, though. Latest version should be this: https://github.com/Ingrater/dmd/tree/DllSupportD2 --
[Issue 17326] 2.072 gc changes broke 32 bit Windows DLLs
https://issues.dlang.org/show_bug.cgi?id=17326 werero...@gmail.com changed: What|Removed |Added CC||werero...@gmail.com --- Comment #6 from werero...@gmail.com --- I'd be lovely to have a doc on how it should be used in the complex cases - if it works at all :/ --
[Issue 17619] [REG2.072] Wrong debug line information with single line loops
https://issues.dlang.org/show_bug.cgi?id=17619 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 17619] [REG2.072] Wrong debug line information with single line loops
https://issues.dlang.org/show_bug.cgi?id=17619 --- Comment #7 from github-bugzi...@puremagic.com --- Commits pushed to stable at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/056160d108df108d99783b77ea5b9e0b04a9d592 fix issue 17619: for statements without curly braces, default endloc to location of last token, not next token https://github.com/dlang/dmd/commit/64fda491f77ca98a1814dd20e7be917c1c767369 Merge pull request #7189 from rainers/fix_17619 fix issue 17619: [REG2.072] Wrong debug line information with single line loops merged-on-behalf-of: Walter Bright--
[Issue 17870] recursive template "T is nested in both"
https://issues.dlang.org/show_bug.cgi?id=17870 bitwisechanged: What|Removed |Added CC||nicolas.jincher...@gmail.co ||m --
[Issue 17326] 2.072 gc changes broke 32 bit Windows DLLs
https://issues.dlang.org/show_bug.cgi?id=17326 --- Comment #5 from Rainer Schuetze--- That's why I've been saying for years that https://wiki.dlang.org/Win32_DLLs_in_D#D_code_calling_D_code_in_DLLs needs a big red warning that it doesn't work but in very simple cases. --
[Issue 17864] POD struct not equivalent to primitive type in comparison
https://issues.dlang.org/show_bug.cgi?id=17864 bitwisechanged: What|Removed |Added CC|nicolas.jincher...@gmail.co | |m | --
[Issue 17864] POD struct not equivalent to primitive type in comparison
https://issues.dlang.org/show_bug.cgi?id=17864 bitwisechanged: What|Removed |Added CC||nicolas.jincher...@gmail.co ||m --
[Issue 17824] wrong visibility deduced for method
https://issues.dlang.org/show_bug.cgi?id=17824 bitwisechanged: What|Removed |Added CC||nicolas.jincher...@gmail.co ||m --
[Issue 17865] property/non-property overloads not detected until used
https://issues.dlang.org/show_bug.cgi?id=17865 bitwisechanged: What|Removed |Added CC||nicolas.jincher...@gmail.co ||m --
[Issue 17326] 2.072 gc changes broke 32 bit Windows DLLs
https://issues.dlang.org/show_bug.cgi?id=17326 --- Comment #4 from Walter Bright--- Coming up again: http://www.digitalmars.com/d/archives/digitalmars/D/learn/DLL_hell_S_96980.html --
[Issue 17559] [REG2.073.0] Wrong line number in stack trace
https://issues.dlang.org/show_bug.cgi?id=17559 Rainer Schuetzechanged: What|Removed |Added Keywords||pull, symdeb --- Comment #7 from Rainer Schuetze --- https://github.com/dlang/dmd/pull/6947 --
[Issue 6244] Add powmod / modpow function to std.math
https://issues.dlang.org/show_bug.cgi?id=6244 alex.jercai...@gmail.com changed: What|Removed |Added CC||alex.jercai...@gmail.com Assignee|nob...@puremagic.com|alex.jercai...@gmail.com --
[Issue 17882] [The D Style] unittest attributes
https://issues.dlang.org/show_bug.cgi?id=17882 b2.t...@gmx.com changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |INVALID --- Comment #4 from b2.t...@gmx.com --- (In reply to Mario Kroeplin from comment #3) > (In reply to b2.temp from comment #2) > > The issue is just the wording of the guideline: > "to ensure the existence of attributes on the templated function": > which "templated function"? in the example it's "call2". Maybe if you're not comfy enough with D try https://forum.dlang.org/group/learn before opening an issue. --
[Issue 17881] Provide mechanism to preallocate memory from the GC
https://issues.dlang.org/show_bug.cgi?id=17881 --- Comment #6 from Steven Schveighoffer--- (In reply to Rainer Schuetze from comment #5) > A slightly simpler API could be to add allocating N same-sized chunks from > the GC that returns them in a free-list-like chain. I think an array is best, since the data already is an array, and a free-list requires building a linked list before-hand. > I agree with Andrei that we should not complicate the GC interface for every > possible allocation pattern a user might want to optimize for, though. Hm... I'm trying to find the most generic interface for this. It's not necessarily limited to AA, as allocating a bunch of blocks in a loop isn't an uncommon thing. If there was a way to "re-flavor" the blocks from one giant block into individual ones, then we could do this outside the GC. > If you call GC.reserve(20_000_000*(Key.sizeof+Value.sizeof)) before > inserting elements, there should be no collection while filling the AA. Limiting the collection in the example I posted shaves off about 300-400msec, but it still is 1.5 seconds vs. 0.1 for the local array version. > If we add thread local free-lists to the GC, the overhead of allocating > these from the GC instead of caching them in the AA would be rather small. Agreed, I think keeping the lists inside the GC is the most useful, and does not expose any implementation details to the user. --
[Issue 17882] [The D Style] unittest attributes
https://issues.dlang.org/show_bug.cgi?id=17882 Mario Kroeplinchanged: What|Removed |Added Status|RESOLVED|REOPENED Resolution|INVALID |--- --- Comment #3 from Mario Kroeplin --- (In reply to b2.temp from comment #2) The issue is just the wording of the guideline: "to ensure the existence of attributes on the templated function": which "templated function"? --
[Issue 17882] [The D Style] unittest attributes
https://issues.dlang.org/show_bug.cgi?id=17882 --- Comment #2 from b2.t...@gmx.com --- to be perfectly clear about the invalidity, see: https://dlang.org/spec/function.html#function-attribute-inference void call1 () @safe{} // non templatized so no attrib inference void call2 ()(){} // attrib infered by the caller @safe unittest { // everything inside **must** be safe or trused. call1(); call2(); } //is like void test() @safe { call1(); call2(); // @safe is infered on call2, so that if not supported compil stops. } --
[Issue 17619] [REG2.072] Wrong debug line information with single line loops
https://issues.dlang.org/show_bug.cgi?id=17619 Rainer Schuetzechanged: What|Removed |Added Keywords||pull --- Comment #6 from Rainer Schuetze --- https://github.com/dlang/dmd/pull/7189 --
[Issue 17882] [The D Style] unittest attributes
https://issues.dlang.org/show_bug.cgi?id=17882 b2.t...@gmx.com changed: What|Removed |Added Status|NEW |RESOLVED CC||b2.t...@gmx.com Resolution|--- |INVALID --- Comment #1 from b2.t...@gmx.com --- attributes of the unittest blocks are tried on the free functions that are used inside. Actually you can see a unittest{} as a function itself. (the getunittests traits returns some void function()). --
[Issue 17882] New: [The D Style] unittest attributes
https://issues.dlang.org/show_bug.cgi?id=17882 Issue ID: 17882 Summary: [The D Style] unittest attributes Product: D Version: D2 Hardware: All URL: http://dlang.org/ OS: All Status: NEW Severity: enhancement Priority: P3 Component: dlang.org Assignee: nob...@puremagic.com Reporter: kroepli...@googlemail.com "Every unittest should be annotated (e.g. pure nothrow @nogc @safe unittest { ... }) to ensure the existence of attributes on the templated function." But, templated functions should not be annotated. So, do you mean "... on a non-templated function"? Or maybe "... on the tested function"? --
[Issue 17635] [REG 2.066.0] cannot convert unique immutable(int)** to immutable
https://issues.dlang.org/show_bug.cgi?id=17635 ag0ae...@gmail.com changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED |--- --- Comment #9 from ag0ae...@gmail.com --- The original test case has been fixed, but it can be made to fail again by changing the parameter type slightly. As far as I can tell, the parameter type shouldn't matter, as long as it's not mutable. alias T = immutable int; T** f(I)(const I input) pure { T** output; return output; } void main() { /* Not regressions in 2.066 (i.e. 2.065 also rejected these): */ T*** a1; immutable T** r1 = f(a1); static struct S2 { T* foo; } S2* a2; immutable T** r2 = f(a2); /* But this one compiles with 2.065, so it's another regression: */ static struct S3 { T foo; } S3* a3; immutable T** r3 = f(a3); } Tested with DMD64 D Compiler v2.076.1-b1-166-g2f98e66e5. Reopening. Let me know if I should file a new issue (or multiple ones) instead. --
[Issue 15538] [REG 2.064] wrong code with switch
https://issues.dlang.org/show_bug.cgi?id=15538 --- Comment #12 from Walter Bright--- https://github.com/dlang/dmd/pull/7188 --
[Issue 15538] [REG 2.064] wrong code with switch
https://issues.dlang.org/show_bug.cgi?id=15538 Walter Brightchanged: What|Removed |Added CC||bugzi...@digitalmars.com OS|Linux |All --- Comment #11 from Walter Bright --- Happens on Win64 too. --
[Issue 17881] Provide mechanism to preallocate memory from the GC
https://issues.dlang.org/show_bug.cgi?id=17881 Rainer Schuetzechanged: What|Removed |Added CC||r.sagita...@gmx.de --- Comment #5 from Rainer Schuetze --- A slightly simpler API could be to add allocating N same-sized chunks from the GC that returns them in a free-list-like chain. I agree with Andrei that we should not complicate the GC interface for every possible allocation pattern a user might want to optimize for, though. If you call GC.reserve(20_000_000*(Key.sizeof+Value.sizeof)) before inserting elements, there should be no collection while filling the AA. If we add thread local free-lists to the GC, the overhead of allocating these from the GC instead of caching them in the AA would be rather small. --