On Friday, 21 November 2014 at 10:24:09 UTC, Kagamin wrote:
On Thursday, 25 September 2014 at 21:59:15 UTC, Sean Kelly
wrote:
On Thursday, 25 September 2014 at 13:55:42 UTC, Wyatt wrote:
The caveat for D being this design requires read and write
barriers and I'm pretty sure I recall correctly that those
have been vetoed several times for complexity.
Pretty much for reasons of being able to call C functions and
inline asm code. Memory barriers may still be possible in
these scenarios, but they would be extremely expensive.
BTW, C usually accepts data only for reading, and writes mostly
strings and buffers - plain data without pointers. In both
cases it doesn't need to notify GC (as far as I understand
write barriers).
"usually" isn't sufficient if you're trying to make a GC that
doesn't collect live data. It's possible that we could do
something around calls to extern (C) functions that accept a type
containing pointers, but I'd have to give this some thought.