On Wednesday, 11 August 2021 at 19:38:38 UTC, Tejas wrote:
> On Wednesday, 11 August 2021 at 19:27:34 UTC, Ali Çehreli wrote:
> On 8/11/21 12:19 PM, Tejas wrote:
> Atleast leave some pointers on where to start :(
I DuckDuckGo'ed it for you. :)
https://en.cppreference.com/w/cpp/language/memory_model
Then looked it up at Wikipedia too:
https://en.wikipedia.org/wiki/Memory_model_(programming)
Ali
I was hoping on material regarding. c++ vs D memory model, not C++ model alone. That's the problem. For pure C++, there's even the paper by Stroustroup et al. which feels pretty definitive.
That's why I asked here whether anyone could tell me about the subtle differences between C++ and D, with regards to memory model, or any other features that share surface resemblance, but are different underneath.
D's memory model is described on this page of the language spec:
https://dlang.org/spec/intro.html
I'm not super familiar with C++'s memory model, but just from eyeballing the cppreference page, it looks like the main difference between the C++ and D memory models is how they handle access to memory from multiple threads. In particular, D makes a distinction between "thread-local memory locations", which may only be accessed from one thread, and "shared memory locations", which may be accessed from multiple threads. In C++, any memory location can be accessed from any thread.
The other big difference is that D's spec does not really define its terms. What exactly it means for a thread to "access" a memory location, or for concurrent accesses to be "synchronized", is never actually explained. For these details, it is probably safe to fill in the blanks with the equivalent definitions from C++.