[Issue 21715] static assert() should accept and print multiple arguments just like pragma(msg)
https://issues.dlang.org/show_bug.cgi?id=21715 Nicholas Wilson changed: What|Removed |Added CC||iamthewilsona...@hotmail.co ||m --- Comment #1 from Nicholas Wilson --- See, https://github.com/dlang/dmd/pull/11757 which is almost ready to go, but I don't have the time at the moment to finish it off --
[Issue 21716] New: std.regex performance regression (additional GC allocation)
https://issues.dlang.org/show_bug.cgi?id=21716 Issue ID: 21716 Summary: std.regex performance regression (additional GC allocation) Product: D Version: D2 Hardware: x86 OS: Mac OS X Status: NEW Severity: enhancement Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: jrdemail2000-dl...@yahoo.com I have observed a regex related performance regression my tsv-utils package when switching from LDC 1.24.0 to LDC 1.25.0. This corresponds to a performance regression in DMD 2.095. Mostly likely cause is Phobos PR #7678: https://github.com/dlang/phobos/pull/7678. A possible cause was identified by Petar Kirov in the issue comments (https://github.com/dlang/phobos/pull/7678#issuecomment-787814712): > At first glance, the suspect could be the two new delegates > defaultFactoryImpl and matchOnceImpl. They may or may not > cause GC allocations. If they are replaced with static nested > functions, they would be guaranteed not to cause GC allocations. Checking GC stats using "--DRT-gcopt=profile:1" indicates increased GC in the program: With DMD 2.094.2: > Number of collections: 0 > Total GC prep time: 0 milliseconds > Total mark time: 0 milliseconds > Total sweep time: 0 milliseconds > Max Pause Time: 0 milliseconds > Grand total GC time: 0 milliseconds > GC summary:5 MB,0 GC0 ms, Pauses0 ms <0 ms With DMD 2.095.1 > Number of collections: 672 > Total GC prep time: 7 milliseconds > Total mark time: 62 milliseconds > Total sweep time: 7 milliseconds > Max Pause Time: 1 milliseconds > Grand total GC time: 76 milliseconds > GC summary:5 MB, 672 GC 76 ms, Pauses 69 ms <1 ms The regular expression used in the tests is '[RD].*ION[0-2]', run against 14 million lines (one invocation per line). It's one of my standard benchmarks. I am investigating further. --
[Issue 21709] std.conv.emplace not usable in betterC - 2.096
https://issues.dlang.org/show_bug.cgi?id=21709 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from Dlang Bot --- dlang/dmd pull request #12277 "Fix 21709 - Don't generate try-catch in betterC code for dtorfields" was merged into stable: - afebdfa54ec01005da6ec62bc1249917b3b75a76 by MoonlightSentinel: Fix 21709 - Don't generate try-catch in betterC code for dtorfields The code may never throw exceptions in betterC mode, so it cannot abort the ctor with an uncaught exception. https://github.com/dlang/dmd/pull/12277 --
[Issue 21715] New: static assert() should accept and print multiple arguments just like pragma(msg)
https://issues.dlang.org/show_bug.cgi?id=21715 Issue ID: 21715 Summary: static assert() should accept and print multiple arguments just like pragma(msg) Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: bugzi...@digitalmars.com pragma(msg, 1, 2); prints `12`. assert(0, 1, 2); should also print `12`. --
[Issue 21699] Duplicate error for index out of bounds at compile time
https://issues.dlang.org/show_bug.cgi?id=21699 Dlang Bot changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Dlang Bot --- dlang/dmd pull request #12267 "Fix Issue 21699 - Duplicate error for index out of bounds at compile time" was merged into master: - f62e4310378414e6c80bc88c941b0c2bf258fee7 by RazvanN7: Fix Issue 21699 - Issue 21699 - Duplicate error for index out of bounds at compile time https://github.com/dlang/dmd/pull/12267 --
[Issue 21712] [REG 2.096.0] sometimes coverage *.lst files are corrupted
https://issues.dlang.org/show_bug.cgi?id=21712 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #2 from Dlang Bot --- @TungstenHeart created dlang/druntime pull request #3395 "fix issue 21712 - [REG 2.096.0] sometimes coverage *.lst files are corrupted" fixing this issue: - fix issue 21712 - [REG 2.096.0] sometimes coverage *.lst files are corrupted dont use the same buffer to read+split the LST and read+split the D https://github.com/dlang/druntime/pull/3395 --
[Issue 21709] std.conv.emplace not usable in betterC - 2.096
https://issues.dlang.org/show_bug.cgi?id=21709 --- Comment #3 from moonlightsenti...@disroot.org --- (In reply to moonlightsentinel from comment #2) > (using a generated try ... catch EDIT: Only for functions that aren't `nothrow` --
[Issue 21709] std.conv.emplace not usable in betterC - 2.096
https://issues.dlang.org/show_bug.cgi?id=21709 moonlightsenti...@disroot.org changed: What|Removed |Added CC||moonlightsentinel@disroot.o ||rg Hardware|x86_64 |All OS|Linux |All --- Comment #2 from moonlightsenti...@disroot.org --- This regression was introduced by enabling -preview=dtorfields by default[1]. This preview inserts a destructor call into constructors that is executed when they abort with an exception (using a generated try ... catch ...). DMD apparently fails to infer `nothrow` given that `-betterC` prohibits exceptions. [1] https://github.com/dlang/dmd/pull/11656 --
[Issue 21712] [REG 2.096.0] sometimes coverage *.lst files are corrupted
https://issues.dlang.org/show_bug.cgi?id=21712 Basile-z changed: What|Removed |Added Summary|[REG 2.095.1] sometimes |[REG 2.096.0] sometimes |coverage *.lst files are|coverage *.lst files are |corrupted |corrupted --- Comment #1 from Basile-z --- it's finally a 2.096.0 reg.The bug was found 2 says ago, probably that the dockerhub file was the rc or the beta and not previous point release --
[Issue 21714] New: misparse multi statement mixin in 'with' without brackets: all but the first statement are outside the with
https://issues.dlang.org/show_bug.cgi?id=21714 Issue ID: 21714 Summary: misparse multi statement mixin in 'with' without brackets: all but the first statement are outside the with Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: minor Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: default_357-l...@yahoo.de Consider the following code: enum Foo { A, B } Foo a = Foo.A; void main() { with (Foo) { mixin("Foo a = Foo.A; a = Foo.B;"); } assert(a == Foo.A); with (Foo) mixin("Foo a = Foo.A; a = Foo.B;"); assert(a == Foo.A); } The assert fails, because the "a = Foo.B;" mixin statement inside the bracketless with (Foo) gets put "after" the with. In other words, the multi-statement mixin breaks out of its scope. --
[Issue 21711] Concatenating a function pointer with a string should be an error
https://issues.dlang.org/show_bug.cgi?id=21711 ag0aep6g changed: What|Removed |Added CC||ag0ae...@gmail.com --- Comment #1 from ag0aep6g --- The issue seems to be that constant folding ignores the type. Test case without a function pointer: void main() { immutable void* x = cast(void*) 91; string s = x ~ ""; /* accepted; should be rejected */ } --
[Issue 21707] std.base64: Faulty input creates range error instead of Base64Exception
https://issues.dlang.org/show_bug.cgi?id=21707 Berni44 changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED |--- --- Comment #4 from Berni44 --- I had to revert my fix from yesterday, because it introduced a regression. --
[Issue 21707] std.base64: Faulty input creates range error instead of Base64Exception
https://issues.dlang.org/show_bug.cgi?id=21707 --- Comment #3 from Dlang Bot --- dlang/phobos pull request #7861 "Revert "Fix Issue 21707 - std.base64: Faulty input creates range erro…" was merged into master: - 5bfa8d7e055667e3eaf1bbc934331ca3336839ce by berni44: Revert "Fix Issue 21707 - std.base64: Faulty input creates range error instead of Base64Exception" This reverts commit cf41baba2123e1c4680baf06016b8a93bbaf57ce. https://github.com/dlang/phobos/pull/7861 --
[Issue 21713] Cannot write trusted desstructor with @system member dtor
https://issues.dlang.org/show_bug.cgi?id=21713 Tobias Pankrath changed: What|Removed |Added Keywords||safe, spec Severity|enhancement |normal --
[Issue 21713] New: Cannot write trusted desstructor with @system member dtor
https://issues.dlang.org/show_bug.cgi?id=21713 Issue ID: 21713 Summary: Cannot write trusted desstructor with @system member dtor Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: tob...@pankrath.net See here: https://run.dlang.io/is/DLtrxB And here: https://gist.github.com/run-dlang/b8eb31340c90c128a12b31a7c7e18804 --- struct Foo { @system ~this() {} } @safe: struct Bar { Foo f; ~this() @trusted {} } @safe: void main() { Bar b; } --- It should be possible to declare that I indeed trust the transitively called @system dtors. You can circumvent that by putting the field into a union and destruct it yourself. --
[Issue 4071] Missing support to share memory and objects between DLLs and executable
https://issues.dlang.org/show_bug.cgi?id=4071 Imperatorn changed: What|Removed |Added CC||johan_forsberg_86@hotmail.c ||om --- Comment #13 from Imperatorn --- Any chance of this ever being solved? --