shared - i need it to be useful

Manu turkeyman at gmail.com
Mon Oct 22 00:22:19 UTC 2018


On Sun, Oct 21, 2018 at 2:35 PM Walter Bright via Digitalmars-d
<digitalmars-d at puremagic.com> wrote:
>
> On 10/21/2018 2:08 PM, Walter Bright wrote:
> > On 10/21/2018 12:20 PM, Nicholas Wilson wrote:
> >> Yes, but the problem you describe is arises from implicit conversion in the
> >> other direction, which is not part of the proposal.
> >
> > It's Manu's example.
>
> Then I don't know what the proposal is. Pieces of it appear to be scattered over
> numerous posts, mixed in with other text,

No no, they're repeated, not scattered, because I seem to have to keep
repeating it over and over, because nobody is reading the text, or
perhaps imaging there is a lot more text than there is.

> opinions, and handwavy stuff.

You mean like every post in opposition which disregards the rules and
baselessly asserts it's a terrible idea? :/

> There's nothing to point to that is "the proposal".

You can go back to the OP, not a single detail is changed at any
point, but I've repeated it a whole bunch of times (including in
direct response to your last post) and the summary has become more
concise, but not different.

1. Shared has no read or write access to data
2. Functions with shared arguments are threadsafe with respect to
those arguments
  a. This is a commitment that must be true in _absolute terms_ (there
exists discussion about the ways that neighbours must not undermine
this promise)
  b. There are numerous examples demonstrating how to configure this
(TL;DR: use encapsulation, and @trusted at the bottom of the stack)

If you can find a legitimate example where those rules don't hold, I
want to see it.
But every example so far has been based on a faulty premise where
those 2 simple rules were not actually applied.

I responded to your faulty program directly with the correct program,
and you haven't acknowledged it. Did you see it?

> I suggest you and Manu write up a proper proposal. Something that is complete,
> has nothing else in it, has a rationale, illuminating examples, and explains why
> alternatives are inferior.

I have written this program a couple of times, including in direct
response to your last sample program.
You seem to have dismissed it... where is your response to that
program, or my last entire post?

> For examples of how to do it:
>
> https://github.com/dlang/DIPs/tree/master/DIPs
>
> Trying to rewrite the semantics of shared is not a simple task, doing
> multithreading correctly is a minefield of "OOPS! I didn't think of that!" and
> if anything cries out for a DIP, your and Manu's proposal does.

Yes, I agree it's DIP worthy. But given the almost nothing but overt
hostility I've received here, why on earth would I waste my time
writing a DIP?
I put months into my other DIP which sits gathering dust... if this
thread inspired any confidence that it would be well-received I would
make the effort, but the critical reception we've seen here is... a
bit strange.
It's a 2-point proposal, the rules are **SO SIMPLE**, which is why I
love it. How it can be misunderstood is something I'm having trouble
understanding, and I don't know how to make it any clearer than I
already have; numerous times over, including in my last reply to you,
which you have ignored and dismissed it seems.

Please go back and read my response to your last program.


More information about the Digitalmars-d mailing list