Boian Mitov schrieb:
The short story is that any approach has issues.
The component container approach has issue of a single ownership with the easy loss of pointers.
The ref counting has the danger of circular references.
The GC has the non deterministic behavior (Actually I proposed a deterministic/semideterministic GC algorithm ~8 years ago or so, but that is a different story).

I don't like the use of "GC" as a synonym for *mark-sweep* garbage collection only. Wikipedia also states Reference Counting as just another form of garbage collection.

The point is that even with GC the developer is still required to carefully manage resources, and GC tends to make it even more complex.
From all the the above approaches the ARC with optional Weak pointers is the
easiest to manage and the one that tends to lead to the least problems IMHO .

ACK - except for Weak references. Weak references turn the conservative memory management into an aggresive/optimistic one, with unpredictable consequences.

IMO Weak references should be reserved for users who accept possible consequential problems, but should never be used in standard libraries. At least I'd suggest to make weak references subject to an compiler switch, so that every user has a chance to disable them in case of trouble.

DoDi

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

Reply via email to