I posted a blog post Updating the Go memory model about some changes I am planning to propose regarding Go's memory model.
This discussion is for collecting feedback about those changes before filing an official proposal.
Please make good use of the limited threading below: post a top-level comment for something new and use the reply feature to reply to someone else's comment. We hope this will help keep discussion manageable.
I think if I were reading the Go Memory Model page without having read much about memory models and data races before I would find this section to be a little misleading:
Programs with data races may also be "invalid" in another less formal sense, which is that they can no longer rely on the language performing to spec. To give the example from elsewhere in the doc, a racing write to a map could corrupt arbitrary memory, which sure doesn't sound like "defined semantics with a limited number of outcomes"! If I understand correctly, that phrase refers to each individual memory read/write, but that may not be clear to someone who is not familiar with the underlying issues/history.