On Wednesday, 14 July 2021 at 18:04:59 UTC, IGotD- wrote:
On Wednesday, 14 July 2021 at 17:52:16 UTC, sclytrack wrote:
Would reference counted classes by default be too much of a
change? Is it a bad idea? Currently there a changes in the
language where you can avoid the reference count, right?
Combination both the rc and the stop-the-world gc, for the
cycles.
Since classes are reference type, I think it can be done. If
I'm wrong please explain why. Now, I think there might problems
with existing code as there is no concern about the RC when
classes are passed around. However, for new code this can be
mitigated.
In practice this would lead to RC classes while other
structures would still be garbage collected. This would reduce
the amount of garbage collected memory which could be
beneficial.
What I would find interesting is if this would enable
deterministic destruction of classes.
It's an interesting subject and could be a half way step to
more a more versatile memory management.
For deterministic object destruction, there's the ```scope```
storage class:
```d
scope class_instance = new class();
scope(exit) class_instance.destroy
```
Isn't the exact same as real RC, but then you can use automem for
C++ style reference counting if you want.