[Issue 18115] [REG2.078-b1] case where && is not shortcut anymore in CTFE

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18115

Basile-z  changed:

   What|Removed |Added

   See Also||https://issues.dlang.org/sh
   ||ow_bug.cgi?id=22646

--


[Issue 22646] [REG2.099] CT bounds checking ignores short circuit evaluation

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22646

Basile-z  changed:

   What|Removed |Added

 CC||b2.t...@gmx.com
   See Also||https://issues.dlang.org/sh
   ||ow_bug.cgi?id=18115

--- Comment #2 from Basile-z  ---
you might be interested by the explanations in the comments of
https://issues.dlang.org/show_bug.cgi?id=18115. This was identical issue but
with &&.

--


[Issue 22648] [std.variant.Variant] Incorrectly written unittests

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22648

Dlang Bot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from Dlang Bot  ---
dlang/phobos pull request #8351 "Fix Issue 22648 - [std.variant.Variant]
Incorrectly written unittests" was merged into master:

- 597d8e7b921833cdf041e0eaefc2806a0ff7f960 by João Lourenço:
  std.variant: Fix incorrectly written unittets

  Fix Issue 22648 - [std.variant.Variant] Incorrectly written unittests

  Signed-off-by: João Lourenço 

https://github.com/dlang/phobos/pull/8351

--


[Issue 22648] [std.variant.Variant] Incorrectly written unittests

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22648

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #1 from Dlang Bot  ---
@iK4tsu created dlang/phobos pull request #8351 "Fix Issue 22648 -
[std.variant.Variant] Incorrectly written unittests" fixing this issue:

- std.variant: Fix incorrectly written unittets

  Fix Issue 22648 - [std.variant.Variant] Incorrectly written unittests

  Signed-off-by: João Lourenço 

https://github.com/dlang/phobos/pull/8351

--


[Issue 22648] [std.variant.Variant] Incorrectly written unittests

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22648

João Lourenço  changed:

   What|Removed |Added

 CC||jlourenco5...@gmail.com

--


[Issue 22648] New: [std.variant.Variant] Incorrectly written unittests

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22648

  Issue ID: 22648
   Summary: [std.variant.Variant] Incorrectly written unittests
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: trivial
  Priority: P1
 Component: phobos
  Assignee: nob...@puremagic.com
  Reporter: jlourenco5...@gmail.com

The unittests written from the line 2055 to 2058 inclusive are wrong. Their
logic is correct but they're passing by the wrong reasons. Currently, they fail
because of the compile-time error "Error: has no effect". The result of the
comparison is discarded and that results in an error, failing the
'__traits(compiles, ...)' tests. This is unittest in question:

```
@system unittest
{
// check comparisons incompatible with AllowedTypes
Algebraic!int v = 2;

assert(v == 2);
assert(v < 3);
static assert(!__traits(compiles, {v == long.max;}));
static assert(!__traits(compiles, {v == null;}));
static assert(!__traits(compiles, {v < long.max;}));
static assert(!__traits(compiles, {v > null;}));
}
```

To correctly write the test, the value should be explicitly discarded by using
a `cast(void)` in the whole expression, or by returning the result either by
adding a `return` or transforming the lambda in an inline lambda `() =>`;

--


[Issue 22647] [std.variant.Variant] Cannot compare types compliant with null comparison with 'null'

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22647

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #1 from Dlang Bot  ---
@iK4tsu created dlang/phobos pull request #8350 "Fix Issue 22647 -
[std.variant.Variant] Cannot compare types compliant with null comparison with
'null'" fixing this issue:

- std.variant: Add Variant unittests for 'null' comparisons

  Fix Issue #22647 - [std.variant.Variant] Cannot compare types compliant with
null comparison with 'null'

  Signed-off-by: João Lourenço 

https://github.com/dlang/phobos/pull/8350

--


[Issue 22647] [std.variant.Variant] Cannot compare types compliant with null comparison with 'null'

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22647

João Lourenço  changed:

   What|Removed |Added

   Severity|enhancement |minor

--


[Issue 22647] New: [std.variant.Variant] Cannot compare types compliant with null comparison with 'null'

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22647

  Issue ID: 22647
   Summary: [std.variant.Variant] Cannot compare types compliant
with null comparison with 'null'
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: phobos
  Assignee: nob...@puremagic.com
  Reporter: jlourenco5...@gmail.com

std.variant.Variant should behave the same as the core language. Some types are
comparable with null (arrays and pointers). If the Variant's current type is
one of those, then comparing with null should be allowed.

```
import std;

void main()
{
int* ptr;
Variant a = ptr; // is of type int*

assert(ptr == null); // true
assert(a == null); // false
}
```

--


[Issue 22647] [std.variant.Variant] Cannot compare types compliant with null comparison with 'null'

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22647

João Lourenço  changed:

   What|Removed |Added

 CC||jlourenco5...@gmail.com

--


[Issue 22646] [REG2.099] CT bounds checking ignores short circuit evaluation

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22646

--- Comment #1 from Vladimir Panteleev  ---
Worth mentioning that this code also did not work in 2.078.0 through 2.080.0.

Broken in:

https://github.com/dlang/dmd/pull/7225

Fixed in:

https://github.com/dlang/dmd/pull/8261

(and again broken in https://github.com/dlang/dmd/pull/13169)

--


[Issue 22646] New: [REG2.099] CT bounds checking ignores short circuit evaluation

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22646

  Issue ID: 22646
   Summary: [REG2.099] CT bounds checking ignores short circuit
evaluation
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Keywords: rejects-valid
  Severity: regression
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: dlang-bugzi...@thecybershadow.net

/ test.d /
static template Bug(string name)
{
enum bool ok = name.length < 3 || name[0..3] != "pad";
}

pragma(msg, Bug!"x".ok);
pragma(msg, Bug!"foo".ok);
pragma(msg, Bug!"pad".ok);
pragma(msg, Bug!"pad123".ok);
//

This now fails with:

test.d(3): Error: in slice `"x"[0 .. 3]`, upper bound is greater than array
length `1`
test.d(6): Error: template instance `test.Bug!"x"` error instantiating
test.d(6):while evaluating `pragma(msg, Bug!"x".ok)`

Introduced in https://github.com/dlang/dmd/pull/13169

--


[Issue 22645] Linking fails with fatal error LNK1318: Unexpected PDB-error: OK (0) ""

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22645

--- Comment #4 from simon.vanber...@yahoo.de ---
If I use the link command that -v gives me, the linker fails because it can't
find phobos64.lib. If I fix the arguments by giving the full path, at first it
linked successfully, repeatedly. I then ran dmd once. It failed. I then ran
link.exe again. It now also failed, repeatedly.

--


[Issue 21457] std.functional.partial ignores function overloads

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=21457

Dlang Bot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Dlang Bot  ---
dlang/phobos pull request #8347 "Fix Issue 21457 - std.functional.partial
ignores function overloads" was merged into master:

- 437b07980e55fa9945f7eabc3c4991ece6cc9cc8 by wolframw:
  Fix Issue 21457 - std.functional.partial ignores function overloads

https://github.com/dlang/phobos/pull/8347

--


[Issue 22645] Linking fails with fatal error LNK1318: Unexpected PDB-error: OK (0) ""

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22645

--- Comment #3 from moonlightsenti...@disroot.org ---
(In reply to simon.vanbernem from comment #2)
> If you think there is value to it I can continue to try to find a minimal
> example or send you the projects, but I personally hoped that inspecting the
> way PDB errors are handled might already yield something.

A minimal example would definitly help. Note that the error messages are issued
by LINK.exe (provided by VS), not dmd itself.

Does LINK.exe fail reliably when you rerun the linker manually? 
(Use `-v` to get the command line issued by dmd)

--


[Issue 22645] Linking fails with fatal error LNK1318: Unexpected PDB-error: OK (0) ""

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22645

--- Comment #2 from simon.vanber...@yahoo.de ---
I can try to create a minimal example, but tbh I don't have a lot of hope of
this reproducing:

Just using the same flags on a simple program doesn't repro. Having different
objs in the error on each run seems like there is some parallelism involved,
and the fact that it worked (sometimes) after a version upgrade (and now also 2
times after using ldc for a while 2) sounds like the compiler is caching bad
state that causes the issue. So even if I sent you the entire project, what are
the chances of having an issue with parallelism and caching behaviour repro for
other people? It doesn't even repro for me for the same code all the time.

I hoped the error could be diagnosed somewhat easily without a repro, because
the PDB-Error here is 0 and the error message is just empty. That sounds to me
like some part of the linker uses something other than this error code to
diagnose an error, but that something is not enough information to determine
there is an error, so the linker exits even though there is no PDB-error.

If you think there is value to it I can continue to try to find a minimal
example or send you the projects, but I personally hoped that inspecting the
way PDB errors are handled might already yield something.

--


[Issue 22645] Linking fails with fatal error LNK1318: Unexpected PDB-error: OK (0) ""

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22645

moonlightsenti...@disroot.org changed:

   What|Removed |Added

Summary|Compilation fails with  |Linking fails with fatal
   |fatal error LNK1318:|error LNK1318: Unexpected
   |Unexpected PDB-error: OK|PDB-error: OK (0) ""
   |(0) ""  |

--


[Issue 22645] Compilation fails with fatal error LNK1318: Unexpected PDB-error: OK (0) ""

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22645

moonlightsenti...@disroot.org changed:

   What|Removed |Added

   Keywords||backend
 CC||moonlightsentinel@disroot.o
   ||rg

--- Comment #1 from moonlightsenti...@disroot.org ---
Could you provide the source files or ideally a reduced example? It'll be hard
to diagnose the problem solely based on the error message.

--


[Issue 22645] New: Compilation fails with fatal error LNK1318: Unexpected PDB-error: OK (0) ""

2022-01-03 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22645

  Issue ID: 22645
   Summary: Compilation fails with fatal error LNK1318: Unexpected
PDB-error: OK (0) ""
   Product: D
   Version: D2
  Hardware: x86_64
OS: Windows
Status: NEW
  Severity: blocker
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: simon.vanber...@yahoo.de

When compiling my project using DMD v2.098.0 or DMD v2.098.1 on Windows 10
64-bit, this error just appeared:

: fatal error LNK1318: Unerwarteter PDB-Fehler: OK (0) "".
Error: linker exited with status 1318

"Unerwarteter PDB-Fehler" means "Unexpected PDB-error". The next 3 attempts to
compile yielded the following errors:

libucrtd.lib(lseek.obj) : fatal error LNK1318: Unerwarteter PDB-Fehler: OK (0)
"".
Error: linker exited with status 1318

libucrtd.lib(initcon.obj) : fatal error LNK1318: Unerwarteter PDB-Fehler: OK
(0) "".
Error: linker exited with status 1318

libucrtd.lib(round.obj) : fatal error LNK1318: Unerwarteter PDB-Fehler: OK (0)
"".
Error: linker exited with status 1318

The obj file reported seems to pretty much be picked at random. In the first
error message there simply was no lib/obj mentioned. This issue started
appearing today, without installing any updates (to any program at all). The PC
wasn't even shut down since yesterday, when everything worked fine. Restarting
doesn't help, removing all obj files and doing a full rebuild also doesn't help
(I have obj files built by MSVC that also get linked). I was on v2.098.0
before, then upgraded in hopes of fixing the issue. The very first compile
after upgrading to v2.098.1 worked, every consecutive compile after that is
broken again.

The command line call to dmd looks like this:

dmd -m64 -I=source -i -w -preview=fieldwise user32.lib kernel32.lib d3d11.lib
d3dcompiler.lib dxguid.lib ole32.lib advapi32.lib Bcrypt.lib Iphlpapi.lib
Ws2_32.lib dsound.lib -g -debug -check=assert=on -check=bounds=on
-check=switch=on -checkaction=C -mscrtlib=LIBCMTD source/main.d
build/platform.obj build/imgui.obj build/box2d.obj build/nfd.obj
-of=build/spaced.exe

I have switched to ldc in the meantime to be able to compile.

--