Jump to page: 1 2
Thread overview
November 02

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

November 02

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, what exactly is it meant by "globals"?

Variables in module-scope?
Static variables?

Does it also affect AAs in structs? For example:

struct S
{
    static int[int] x = [4:4];
}

Will this now work?

November 02
Anything that requires the AA from CTFE to cross into runtime should now work. If it doesn't that is a bug.
November 02

On Thursday, 2 November 2023 at 02:07:13 UTC, Andrej Mitrovic wrote:

>

Does it also affect AAs in structs? For example:

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

November 02

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).

November 02

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.

November 02

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!

November 03

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?

November 04

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

November 08

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.

« First   ‹ Prev
1 2