[Issue 22367] The __ModuleInfo member spuriously linked for modules compiler with -betterC

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22367 --- Comment #14 from Richard Cattermole --- (In reply to Walter Bright from comment #13) > The change to fix this bug report, then, is for betterC modules to generate > a ModuleInfo if it has a `static this` constructor. And to add these > instructio

[Issue 22367] The __ModuleInfo member spuriously linked for modules compiler with -betterC

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22367 --- Comment #13 from Walter Bright --- In this case, ModuleInfo is how the D runtime runs static constructors. Programs compiled with betterC are meant to link only with the C runtime library, which knows nothing about ModuleInfo. The problem here i

[Issue 23529] [ICE] Compiler segfaults on static array cast

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23529 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #1 from Dlang Bot --- @UplinkC

[Issue 23529] [ICE] Compiler segfaults on static array cast

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23529 uplink.co...@googlemail.com changed: What|Removed |Added Assignee|nob...@puremagic.com|uplink.co...@googlemail.com --

[Issue 23529] New: [ICE] Compiler segfaults on static array cast

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23529 Issue ID: 23529 Summary: [ICE] Compiler segfaults on static array cast Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: major P

[Issue 23528] moduleName/fullyQualifiedName no longer works in -betterC

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23528 Richard Cattermole changed: What|Removed |Added Keywords||betterC --

[Issue 23528] New: moduleName/fullyQualifiedName no longer works in -betterC

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23528 Issue ID: 23528 Summary: moduleName/fullyQualifiedName no longer works in -betterC Product: D Version: D2 Hardware: All OS: All Status: NEW

[Issue 14471] std.socket: add method for detach socket handle

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14471 Adam D. Ruppe changed: What|Removed |Added Status|NEW |RESOLVED Resolution|---

[Issue 18625] mixin(__MODULE__) in string mixin results in undefined identifier in certain cases

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18625 Adam D. Ruppe changed: What|Removed |Added CC||destructiona...@gmail.com --- Comment #2 fro

[Issue 22745] std.parallelism.parallel fails to process empty range on a single CPU

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22745 Dlang Bot changed: What|Removed |Added Keywords||pull --- Comment #1 from Dlang Bot --- @kinke c

[Issue 22367] The __ModuleInfo member spuriously linked for modules compiler with -betterC

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22367 --- Comment #12 from Richard Cattermole --- D module constructors of course shouldn't work in -betterC code. They can throw a warning as dead code and hence don't require ModuleInfo to be generated (this should be easy to resolve). That'll prevent su

[Issue 23523] Allow User-Defined Implicit Conversions for const/immutable containers

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23523 --- Comment #1 from John Hall --- In the past the argument from Walter against something like opImplicitCast has always been that users would get confused about random things happening if they had freedom to do any implicit cast they could think of.

[Issue 23527] New: More detailed error messages from is(...) and _traits(compiles)

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23527 Issue ID: 23527 Summary: More detailed error messages from is(...) and _traits(compiles) Product: D Version: D2 Hardware: All OS: All Status: NEW

[Issue 23526] New: Allow libraries to display custom error messages with same flexibility as compiler

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23526 Issue ID: 23526 Summary: Allow libraries to display custom error messages with same flexibility as compiler Product: D Version: D2 Hardware: All OS: All

[Issue 23525] New: Allow user-defined GC scanning for library types

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23525 Issue ID: 23525 Summary: Allow user-defined GC scanning for library types Product: D Version: D2 Hardware: x86 OS: Windows Status: NEW Severity: enhancement

[Issue 23524] New: Allow user-defined value ranges for aggregate fields

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23524 Issue ID: 23524 Summary: Allow user-defined value ranges for aggregate fields Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement

[Issue 23523] New: Allow User-Defined Implicit Conversions for const/immutable containers

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23523 Issue ID: 23523 Summary: Allow User-Defined Implicit Conversions for const/immutable containers Product: D Version: D2 Hardware: All OS: All Status: N

[Issue 23522] New: Error message when enum type is not integral and a value lacks an initializer

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23522 Issue ID: 23522 Summary: Error message when enum type is not integral and a value lacks an initializer Product: D Version: D2 Hardware: All OS: All St

[Issue 23521] New: Bad conversion in double.to!long for values around long.max

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=23521 Issue ID: 23521 Summary: Bad conversion in double.to!long for values around long.max Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW

[Issue 22367] The __ModuleInfo member spuriously linked for modules compiler with -betterC

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22367 --- Comment #11 from Walter Bright --- mylib1.d has a static constructor in it. When does construction happen? In C code, the C runtime takes care of it, in the order they appear to the linker. In D code, the D startup code takes care of it, *after

[Issue 22367] The __ModuleInfo member spuriously linked for modules compiler with -betterC

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22367 --- Comment #10 from Walter Bright --- That doesn't quite solve the problem. Will have to think about it some more. --

[Issue 22367] The __ModuleInfo member spuriously linked for modules compiler with -betterC

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22367 Walter Bright changed: What|Removed |Added Severity|normal |blocker --

[Issue 22367] The __ModuleInfo member spuriously linked for modules compiler with -betterC

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22367 --- Comment #9 from Walter Bright --- Iain has the right idea. The solution is to, when in -betterC mode: 1. automatically annotate static constructors with: pragma(crt_constructor) extern (C) 2. do the same for static destructors 3. not set

[Issue 22367] The __ModuleInfo member spuriously linked for modules compiler with -betterC

2022-11-30 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=22367 --- Comment #8 from Walter Bright --- A module generates a ModuleInfo if at least one of these is true: 1. it imports a module that generates ModuleInfo 2. it has a static constructor 3. it has a static destructor 4. it has a unit test declaration