> On May 8, 2021, at 7:59 AM, Sven Barth via fpc-devel 
> <fpc-devel@lists.freepascal.org> wrote:
> 
> It has the exact same problems that my branch had (especially the interaction 
> of reference counted instances with non-reference counted ones).
> 
> Using a variable/parameter/field based approach (like the idea with managed 
> records and default fields) is the more flexible one compared to the type or 
> instance based one and thus it's more favorable.

I still don't understand how the record approach is that much different from a 
managed class type which calls the same set of management operators.  Can we 
make a pros-cons list to clear this up and give an example of "especially the 
interaction of reference counted instances with non-reference counted ones"?

Here's the most recent things we brought up:

- Records can't be cast in a way that would break reference counting (like a 
managed class being cast to TObject would).
- Generic records would create a proliferation of new types for all classes you 
wanted managed, so instead of using TFPGList<TSomeObject> you're using 
TManagedSomeObjectList or TManaged<TFPGList<TSomeObject>>, or worse yet 
"specialize TManaged<specialize TFPGList<TSomeObject>>"

Otherwise the same set of circular references exists but I'm not sure about 
your concern about mixing managed types yet.

Regards,
        Ryan Joseph

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to