On Friday, 22 December 2017 at 04:56:57 UTC, thedeemon wrote:
Making the GC more like in Go and JVM means adding write
barriers, it means making general code slower (we're not
fast-as-C anymore), it means losing easy C compatibility (hello
FFI!), it means forbidding many current language features like
unions and casts, it means changing the language to something
that's not D anymore.
So I think we can expect some minor improvements in GC, but
nothing radical.
What about a special GC mode for SafeD only processes which could
probably be made precise and maybe even concurrent?
If a process is entirely in SafeD the GC would run in the "safed"
mode otherwise the conservative GC is being run.
Go seems to make the following assumption which should be doable
for D too: "Starting with Go 1.3, the runtime assumes that values
with pointer type contain pointers and other values do not." [1]
[1] https://golang.org/doc/go1.3#garbage_collector