[Issue 24125] ImportC: vector type initializer not understood

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24125

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #5 from Dlang Bot  ---
@WalterBright created dlang/dmd pull request #15838 "Fix Issue 24125 - ImportC:
vector type initializer not understood" fixing this issue:

- fix Issue 24125 - ImportC: vector type initializer not understood

- fix Issue 24125 - ImportC: vector type initializer not understood

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

--


[Issue 24132] ImportC: Add support for wchar_t, char16_t, char32_t

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24132

Adam Wilson  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WONTFIX

--- Comment #6 from Adam Wilson  ---
I'm going to close this as WON'T FIX. 

I'll try to attack my problem with a post-processor script.

--


[Issue 24253] New: fn "is not accessible from module" with overload reflection regressed in v2.105

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24253

  Issue ID: 24253
   Summary: fn "is not accessible from module" with overload
reflection regressed in v2.105
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: regression
  Priority: P5
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: destructiona...@gmail.com

Must have two modules so `private` applies:

---
// bug.d
import bug2;

private void fooImpl() { }

void main() {
mvd!fooImpl();
}
---

And:

---
// bug2.d
void mvd(alias fn)() {
auto this_ = null;
// we could call `fn` directly here since we got an alias
ov: foreach(overload; __traits(getOverloads, __traits(parent, fn),
__traits(identifier, fn))) {
__traits(child, this_, overload)(); // but cannot use through
traits
}
}
---

You actually don't need the overload loop here, you could remove that to
minimize further

```
void mvd(alias fn)() {
auto this_ = null;
fn(); // this allowed
//__traits(child, this_, fn)(); // this is not
}
```

But I wanted to show the loop to give you an idea of the real world use case
this is affecting; it is a multiple virtual dispatch implementation.


Interestingly, in dmd 2.098:

```
fn; // bug2.d(3): Deprecation: Function `bug.fooImpl` of type `void()` is not
accessible from module `bug2`

fn(); // perfectly OK; it let me call it through the alias, but not reference
it
```

Which is a bit bizarre. I suspect the fix was intended to treat these two cases
the same, but it awkward in any case.


Anyway, the error when calling the function was introduced by this commit:

https://github.com/dlang/dmd/commit/421ebfe8b507c7a415f64523bedf6ff2dd66


Before that, it worked without issue, after that, it deprecated, then a future
commit (36043ded818506936790be55f9353d6132527541) turned the deprecation into
an error.

The first release to fail with this was
https://dlang.org/changelog/2.105.0.html

--


[Issue 24203] Params section in ddoc comments causes warnings with unnamed parameters

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24203

--- Comment #3 from elpenguin...@gmail.com ---
(In reply to Nick Treleaven from comment #2)
> I think this warning is correct - why have a 'Params' section with no
> content?

There is no warning for an empty Params section. This warning is produced for
```
/// Params:
/// a = b
void foo(int a, int) {}
```
But it is not produced for
```
/// Params:
void foo() {}
```
The example was just the simplest reproduction I could come up with.

--


[Issue 24125] ImportC: vector type initializer not understood

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24125

--- Comment #4 from Steven Schveighoffer  ---
Hm.. nope, that's the exact code. So that does still need addressing.

--


[Issue 24125] ImportC: vector type initializer not understood

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24125

--- Comment #3 from Steven Schveighoffer  ---
(In reply to Walter Bright from comment #2)
> Looks like there are two problems. The first is:
> 
> typedef float __m128 __attribute__ ((__vector_size__ (16),
> __may_alias__));
> 
> This doesn't recognize __m128 as a vector. But this works:
> 
> typedef float __attribute__ ((__vector_size__ (16), __may_alias__))
> __m128;

I may have copied the header code wrong... I'll double check. That does look
more reasonable.

--


[Issue 24127] ImportC - no way to organize files

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24127

--- Comment #2 from Steven Schveighoffer  ---
(In reply to Walter Bright from comment #1)
> This boils down to the fact that C files do not have a means to name the
> module. I think we're kinda stuck here.

ImportC added import statements to C files, why not module statements?

--


[Issue 24203] Params section in ddoc comments causes warnings with unnamed parameters

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24203

Nick Treleaven  changed:

   What|Removed |Added

 CC||n...@geany.org

--- Comment #2 from Nick Treleaven  ---
I think this warning is correct - why have a 'Params' section with no content?

--


[Issue 11111] std.algorithm.canFind should support Needles...

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=1

Dlang Bot  changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Dlang Bot  ---
dlang/phobos pull request #8845 "Fix Issue 1 - std.algorithm.canFind should
support Needles..." was merged into master:

- a2c2f79dfae38492e2269bcb4e34a6c916c22091 by Nick Treleaven:
  Fix Issue 1 - std.algorithm.canFind should support Needles...

  The requirement that each needle must be a range is arbitrary, so remove
  it.
  Note: This overload of `canFind` calls `find(haystack, needles)` which
  calls `startsWith`, which accepts mixed element and range needles.

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

--


[Issue 14387] Disallow string literals as assert conditions

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14387

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #4 from Dlang Bot  ---
@ntrel created dlang/dmd pull request #15837 "Deprecate boolean evaluation of
array/string literals" fixing this issue:

- Deprecate boolean evaluation of array/string literals

  Fix Issue 14387 - Disallow string literals as assert conditions.

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

--


[Issue 4733] Possible bugs caused by dynamic arrays in boolean evaluation context

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=4733

Nick Treleaven  changed:

   What|Removed |Added

 CC||n...@geany.org

--- Comment #38 from Nick Treleaven  ---
For the record, this post described why the revert happened:
https://forum.dlang.org/post/mr540j$1533$1...@digitalmars.com

"The main reason why it caused issues is this nice idiom:

if(auto arr = someFunction())
{
   // use arr
}

This would HAVE to be split out to two statements, and the arr variable would
be scoped outside of the if statement."

I attempted to make it obsolete:
https://github.com/dlang/dmd/pull/15413

But that was rejected. I still think it would be good to do for editions. If
that is still a no-go then it seems we need something like:

if ((auto arr = expr).ptr)

However, would `arr` then be declared in the `else` branch? If so that is still
not a replacement for the feature.

Another option would be to allow `if (auto arr = expr)` but allow no other uses
of an array as a boolean.

--


[Issue 24230] Infinite loop in core.cpuid.getCpuInfo0B in Solaris/x86 kernel zone

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24230

--- Comment #3 from Dlang Bot  ---
dlang/dmd pull request #15829 "merge stable" was merged into master:

- 505e475b373a40d81635ee1df16cc1818448bb20 by Iain Buclaw:
  fix Issue 24230 - Infinite loop in core.cpuid.getCpuInfo0B in Solaris/x86
kernel zone

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

--


[Issue 24072] cast(__vector) array literal incorrectly triggers GC error

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24072

--- Comment #3 from Dlang Bot  ---
dlang/dmd pull request #15829 "merge stable" was merged into master:

- 3d552df287d0b836861f760701b16569311e4dd7 by Dennis Korpel:
  Fix 24072 - cast(__vector) array literal incorrectly triggers GC error

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

--


[Issue 24209] static aa initialization of static function variable ICE

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24209

--- Comment #4 from Dlang Bot  ---
dlang/dmd pull request #15829 "merge stable" was merged into master:

- 7e052454e32312723324bcb18ebd6ad8181da2f5 by Dennis:
  Fix 24209 - static aa initialization of static function variable ICE (#15774)

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

--


[Issue 24184] [REG 2.103] Segmentation fault accessing variable with align(N) > platform stack alignment

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24184

--- Comment #6 from Dlang Bot  ---
dlang/dmd pull request #15829 "merge stable" was merged into master:

- 891cf59b1fd4118cb8c0c02258a9a54e6bb11529 by Walter Bright:
  fix Issue 24184 - [REG 2.103] Segmentation fault accessing variable with
align(N) > platform stack alignment (#15820)

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

--


[Issue 24159] BetterC: appending to dynamic arrays no longer errors at compile time

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24159

--- Comment #3 from Dlang Bot  ---
dlang/dmd pull request #15829 "merge stable" was merged into master:

- b9f8e7cf24273f2283a39f703b2367c9cb09a0dc by Teodor Dutu:
  Fix Issue 24159: Store lowering of `CatAssignExp` in a separate field
(#15791)

  This preserves the `CatAssignExp` in the AST until the glue layer where
  an error is printed in case this expression is used with `-betterC`.
  This is required to happen in the glue layer as the semantic analysis
  doesn't correctly distinguish when code needs to be generated.

  Signed-off-by: Teodor Dutu 

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

--


[Issue 24252] New: ci: Error: error writing file 'compilable\testcstuff3_0.obj'

2023-11-20 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=24252

  Issue ID: 24252
   Summary: ci: Error: error writing file
'compilable\testcstuff3_0.obj'
   Product: D
   Version: D2
  Hardware: All
OS: Windows
Status: NEW
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: ibuc...@gdcproject.org

It looks like CI has a race condition between two files of the same name.

---
 ... compilable\testcstuff3.i   ()
 ... compilable\testcstuff3.d   ()
==
Test 'compilable\testcstuff3.d' failed. The logged output:
D:\a\1\s\generated\windows\RelWithAsserts\Win32\dmd.exe -conf= -m32mscoff
-Icompilable   -odD:\a\1\s\compiler\test\test_results\compilable
-ofD:\a\1\s\compiler\test\test_results\compilable\testcstuff3_0.obj  -c
compilable\testcstuff3.d 


Error: error writing file
'D:\a\1\s\compiler\test\test_results\compilable\testcstuff3_0.obj'





==
Test 'compilable\testcstuff3.d' failed: Expected rc == 0, but exited with rc ==
1

--