[Issue 18847] std.allocator: Region uses .parent before it can be set
https://issues.dlang.org/show_bug.cgi?id=18847 Vladimir Panteleevchanged: What|Removed |Added Assignee|nob...@puremagic.com|dlang-bugzilla@thecybershad ||ow.net --
[Issue 18847] std.allocator: Region uses .parent before it can be set
https://issues.dlang.org/show_bug.cgi?id=18847 --- Comment #1 from Vladimir Panteleev--- Some goes for BitmappedBlock and KKRegion. ContiguousFreeList seems to have gotten this right (though with the end result of having 8 constructor declarations). --
[Issue 18860] New: Destructors and postblit constructors do not appear in DDoc output
https://issues.dlang.org/show_bug.cgi?id=18860 Issue ID: 18860 Summary: Destructors and postblit constructors do not appear in DDoc output Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: ddoc Severity: normal Priority: P3 Component: dmd Assignee: nob...@puremagic.com Reporter: dlang-bugzi...@thecybershadow.net / test.d / /// struct S { /// Documentation here this(this) {} /// Documentation here ~this() {} } // $ dmd -D -o- test.d $ $BROWSER test.html (Neither declarations appear in the HTML output.) --
[Issue 18821] DMD segfault 2.080
https://issues.dlang.org/show_bug.cgi?id=18821 --- Comment #6 from Walter Bright--- Thank you. I was able to reproduce the problem. --
[Issue 18859] Silence class allocator/deallocator deprecation warning if they are marked "deprecated"
https://issues.dlang.org/show_bug.cgi?id=18859 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 18859] Silence class allocator/deallocator deprecation warning if they are marked "deprecated"
https://issues.dlang.org/show_bug.cgi?id=18859 --- Comment #2 from github-bugzi...@puremagic.com --- Commit pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/b6f92b288a005c5334793b318c1bf2ab70152ed4 Fix Issue 18859 - Silence class allocator/deallocator deprecation warning if they are marked "deprecated" --
[Issue 18859] Silence class allocator/deallocator deprecation warning if they are marked "deprecated"
https://issues.dlang.org/show_bug.cgi?id=18859 Vladimir Panteleevchanged: What|Removed |Added Keywords||pull --- Comment #1 from Vladimir Panteleev --- https://github.com/dlang/dmd/pull/8247 --
[Issue 18859] New: Silence class allocator/deallocator deprecation warning if they are marked "deprecated"
https://issues.dlang.org/show_bug.cgi?id=18859 Issue ID: 18859 Summary: Silence class allocator/deallocator deprecation warning if they are marked "deprecated" Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: dlang-bugzi...@thecybershadow.net To facilitate transition from class allocators/deallocators, it would be nice if it was possible to mark them as deprecated, which would move the deprecation warning from the declaration to any code that uses them. This would be similar to how deprecated unittests allow silently testing deprecated symbols. Example: // test.d / class C { new(size_t sz) { return null; } } void fun() { new C; } /// Currently, this warns on line 3. /// test.d /// class C { deprecated new(size_t sz) { return null; } } void fun() { new C; } // This warns both on line 3 and line 8 (usage). It would be better to just have a warning at line 8. --
[Issue 18858] switch 'skips declaration' test only checks last declaration
https://issues.dlang.org/show_bug.cgi?id=18858 --- Comment #1 from Walter Bright--- https://github.com/dlang/dmd/pull/8246 --
[Issue 18821] DMD segfault 2.080
https://issues.dlang.org/show_bug.cgi?id=18821 ag0aep6gchanged: What|Removed |Added Keywords||ice --
[Issue 18821] DMD segfault 2.080
https://issues.dlang.org/show_bug.cgi?id=18821 ag0aep6gchanged: What|Removed |Added CC||ag0ae...@gmail.com --- Comment #5 from ag0aep6g --- Reduced further: align(1) struct epoll_event { void* ptr; } template isAllZeroBits(epoll_event value) {} alias isInitAllZeroBits = isAllZeroBits!(epoll_event.init); --
[Issue 18858] New: switch 'skips declaration' test only checks last declaration
https://issues.dlang.org/show_bug.cgi?id=18858 Issue ID: 18858 Summary: switch 'skips declaration' test only checks last declaration Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: bugzi...@digitalmars.com Consider: int test(int n) { final switch(n) { enum e = 6; int z = 5; // Error: switch skips declaration of variable test.z case 1: int y = 2; return y; } } Good. Now reverse the enum e and int z statements, and no error will be generated. --
[Issue 18606] [REG2.072] "cannot append type const(T) to type T[]" in .dup
https://issues.dlang.org/show_bug.cgi?id=18606 --- Comment #2 from Vladimir Panteleev--- The commits are big too, but if it helped, I can bisect it down to the commit. --
[Issue 18712] [Reg 2.072] bogus "switch skips declaration" error with case in mixin
https://issues.dlang.org/show_bug.cgi?id=18712 Walter Brightchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WONTFIX --- Comment #4 from Walter Bright --- Here's what's happening. After a case/default statement, the parser makes the code between one case/default and the next into a scope. So it looks like: int test(int n) { switch(n) { mixin("case 0:"); int x = 1; return x; case 1: { int y = 2; return y; } default: { return -1; } } } and, of course, now the error message makes sense. `x` is visible to the following two scopes, whether or not the error message is generated. Any time the case/default is not directly in the switch body (not nested via { } or a mixin) the implicit { } scope is not generated. Oops. Try putting { } in various combinations, and you'll see how it all comes unglued. I can't think of any solution that 1) works in all cases and 2) doesn't break a lot of existing code. So we're just stuck with it. Fortunately, there is a workaround. Recode the switch like this: int test(int n) { switch(n) { mixin("case 0:"); { int x = 1; return x; } case 1: int y = 2; return y; default: return -1; } } I'm going to close this as WONTFIX. If anyone has a brainwave on how to make it work in all cases without breaking code, reopen with proof. Note that the fundamental problem is a combination of: 1. allowing case/default statements to appear inside nested scopes 2. implicit generation of scopes between case/default pairs --
[Issue 18821] DMD segfault 2.080
https://issues.dlang.org/show_bug.cgi?id=18821 --- Comment #4 from Mr. Smith--- Reduced to this: ``` module test18821; import std.experimental.allocator : makeArray; import core.sys.linux.epoll; class MmapPool { static MmapPool instance() { return null; } } void test() { epoll_event[] events = MmapPool.instance.makeArray!epoll_event(0); } ``` --
[Issue 18850] Template overload incorrectly results in recursive expansion error
https://issues.dlang.org/show_bug.cgi?id=18850 Jonathan Marlerchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #2 from Jonathan Marler --- Yes I made a mistake here. Had a temporary brain lapse. I mean to define Foo as a template, not a templated struct. --
[Issue 6579] Calling static method should *require* using type and not instance, unless specified by author
https://issues.dlang.org/show_bug.cgi?id=6579 Mike Franklinchanged: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=12228 --
[Issue 12228] Identifiers 'this' and 'super' should not be allowed as base classes
https://issues.dlang.org/show_bug.cgi?id=12228 Mike Franklinchanged: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=6579 --
[Issue 6579] Calling static method should *require* using type and not instance, unless specified by author
https://issues.dlang.org/show_bug.cgi?id=6579 Mike Franklinchanged: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=14170 --
[Issue 14170] `this` compiles in a static context
https://issues.dlang.org/show_bug.cgi?id=14170 Mike Franklinchanged: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=6579 --
[Issue 18821] DMD segfault 2.080
https://issues.dlang.org/show_bug.cgi?id=18821 --- Comment #3 from Mr. Smith--- Created attachment 1694 --> https://issues.dlang.org/attachment.cgi?id=1694=edit Stack trace --
[Issue 18821] DMD segfault 2.080
https://issues.dlang.org/show_bug.cgi?id=18821 --- Comment #2 from Mr. Smith--- Looks like the issue was with dlib library Uploaded stacktrace as attachment Will try reducing code. --
[Issue 18600] Regex performance enhancement for repeated matchFirst calls
https://issues.dlang.org/show_bug.cgi?id=18600 --- Comment #2 from Jon Degenhardt--- Phobos PR 6268 was included in LDC 1.10.0-beta1. For this release the standard benchmark I used for the TSV Utilities improved as follows: LDC 1.7.0 (before regression): 8.37 seconds LDC 1.8.0 (after regression): 10.01 seconds LDC 1.9.0 (first fixes): 9.44 seconds LDC 1.10.0-beta1 (Phobos PR 6268): 5.85 seconds First fixes: Phobos PR 5981, DMD PR 7599 The benchmark test used reads a TSV file line-by-line and checks individual fields for regex matches. A significant amount of processing time is IO, so the percentage gain on the regex portion is higher than the overall gain. The overall gain from LDC 1.7.0 is 30%. Test was run on MacOS, MacMini with 16GB RAM, SSD drives. The file used was 2.7GB, 14 million lines. Test info can be found here: https://github.com/eBay/tsv-utils-dlang/blob/master/docs/ComparativeBenchmarks2018.md Great result! --
[Issue 18833] [REG 2.073] DMD in some cases forgets to generate wrapping TypeInfo for modifiers on classes
https://issues.dlang.org/show_bug.cgi?id=18833 --- Comment #2 from Steven Schveighoffer--- I assumed since I reduced this from issue 17968 that it has the same regression point (i.e. 2.073 is when it regressed). I just now tested locally and indeed, 2.073.0 shows the failure, while 2.072.2 does not. --
[Issue 18114] [Reg 2.078] regex performance regression
https://issues.dlang.org/show_bug.cgi?id=18114 --- Comment #9 from Jon Degenhardt--- The final performance fix was included in LDC 1.10.0-beta1. For this release the standard benchmark I used for the TSV Utilities improved as follows: LDC 1.7.0 (before regression): 8.37 seconds LDC 1.8.0 (after regression): 10.01 seconds LDC 1.9.0 (first fixes):9.44 seconds LDC 1.10.0-beta1 (second fix): 5.85 seconds First fixes: Phobos PR 5981, DMD PR 7599 Second fix: Phobos PR 6268 The benchmark test used reads a TSV file line-by-line and checks individual fields for regex matches. A significant amount of processing time is IO, so the percentage gain on the regex portion is higher than the overall gain. The overall gain from LDC 1.7.0 is 30%. Test was run on MacOS, MacMini with 16GB RAM, SSD drives. The file used was 2.7GB, 14 million lines. Test info can be found here: https://github.com/eBay/tsv-utils-dlang/blob/master/docs/ComparativeBenchmarks2018.md Great result! --
[Issue 18712] [Reg 2.072] bogus "switch skips declaration" error with case in mixin
https://issues.dlang.org/show_bug.cgi?id=18712 Walter Brightchanged: What|Removed |Added CC||bugzi...@digitalmars.com --- Comment #3 from Walter Bright --- If mixin("case 0:"); is replaced with: { case 0: } it also fails in the same way. --
[Issue 16527] extern( C++ ) Win64 build - return struct by value is broken
https://issues.dlang.org/show_bug.cgi?id=16527 Ethan Watsonchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WORKSFORME --- Comment #3 from Ethan Watson --- Looks like this issue was fixed somewhere along the line. Example code works just fine on run.dlang.org, and the interop code I was working on for C# that was returning structs was also working just fine on DMD 2.078. No idea when exactly this would have been fixed, but it certainly Works For Me! now. --
[Issue 18606] [REG2.072] "cannot append type const(T) to type T[]" in .dup
https://issues.dlang.org/show_bug.cgi?id=18606 --- Comment #1 from Walter Bright--- (In reply to Vladimir Panteleev from comment #0) > Introduced in https://github.com/dlang/dmd/pull/5500 This is why I don't like 700 line PRs spread across 18 files :-( --
[Issue 1412] stringof shouldn't be shadowed by member func
https://issues.dlang.org/show_bug.cgi?id=1412 Nick Treleavenchanged: What|Removed |Added Status|REOPENED|RESOLVED CC||n...@geany.org Resolution|--- |DUPLICATE --- Comment #6 from Nick Treleaven --- *** This issue has been marked as a duplicate of issue 7066 *** --
[Issue 7066] You can redefine .init and .stringof without error
https://issues.dlang.org/show_bug.cgi?id=7066 Nick Treleavenchanged: What|Removed |Added CC||dav...@126.com --- Comment #12 from Nick Treleaven --- *** Issue 1412 has been marked as a duplicate of this issue. *** --
[Issue 18473] [Reg 2.078.1] std.math.approxEqual no longer accepts nested ranges
https://issues.dlang.org/show_bug.cgi?id=18473 Walter Brightchanged: What|Removed |Added Status|NEW |RESOLVED CC||bugzi...@digitalmars.com Resolution|--- |FIXED --- Comment #1 from Walter Bright --- Fixed by https://github.com/dlang/phobos/pull/6213 --
[Issue 18833] [REG 2.073] DMD in some cases forgets to generate wrapping TypeInfo for modifiers on classes
https://issues.dlang.org/show_bug.cgi?id=18833 Walter Brightchanged: What|Removed |Added CC||bugzi...@digitalmars.com --- Comment #1 from Walter Bright --- Since this is marked as a regression, when did it work? --
[Issue 14170] `this` compiles in a static context
https://issues.dlang.org/show_bug.cgi?id=14170 Simen Kjaeraaschanged: What|Removed |Added CC||simen.kja...@gmail.com --- Comment #1 from Simen Kjaeraas --- (1) is a case of DMD ignoring a redundant keyword - 'static' has no effect there, so it's just ignored. It's been mentioned that this is due to static blocks in aggregates, but I'm unsure of the exact details: struct S { static { // or just static: // lots of declarations alias value this; } } (3) is explicitly mentioned in https://dlang.org/spec/declaration.html#typeof: Special cases: typeof(this) will generate the type of what this would be in a non-static member function, even if not in a member function. (2) and (4) are bug 6579. Possibly a bit more than that, since they don't have an actual instance to work with, but that's the root. --
[Issue 18821] DMD segfault 2.080
https://issues.dlang.org/show_bug.cgi?id=18821 Walter Brightchanged: What|Removed |Added CC||bugzi...@digitalmars.com --- Comment #1 from Walter Bright --- Can you produce a smaller test case? Or run it under the debugger to find out where in DMD it is faulting? --
[Issue 2698] Syntax to parse an identifier from a string, instead of mixin()
https://issues.dlang.org/show_bug.cgi?id=2698 Nick Treleavenchanged: What|Removed |Added Summary|Parameterised identifier|Syntax to parse an ||identifier from a string, ||instead of mixin() --
[Issue 2698] Parameterised identifier
https://issues.dlang.org/show_bug.cgi?id=2698 Nick Treleavenchanged: What|Removed |Added CC||n...@geany.org --- Comment #3 from Nick Treleaven --- (In reply to Daniel Keep from comment #0) > int __ident(name)() { return __ident("_"~name~"storage"); } Wow, this was an insightful idea from 2009! It has recently been re-discovered in 2015: https://github.com/dlang/DIPs/blob/master/DIPs/accepted/DIP1010.md#mixin-identifiers I prefer the __identifier(ident) syntax than mixin(ident), it's less noisy as: 1. it doesn't get highlighted as a keyword. 2. it's clearer what kind of token is being introduced. 3. it doesn't refine the idea of mixin to more than just expressions/statements (i.e. code, not an identifier). --
[Issue 14064] Error message about @ attributes incomplete.
https://issues.dlang.org/show_bug.cgi?id=14064 Nick Treleavenchanged: What|Removed |Added Keywords||trivial CC||n...@geany.org --
[Issue 15501] Missing parens for template argument in error message: Error: no property 'nsecs' for type 'MonoTimeImpl!cast(ClockType)0'
https://issues.dlang.org/show_bug.cgi?id=15501 Nick Treleavenchanged: What|Removed |Added Keywords||trivial CC||n...@geany.org --
[Issue 14854] @disable this inconsistent between structs and classes
https://issues.dlang.org/show_bug.cgi?id=14854 Nick Treleavenchanged: What|Removed |Added Keywords||trivial CC||n...@geany.org --
[Issue 12228] Identifiers 'this' and 'super' should not be allowed as base classes
https://issues.dlang.org/show_bug.cgi?id=12228 Nick Treleavenchanged: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=14170 --
[Issue 14170] `this` compiles in a static context
https://issues.dlang.org/show_bug.cgi?id=14170 Nick Treleavenchanged: What|Removed |Added CC||n...@geany.org See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=12228 --
[Issue 8162] [TDPL] -property fails to give an error when a property function is called with parens
https://issues.dlang.org/show_bug.cgi?id=8162 --- Comment #7 from Nick Treleaven--- *** Issue 7307 has been marked as a duplicate of this issue. *** --
[Issue 7307] Not fully enforced properties syntax
https://issues.dlang.org/show_bug.cgi?id=7307 Nick Treleavenchanged: What|Removed |Added Status|NEW |RESOLVED CC||n...@geany.org Resolution|--- |DUPLICATE --- Comment #2 from Nick Treleaven --- *** This issue has been marked as a duplicate of issue 8162 *** --
[Issue 18857] New: [std.experimental.logger] use NullLogger as the default
https://issues.dlang.org/show_bug.cgi?id=18857 Issue ID: 18857 Summary: [std.experimental.logger] use NullLogger as the default Product: D Version: D2 Hardware: x86 OS: Windows Status: NEW Severity: enhancement Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: singingb...@hotmail.com use NullLogger as the default instead of outputting to stderr --
[Issue 8161] -property should give an error for invalid property functions
https://issues.dlang.org/show_bug.cgi?id=8161 Nick Treleavenchanged: What|Removed |Added CC||n...@geany.org --- Comment #5 from Nick Treleaven --- > s.prop = AliasSeq!(1, 2); > I agree that it should be disallowed Yes, because otherwise the restriction to a maximum of 2 arguments doesn't make sense. --
[Issue 7066] You can redefine .init and .stringof without error
https://issues.dlang.org/show_bug.cgi?id=7066 Nick Treleavenchanged: What|Removed |Added CC||n...@geany.org --- Comment #11 from Nick Treleaven --- struct S { string stringof; } // Issue 14237 class MyClass { void init() {}; } `init` and `stringof` should be required to be `static`, as they are expected to work without an instance. They should probably not be allowed to be `void` functions either. --
[Issue 14237] Compiler should reject attempts to (re)define .init
https://issues.dlang.org/show_bug.cgi?id=14237 Nick Treleavenchanged: What|Removed |Added Status|NEW |RESOLVED CC||n...@geany.org Resolution|--- |DUPLICATE --- Comment #3 from Nick Treleaven --- *** This issue has been marked as a duplicate of issue 7066 *** --
[Issue 13943] Grammar does not list 'super' and 'this' as types
https://issues.dlang.org/show_bug.cgi?id=13943 Mike Franklinchanged: What|Removed |Added Keywords||pull CC||slavo5...@yahoo.com --- Comment #2 from Mike Franklin --- PR: https://github.com/dlang/dmd/pull/8242 --
[Issue 7066] You can redefine .init and .stringof without error
https://issues.dlang.org/show_bug.cgi?id=7066 Nick Treleavenchanged: What|Removed |Added CC||heartcollector...@gmail.com --- Comment #10 from Nick Treleaven --- *** Issue 14237 has been marked as a duplicate of this issue. *** --
[Issue 12228] Identifiers 'this' and 'super' should not be allowed as base classes
https://issues.dlang.org/show_bug.cgi?id=12228 Nick Treleavenchanged: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=13943 --
[Issue 13943] Grammar does not list 'super' and 'this' as types
https://issues.dlang.org/show_bug.cgi?id=13943 Nick Treleavenchanged: What|Removed |Added CC||n...@geany.org See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=12228 --- Comment #1 from Nick Treleaven --- As Issue 9597 has been fixed, it looks like these keywords will no longer be accepted as types - see the recent pull for Issue 12228. --
[Issue 12228] Identifiers 'this' and 'super' should not be allowed as base classes
https://issues.dlang.org/show_bug.cgi?id=12228 Nick Treleavenchanged: What|Removed |Added CC||n...@geany.org --- Comment #10 from Nick Treleaven --- It's great that `this` doesn't work as a type in a parameter list now Issue 18228 is fixed, but `super` should probably be disallowed too: class A { void foo(super i) {} } --
[Issue 6454] @property doesn't need return type
https://issues.dlang.org/show_bug.cgi?id=6454 Nick Treleavenchanged: What|Removed |Added Status|NEW |RESOLVED CC||n...@geany.org Resolution|--- |INVALID --- Comment #4 from Nick Treleaven --- The spec has been updated to list `Property` under `StorageClass`: https://dlang.org/spec/declaration.html#StorageClass --
[Issue 18853] std.allocator: AllocatorList fails to allocate after a deallocation
https://issues.dlang.org/show_bug.cgi?id=18853 alex.jercai...@gmail.com changed: What|Removed |Added CC||alex.jercai...@gmail.com Assignee|edi33...@gmail.com |alex.jercai...@gmail.com --
[Issue 15869] RVO can overwrite argument
https://issues.dlang.org/show_bug.cgi?id=15869 --- Comment #13 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/0ba1f25c99bfd6e02b64b3b283540ed74e97fca5 fix Issue 15869 - RVO can overwrite argument https://github.com/dlang/dmd/commit/68eb9d341ccd0b7872ce719df07da268398dc3aa Merge pull request #8200 from WalterBright/fix15869 fix Issue 15869 - RVO can overwrite argument merged-on-behalf-of: Razvan Nitu--
[Issue 15869] RVO can overwrite argument
https://issues.dlang.org/show_bug.cgi?id=15869 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 7066] You can redefine .init and .stringof without error
https://issues.dlang.org/show_bug.cgi?id=7066 Vijay Nayarchanged: What|Removed |Added CC||mad...@gmail.com --- Comment #9 from Vijay Nayar --- I encountered this problem as well while porting a C++ library to D. It took a while to diagnose, but I eventually found out that the mere existence of a function named "init" caused the RefAppender I used in a totally unrelated function to break. Example program: ``` import std.array; struct S1 { // The mere presence of this method causes the error, deleting it fixes the error. void init(string p1, int p2, int p3) { } } struct S2 { S1[] a; RefAppender!(int[]) getAppender() { return appender(); } } void main() { } ``` The actual error produced is obvious only because the arguments I put on init in this example, but normally it's pretty bizarre: ``` /dlang/dmd/linux/bin64/../../src/phobos/std/array.d(2907): Error: cannot have array of `void(string, int, int)` /dlang/dmd/linux/bin64/../../src/phobos/std/array.d(2976): Error: cannot have array of `inout void(string, int, int)` /dlang/dmd/linux/bin64/../../src/phobos/std/array.d(3369): Error: template instance `std.array.Appender!(S1[])` error instantiating /dlang/dmd/linux/bin64/../../src/phobos/std/array.d(3879):instantiated from here: `RefAppender!(S1[])` onlineapp.d(12):instantiated from here: `appender!(S1[]*, S1)` /dlang/dmd/linux/bin64/../../src/phobos/std/array.d(3429): Error: cannot have array of `inout void(string, int, int)` ``` --