[Issue 19946] In betterC filling an array with a non-zero value fails for types of size > 1 due to missing _memset16/_memset32/etc.

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=19946

--- Comment #21 from Walter Bright  ---
More progress: https://github.com/dlang/dmd/pull/14788

--


[Issue 23601] New: [std.format] acceptedSpecs do match baseOfSpec

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23601

  Issue ID: 23601
   Summary: [std.format] acceptedSpecs do match baseOfSpec
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P1
 Component: phobos
  Assignee: nob...@puremagic.com
  Reporter: jlourenco5...@gmail.com

```d
import std;

void main()
{
int i;
"12.34".formattedRead!"%f"(i);
}
```

This code sample compiles incorrectly to then fail at run time. The validation
fails because it validates 'i' as a valid argument for the used spec. Any of
[FfGgAaEe] counts as a valid base for any integral argument (int, bool, char,
...) and when checking acceptedSpecs at run time they do not match.

It seems to me that baseOfSpec is the one in the wrong here, but the real issue
is using the writing format to validate the reading format since 'int' can
format into a 'float' but not the other way around.

Moreover, 'a' is missing from acceptedSpecs, and all the upper case versions of
spec are allowed by the 'write' version but not the 'read' alternative, which
also leads to the run-time error `not supported with formatted read` instead of
a compile-time assertion.

Formatted read should validate the format specs with its own implementation if
it differs this much from the 'write' version.

--


[Issue 19649] Misleading error message for duplicate constraints

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=19649

Dlang Bot  changed:

   What|Removed |Added

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

--- Comment #2 from Dlang Bot  ---
dlang/dmd pull request #14779 "Fix Issue 19649 - Misleading error for duplicate
constraints" was merged into stable:

- 88e7839bd5ade60530be89a2806ef1bbab7faa4c by Nick Treleaven:
  Fix Issue 19649 - Misleading error for duplicate constraints

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

--


[Issue 23600] [std.format.read] formattedRead static asserts with Tuple and compile time format string

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23600

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #1 from Dlang Bot  ---
@iK4tsu updated dlang/phobos pull request #8661 "Fix: [std.format.read]
formattedRead static asserts with Tuple and compile time format string" fixing
this issue:

- fix(format.read): formattedRead incorrectly static asserts with Tuple and
compile-time format string

  This method supports std.typecons.Tuple, however, when passing the
  format string at compile-time, the format validation does not correctly
  account for the std.typecons.Tuple's types and instead validates the
  std.typecons.Tuple itself leading to a static assert.

  This change now adds support for this feature when used with
  compile-time format strings.

  Fix Issue #23600

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

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

--


[Issue 23600] New: [std.format.read] formattedRead static asserts with Tuple and compile time format string

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23600

  Issue ID: 23600
   Summary: [std.format.read] formattedRead static asserts with
Tuple and compile time format string
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P1
 Component: phobos
  Assignee: nob...@puremagic.com
  Reporter: jlourenco5...@gmail.com

```d
import std;

void main()
{
Tuple!(int, float) t;
"1 2.34".formattedRead!"%d %f"(t);
}
```

This code sample static asserts but correctly runs when passing the format
string at run time. This happens because the format check is performed on the
Tuple type instead of its Types.

--


[Issue 18026] Stack overflow in ddmd/dtemplate.d:6241, TemplateInstance::needsCodegen()

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18026

Dlang Bot  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #21 from Dlang Bot  ---
@ibuclaw created dlang/dmd pull request #14787 "fix Issue 18026 - Stack
overflow in dmd/dtemplate.d:6248, TemplateInstance::needsCodegen()" fixing this
issue:

- fix Issue 18026 - Stack overflow in dmd/dtemplate.d:6248,
TemplateInstance::needsCodegen()

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

--


[Issue 10819] Implicit conversion error assigning one SortedRange to another when a function literal has been used

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=10819

RazvanN  changed:

   What|Removed |Added

 CC||razvan.nitu1...@gmail.com
  Component|dmd |phobos

--- Comment #11 from RazvanN  ---
We now have traits(isSame) that can perform a primitive form of lambda function
comparison. This can now be implemented in the opAssign of SortedRange so it's
not a compiler issue anymore. Changing component to phobos.

--


[Issue 10815] Allow access of a symbol in a template instance if instantiator module has access to the symbol

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=10815

RazvanN  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||razvan.nitu1...@gmail.com
 Resolution|--- |WORKSFORME

--- Comment #3 from RazvanN  ---
I cannot reproduce this. It seems that it  has been fixed in git master.

--


[Issue 10810] wrong forward reference error when using return type deduction and a cyclic call flow

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=10810

RazvanN  changed:

   What|Removed |Added

 CC||razvan.nitu1...@gmail.com

--- Comment #11 from RazvanN  ---
I would vote to close this as a WONTFIX. Yeah, this simple case could be fixed
by adding a special case, but as Timon mentioned it's really hard to correctly
implement the general case.

--


[Issue 10794] Unsynchronized access to data of syncronized class

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=10794

RazvanN  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||razvan.nitu1...@gmail.com
 Resolution|--- |WORKSFORME

--- Comment #1 from RazvanN  ---
I cannot reproduce this. I am getting:

test.d(15): Error: function `test.sneaky(out int bar)` is not callable using
argument types `(shared(int))`
test.d(15):cannot pass argument `this.bar` of type `shared(int)` to
parameter `out int bar`

Which is correct.

--


[Issue 10787] static ~this attributes position

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=10787

RazvanN  changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 CC||razvan.nitu1...@gmail.com
 Resolution|--- |FIXED

--- Comment #6 from RazvanN  ---
Fixed by: https://github.com/dlang/dmd/pull/3612

--


[Issue 10725] DMD can't output Hangul(Korean alphbet) (codepage 949(hangul))

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=10725

RazvanN  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||razvan.nitu1...@gmail.com
 Resolution|--- |INVALID

--


[Issue 23596] override deprecated of deprecated base class could work

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23596

RazvanN  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--


[Issue 23596] override deprecated of deprecated base class could work

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23596

Adam D. Ruppe  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED

--- Comment #2 from Adam D. Ruppe  ---
oh nice, then already fixed somehow since the previous release.

--


[Issue 23598] Another nasty forward reference bug

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23598

--- Comment #2 from Max Samukha  ---
(In reply to Iain Buclaw from comment #1)
> Related to issue 23595, and a WIP patch I have in the works fixes this test
> case too.

Great! Thanks!

--


[Issue 23598] Another nasty forward reference bug

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23598

Iain Buclaw  changed:

   What|Removed |Added

 CC||ibuc...@gdcproject.org
   See Also||https://issues.dlang.org/sh
   ||ow_bug.cgi?id=23595

--- Comment #1 from Iain Buclaw  ---
Related to issue 23595, and a WIP patch I have in the works fixes this test
case too.

--


[Issue 23595] Error: undefined identifier with static if and module/import order

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23595

Iain Buclaw  changed:

   What|Removed |Added

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

--


[Issue 23599] tuples not expanded in struct initializer

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23599

Iain Buclaw  changed:

   What|Removed |Added

   Priority|P1  |P3

--


[Issue 23597] .di files not compatible with -i

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23597

Iain Buclaw  changed:

   What|Removed |Added

   Priority|P1  |P4

--


[Issue 23517] dmd with -g flag fails to link on macOS 13.0.1 (i368) with unaligned pointer

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23517

--- Comment #6 from Dlang Bot  ---
@ntrel updated dlang/dmd pull request #14779 "Fix Issue 19649 - Misleading
error for duplicate constraints" mentioning this issue:

- ci: Update cirrus macOS image to M1-based runners (#14772)

  * druntime/test: Force makefile to x86 on Apple ARM cpu (dmd does not support
ARM)

  * ci: Update cirrus macOS image to M1-based runners

  * compiler/test/Makefile: Workaround issue 23517

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

--


[Issue 23596] override deprecated of deprecated base class could work

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23596

RazvanN  changed:

   What|Removed |Added

 CC||razvan.nitu1...@gmail.com

--- Comment #1 from RazvanN  ---
> I can change the base class to remove `abstract` to make it work, but it
> would be nice if there was a way to indicate it on the base but also
> indicate it as handled on the child; I think an `override deprecated` ought
> to suppress the warning and pass it on to the next user.
> 
> 
> Probably related to : https://issues.dlang.org/show_bug.cgi?id=17586

If I understand correctly, you want this code:

  class Base
  {
  deprecated("Use newWay instead") abstract string oldWay();
  abstract string newWay();
  }

  class Child : Base
  {
  override string newWay() { return "yay"; }
  override deprecated string oldWay() { return newWay(); }  
  }

  void main()
  {
  auto child = new Child();
  }

To compile gracefully? If that is the case, then this already happens in the
latest master.

--


[Issue 19649] Misleading error message for duplicate constraints

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=19649

Nick Treleaven  changed:

   What|Removed |Added

   Severity|enhancement |minor

--


[Issue 23599] New: tuples not expanded in struct initializer

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23599

  Issue ID: 23599
   Summary: tuples not expanded in struct initializer
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: dkor...@live.nl

Found while implementing named arguments:
https://github.com/dlang/dmd/pull/14776#issuecomment-1369269255

```
struct S { int x, y; }
alias Seq(T...) = T;
void f()
{
S s0 = S( Seq!(1, 2) );  // < works
S s1 =  { Seq!(1, 2) }; // < error
}
```

> Error: cannot implicitly convert expression `tuple(1, 2)` of type `(int, 
> int)` to `int`

--


[Issue 23598] New: Another nasty forward reference bug

2023-01-04 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23598

  Issue ID: 23598
   Summary: Another nasty forward reference bug
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Keywords: rejects-valid
  Severity: blocker
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: maxsamu...@gmail.com

This one took me a long time to reduce. Marking it as a blocker, as I haven't
found an acceptable workaround yet.


alias aliases(a...) = a;

template sort(alias f, a...)
{
static if (a.length > 0) // (1)
{
alias x = f!(a[1]);
alias sort = a;
}
else
alias sort = a;
}

alias SortedItems = sort!(isDependencyOf, Top, String); // (2)
pragma (msg, "1: ", SortedItems);

enum isDependencyOf(Item) = Item.DirectDependencies.length == 0;

struct Top
{
alias DirectDependencies = aliases!();
}

struct String
{
alias DirectDependencies = aliases!();

pragma(msg, "2: ", SortedItems);
enum l = SortedItems.length; // (3)
static assert(is(typeof(SortedItems.length) == size_t)); // (4)
}

Error: no property `length` for `sort!(isDependencyOf, Top, String)` of type
`void`

The SortedItems tuple at (2) is (Top, String), which is correct, but at (3) it
is broken. However, at (4) it is correct again - the assert passes if (3) is
commented out. This may have something to do with the 'static if' at (1), as
the error goes away if the 'static if' and the 'else' branch are commented out.

--