low-latency GC
IGotD-
nise at nise.com
Sun Dec 6 12:58:44 UTC 2020
On Sunday, 6 December 2020 at 11:07:50 UTC, Ola Fosheim Grostad
wrote:
>
> ARC can be done incrementally, we can do it as a library first
> and use a modified version existing GC for detecting failed
> borrows at runtime during testing.
>
> But all libraries that use owning pointers need ownership to be
> made explicit.
>
> A static borrow checker an ARC optimizer needs a high level IR
> though. A lot of work though.
The Rust approach is interesting as it doesn't need an ARC
optimizer. Everything is a move so no increase/decrease is done
when doing that. Increase is done first when the programmer
decides to 'clone' the reference. This inherently becomes
optimized without any compiler support. However, this requires
that the programmer inserts 'clone' when necessary so it isn't
really automatic.
I was thinking about how to deal with this in D and the question
is if it would be better to be able to control move as default
per type basis. This way we can implement Rust style reference
counting without intruding too much on the rest of the language.
The question is if we want this or if we should go for a fully
automated approach where the programmer doesn't need to worry
about 'clone'.
More information about the Digitalmars-d-learn
mailing list