Thread overview | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
December 08, 2019 DIP 1024---Shared Atomics---Final Review | ||||
---|---|---|---|---|
| ||||
DIP 1024, "Shared Atomics", is now ready for Final Review. This is the last chance for community feedback before the DIP is handed off to Walter and Átila for the Formal Assessment. Anyone intending to post feedback in this thread is expected to be familiar with the reviewer guidelines: https://github.com/dlang/DIPs/blob/master/docs/guidelines-reviewers.md The current revision of the DIP for this review is located here: https://github.com/dlang/DIPs/blob/78a5bc098fa00c44f11d1819919eb78b8d263254/DIPs/DIP1024.md In it, you'll find a link to and summary of the previous review rounds. This round of review will continue until 11:59 pm ET on December 23 unless I call it off before then. Thanks in advance for your participation. |
December 08, 2019 Re: DIP 1024---Shared Atomics---Final Review | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | On Sunday, 8 December 2019 at 16:25:21 UTC, Mike Parker wrote: > https://github.com/dlang/DIPs/blob/78a5bc098fa00c44f11d1819919eb78b8d263254/DIPs/DIP1024.md Do the limitations apply to inline assembly? While working on a Phobos PR [1] I tried changing a __gshared variable declaration [2] to shared to make the function @safe. The variable is only written to with a mov instruction [3] for timing reasons, and never read. The DIP doesn't specify what happens here, though I'd argue that assembly blocks are inherently "no type system, you know what you're doing" so it can be allowed. If it is going to be forbidden, then I need to know how to cast away shared from a global variable in inline assembly. [1] https://github.com/dlang/phobos/pull/7296 [2] https://github.com/dlang/phobos/blob/a24888e533adfe8d141eb598be22a50df5e26a66/std/internal/math/biguintx86.d#L759 [3] https://github.com/dlang/phobos/blob/a24888e533adfe8d141eb598be22a50df5e26a66/std/internal/math/biguintx86.d#L692 |
December 08, 2019 Re: DIP 1024---Shared Atomics---Final Review | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | On Sunday, 8 December 2019 at 16:25:21 UTC, Mike Parker wrote: > https://github.com/dlang/DIPs/blob/78a5bc098fa00c44f11d1819919eb78b8d263254/DIPs/DIP1024.md > Alternatives. Provide limited support for locked operations with operators where the CPU supports it. C++ provides such. This is controversial, as some believe it encourages incorrect coding practices. This could use a reference, I couldn't find anything about this after a quick search. |
December 08, 2019 Re: DIP 1024---Shared Atomics---Final Review | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | On 12/8/19 11:25 AM, Mike Parker wrote:
> DIP 1024, "Shared Atomics", is now ready for Final Review. This is the last chance for community feedback before the DIP is handed off to Walter and Átila for the Formal Assessment.
>
> Anyone intending to post feedback in this thread is expected to be familiar with the reviewer guidelines:
>
> https://github.com/dlang/DIPs/blob/master/docs/guidelines-reviewers.md
>
> The current revision of the DIP for this review is located here:
>
> https://github.com/dlang/DIPs/blob/78a5bc098fa00c44f11d1819919eb78b8d263254/DIPs/DIP1024.md
>
>
> In it, you'll find a link to and summary of the previous review rounds. This round of review will continue until 11:59 pm ET on December 23 unless I call it off before then.
>
> Thanks in advance for your participation.
Nothing to add. Looks exactly correct. I look forward to this being implemented.
-Steve
|
December 08, 2019 Re: DIP 1024---Shared Atomics---Final Review | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dennis | On 12/8/2019 9:42 AM, Dennis wrote:
> Do the limitations apply to inline assembly?
No. Inline assembly is always unrestricted.
|
December 08, 2019 Re: DIP 1024---Shared Atomics---Final Review | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dennis | On 12/8/2019 9:46 AM, Dennis wrote:
>> Alternatives. Provide limited support for locked operations with operators where the CPU supports it. C++ provides such. This is controversial, as some believe it encourages incorrect coding practices.
>
> This could use a reference, I couldn't find anything about this after a quick search.
Verbal discussion with Herb Sutter. Not something I can cite.
|
December 09, 2019 Re: DIP 1024---Shared Atomics---Final Review | ||||
---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | On Mon, Dec 9, 2019 at 3:55 AM Steven Schveighoffer via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
>
> On 12/8/19 11:25 AM, Mike Parker wrote:
> > DIP 1024, "Shared Atomics", is now ready for Final Review. This is the last chance for community feedback before the DIP is handed off to Walter and Átila for the Formal Assessment.
> >
> > Anyone intending to post feedback in this thread is expected to be familiar with the reviewer guidelines:
> >
> > https://github.com/dlang/DIPs/blob/master/docs/guidelines-reviewers.md
> >
> > The current revision of the DIP for this review is located here:
> >
> > https://github.com/dlang/DIPs/blob/78a5bc098fa00c44f11d1819919eb78b8d263254/DIPs/DIP1024.md
> >
> >
> > In it, you'll find a link to and summary of the previous review rounds. This round of review will continue until 11:59 pm ET on December 23 unless I call it off before then.
> >
> > Thanks in advance for your participation.
>
> Nothing to add. Looks exactly correct. I look forward to this being implemented.
>
> -Steve
This has been such a long time coming!
|
December 10, 2019 Re: DIP 1024---Shared Atomics---Final Review | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | On Sunday, 8 December 2019 at 16:25:21 UTC, Mike Parker wrote: > DIP 1024, "Shared Atomics", is now ready for Final Review. This is the last chance for community feedback before the DIP is handed off to Walter and Átila for the Formal Assessment. > > Anyone intending to post feedback in this thread is expected to be familiar with the reviewer guidelines: > > https://github.com/dlang/DIPs/blob/master/docs/guidelines-reviewers.md > > The current revision of the DIP for this review is located here: > > https://github.com/dlang/DIPs/blob/78a5bc098fa00c44f11d1819919eb78b8d263254/DIPs/DIP1024.md > > In it, you'll find a link to and summary of the previous review rounds. This round of review will continue until 11:59 pm ET on December 23 unless I call it off before then. > > Thanks in advance for your participation. Can somebody please give or point to simple examples on howto use core.atomic: shared int x; // ok, initialization to 0 ++x; // error, read and write of shared x Looking into https://dlang.org/phobos/core_atomic.html was not so helpful for me. |
December 10, 2019 Re: DIP 1024---Shared Atomics---Final Review | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | On Sunday, 8 December 2019 at 16:25:21 UTC, Mike Parker wrote: I think that it should be stated somewhere that the DIP makes shared unusable in betterC code. |
December 10, 2019 Re: DIP 1024---Shared Atomics---Final Review | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike Parker | On Sunday, 8 December 2019 at 16:25:21 UTC, Mike Parker wrote: If you have a const shared variable, do you still need locks to read it? |
Copyright © 1999-2021 by the D Language Foundation