Re: Reference Counted Class

2021-07-14 Thread jfondren via Digitalmars-d-learn

On Wednesday, 14 July 2021 at 18:33:56 UTC, Tejas wrote:
For deterministic object destruction, there's the ```scope``` 
storage class:


```d
scope class_instance = new class();
scope(exit) class_instance.destroy

```


One or the other. The `scope(exit)` will still fire on scope exit 
in the case of `auto class_instance`, and the object will still 
be destructed on scope exit without any such `scope(exit)` in the 
case of `scope class_instance`.


Re: Reference Counted Class

2021-07-14 Thread Tejas via Digitalmars-d-learn

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.


Re: Reference Counted Class

2021-07-14 Thread Tejas via Digitalmars-d-learn

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?


This isn't happening until DIP 1000 passes successfully(which 
isn't anytime soon, unfortunately).





Re: Reference Counted Class

2021-07-14 Thread IGotD- via Digitalmars-d-learn

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.