Fixing tail mutable TLS/field initializers
Dukc
ajieskola at gmail.com
Wed Jun 12 21:51:08 UTC 2024
Nick Treleaven kirjoitti 7.6.2024 klo 14.05:
> ```d
> int[] x = [1, 2, 3];
> ```
> The above is really like:
> ```d
> __gshared gsx = [1, 2, 3];
> int[] x = gsx;
> ```
> [snip]
Unless we want to disallow array literals for mutable static variables,
there's really only one solution: the array has to be duplicated at
module initialisation time, any time a thread is initialised:
```d
__gshared gsx = [1, 2, 3];
int[] x;
static this()
{ x = gsx.dup;
}
```
More information about the dip.ideas
mailing list