[Lazarus] Log4D weirdness
Marco van de Voort
marcov at stack.nl
Thu Jan 1 17:39:03 CET 2015
On Thu, Jan 01, 2015 at 01:04:22AM -0200, Marcos Douglas wrote:
> >
> > This is totally new for me. I have used interfaces a lot, and while I had
> > trouble from time to time, I haven't really encountered these.
>
> New? What do you mean?
> This problem was talked in FPC list and here before.
> I use "weak reference". Somethings are not possible to implement
> without this "technique".
> For example:
> https://github.com/mdbs99/AWS/blob/master/src/aws_s3.pas#L166
> https://github.com/mdbs99/AWS/blob/master/src/aws_s3.pas#L304
>
> These objects have circular reference and they need weak reference to
> keep memory safe.
Ah, you mean that. I didn't consider that an interface problem, since the
ref is in an object. (whose aren't refcounted). IOW by design :-)
> > eachother. The major implementations are somewhat hardened against it, but
> > more involved reference counting implementations (like Python) are too.
>
> I know some others approaches have problems, but Delphi/FPC is not perfect
> too.
Certainly. It doesn't even try, and as soon as you try to overuse it, it
breaks down. It is IMHO a designchoice and not a flaw though.
> > Delphi/FPC reference counting is simple and cheap. The problem is IMHO not
> > the implementation, but the fact that people try to abuse it for things it
> > wasn't meant for (a holistic automatic memory management solution).
>
> I agree.
Then why do you write such code ? :-)
> > ARC is IMHO no solution but only damage control (by explicitely naming pure
> > references). IIRC Python has similar tricks to keep circular detections
> > cheap (cycle checking can stop at a weak reference)
>
> Happy New year!
Happy New Year. May 3.0 be all that we hope it will be.
More information about the Lazarus
mailing list