> 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