On Tuesday, 13 May 2014 at 19:56:20 UTC, Rainer Schuetze wrote:

I just read the first chapters, and according to that, existing local gcs needs write barriers, so we are back to my second proposal. The implementation in the paper even adds read barriers.

At this point, I suspect write barriers are simply a requirement for any modern scalable GC. At the very least, the algorithms they enable are important if D is really committed to the pluggable GC concept. (Given the ongoing discussion on performance tradeoffs of various GC methods and the needs of different groups, I'd even suggest it's a really important feature.)

To me, shared is a type modifier that doesn't implicitely convert to anything else without casting.

Interesting, maybe this should be clarified better. Having skimmed back over chapter 13 of TDPL, my understanding of its semantics are that it only really enforces atomicity and execution order. Also, this bit from near the beginning of 13.12 states: "For all numeric types and function pointers, shared-qualified values are convertible implicitly to and from unqualified values."

That sounds kind of at-odds with your interpretation...? :/

-Wyatt

Reply via email to