[Issue 21715] static assert() should accept and print multiple arguments just like pragma(msg)

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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)

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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)

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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

2021-03-14 Thread d-bugmail--- via Digitalmars-d-bugs
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? 

--