Re: First Beta 2.106.0
On Tuesday, 14 November 2023 at 23:17:32 UTC, Andrey Zherikov wrote: On Thursday, 2 November 2023 at 00:57:23 UTC, Iain Buclaw wrote: Glad to announce the first beta for the 2.106.0 release, ♥ to the 33 contributors. http://dlang.org/download.html#dmd_beta http://dlang.org/changelog/2.106.0.html As usual please report any bugs at https://issues.dlang.org -Iain on behalf of the Dlang Core Team Filed https://issues.dlang.org/show_bug.cgi?id=24246 for ICE Looks like illegal instruction.
Re: First Beta 2.106.0
On Tuesday, 14 November 2023 at 17:44:11 UTC, Steven Schveighoffer wrote: This might be one of the greatest releases of D ever. -Steve I second this.
Re: First Beta 2.106.0
On Thursday, 2 November 2023 at 00:57:23 UTC, Iain Buclaw wrote: Glad to announce the first beta for the 2.106.0 release, ♥ to the 33 contributors. http://dlang.org/download.html#dmd_beta http://dlang.org/changelog/2.106.0.html As usual please report any bugs at https://issues.dlang.org -Iain on behalf of the Dlang Core Team Filed https://issues.dlang.org/show_bug.cgi?id=24246 for ICE
Re: First Beta 2.106.0
On Thursday, 2 November 2023 at 00:57:23 UTC, Iain Buclaw wrote: Glad to announce the first beta for the 2.106.0 release, ♥ to the 33 contributors. Kind of buried in the changelog (because it's just a few issues closed) is a really significant change coming to this version: the much-hated "statement is not reachable" warning is being removed. This might be one of the greatest releases of D ever. -Steve
Re: First Beta 2.106.0
On Wednesday, 8 November 2023 at 05:53:32 UTC, Iain Buclaw wrote: Recursively adding `nothrow:` was implied but I err towards brevity. Alright thanks for clarifying!
Re: First Beta 2.106.0
On Friday, 3 November 2023 at 04:33:12 UTC, Andrej Mitrovic wrote: On Thursday, 2 November 2023 at 09:13:55 UTC, Iain Buclaw wrote: On Thursday, 2 November 2023 at 07:49:32 UTC, Imperatorn wrote: Why is it named nothrow if what it's really doing is not adding the unwinders? A nothrow switch could imply it's doing something in relationship to nothrow, which it doesn't (unless it's secretly enforcing nothrow in the codebase). `-nothrow` is equivalent to putting `nothrow:` at the top of every compiled module. That kind of goes against what it says in the changelog: Recursively adding `nothrow:` was implied but I err towards brevity. And it also mentions: The switch does not affect semantic analysis But surely it has effect on semantics? I assume scope statements are disallowed if -nothrow is set and would lead to compilation errors? Right, statements that depend on exceptions as part of their operation can't possibly work because no unwind tables, eh regions, etc... are generated.
Re: First Beta 2.106.0
On Thursday, 2 November 2023 at 00:57:23 UTC, Iain Buclaw wrote: Glad to announce the first beta for the 2.106.0 release, ♥ to the 33 contributors. http://dlang.org/download.html#dmd_beta http://dlang.org/changelog/2.106.0.html As usual please report any bugs at https://issues.dlang.org -Iain on behalf of the Dlang Core Team Static AA init, finally! Great! Andrea
Re: First Beta 2.106.0
On Thursday, 2 November 2023 at 09:13:55 UTC, Iain Buclaw wrote: On Thursday, 2 November 2023 at 07:49:32 UTC, Imperatorn wrote: Why is it named nothrow if what it's really doing is not adding the unwinders? A nothrow switch could imply it's doing something in relationship to nothrow, which it doesn't (unless it's secretly enforcing nothrow in the codebase). `-nothrow` is equivalent to putting `nothrow:` at the top of every compiled module. That kind of goes against what it says in the changelog: Putting nothrow: at the top of the module doesn't influence the status for member functions in a class or struct, the nothrow: will have to be repeated for each class/struct. And it also mentions: The switch does not affect semantic analysis But surely it has effect on semantics? I assume scope statements are disallowed if -nothrow is set and would lead to compilation errors?
Re: First Beta 2.106.0
On Thursday, 2 November 2023 at 09:13:55 UTC, Iain Buclaw wrote: On Thursday, 2 November 2023 at 07:49:32 UTC, Imperatorn wrote: Why is it named nothrow if what it's really doing is not adding the unwinders? A nothrow switch could imply it's doing something in relationship to nothrow, which it doesn't (unless it's secretly enforcing nothrow in the codebase). `-nothrow` is equivalent to putting `nothrow:` at the top of every compiled module. Ok, then it makes sense. Thanks!
Re: First Beta 2.106.0
On Thursday, 2 November 2023 at 07:49:32 UTC, Imperatorn wrote: Why is it named nothrow if what it's really doing is not adding the unwinders? A nothrow switch could imply it's doing something in relationship to nothrow, which it doesn't (unless it's secretly enforcing nothrow in the codebase). `-nothrow` is equivalent to putting `nothrow:` at the top of every compiled module.
Re: First Beta 2.106.0
On Thursday, 2 November 2023 at 00:57:23 UTC, Iain Buclaw wrote: Glad to announce the first beta for the 2.106.0 release, ♥ to the 33 contributors. http://dlang.org/download.html#dmd_beta http://dlang.org/changelog/2.106.0.html As usual please report any bugs at https://issues.dlang.org -Iain on behalf of the Dlang Core Team Great work! I'm just wondering about the -nothrow switch name: "Adding the -nothrow switch to the compiler causes the stack unwinders to not be added and enables the optimizations. This capability is already there for -betterC code, this would just enable it for regular D code." Why is it named nothrow if what it's really doing is not adding the unwinders? A nothrow switch could imply it's doing something in relationship to nothrow, which it doesn't (unless it's secretly enforcing nothrow in the codebase).
Re: First Beta 2.106.0
On Thursday, 2 November 2023 at 02:07:13 UTC, Andrej Mitrovic wrote: Does it also affect AAs in structs? For example: ```d struct S { static int[int] x = [4:4]; } ``` Will this now work? Yes, there are a few kinks that need ironing out though, hopefully before the RC in a couple weeks. One open PR https://github.com/dlang/dmd/pull/15744 and another found issue https://issues.dlang.org/show_bug.cgi?id=24209
Re: First Beta 2.106.0
Anything that requires the AA from CTFE to cross into runtime should now work. If it doesn't that is a bug.
Re: First Beta 2.106.0
On Thursday, 2 November 2023 at 00:57:23 UTC, Iain Buclaw wrote: Glad to announce the first beta for the 2.106.0 release, ♥ to the 33 contributors. http://dlang.org/download.html#dmd_beta http://dlang.org/changelog/2.106.0.html As usual please report any bugs at https://issues.dlang.org -Iain on behalf of the Dlang Core Team Thanks Iain. For [Global variables can now be initialized with Associative Arrays](https://dlang.org/changelog/2.106.0.html#dmd.static-assoc-array), what exactly is it meant by "globals"? Variables in module-scope? Static variables? Does it also affect AAs in structs? For example: ```d struct S { static int[int] x = [4:4]; } ``` Will this now work?
First Beta 2.106.0
Glad to announce the first beta for the 2.106.0 release, ♥ to the 33 contributors. http://dlang.org/download.html#dmd_beta http://dlang.org/changelog/2.106.0.html As usual please report any bugs at https://issues.dlang.org -Iain on behalf of the Dlang Core Team