From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Tolpin Message-Id: <200403020820.i228Kd1D071531@adat.davidashen.net> To: 9fans@cse.psu.edu Subject: Re: [9fans] Re: advantages of limbo In-Reply-To: Content-Type: text/plain; charset=KOI8-R Date: Tue, 2 Mar 2004 12:20:39 +0400 Topicbox-Message-UUID: 0a879a9e-eacd-11e9-9e20-41e7f4b1d025 > From 9fans-admin@cse.psu.edu Tue Mar 2 12:02:21 2004 > Subject: Re: [9fans] Re: advantages of limbo > From: David Presotto > To: 9fans@cse.psu.edu > Content-Type: text/plain; charset="US-ASCII" > Date: Tue, 2 Mar 2004 03:02:46 -0500 > > On the topic of garbage collectors, one of the main reasons for reference > counting objects and immediately releasing them when they become unreachable > was to use garbage collection to allow control not only of memory but also > resources memory represents. The typical example given is one of windows > that go away as soon as the last reference to them (actually the object representing > them) goes away. Does that mean that designers of Inferno windowing system were required to avoid using cyclic references in window structures? That is, a window does not know who its creator is? It's a decision. But a limiting one. Influenced by an implementation. Just running garbage collector with limited scope would do it without limitations. > Also, the reference counting had a distinct advantage of > being fixed time. We had a terrible time with java systems of the time > going away for long periods, both because of the garbage collector going > off and because of the odd interactions in finalize routines in various > classes. It was not a tradeoff of normal garbage collection. Fixed-time garbage collection techniques existed long before java. It was just an early implementation to make it running. > Over the years since limbo appeared, java garbage collection has changed > radicly and often, drasticly reducing the 'time to take a coffee break' > garbage collection runs. By the 1.4.1 jdk, java included 6 or more > gabage collection strategies and all sorts of tuning parameters. Along > the way all sorts of user code was written to avoid tickling the collectors > at the wrong time or to get things done before they went off. That's > a hell of a lot of effort to avoid the small differences advertised by > the proponents of m&s and generational gc over reference counting. Among 61864 lines of tight Java code I have been involved in writing during last two years there is not a single line which was written to avoid tickling the collector at the wrong time. It just works. > Of course, limbo isn't immune from odd timings. However, they do require > reference loops and those seem not very common amongst limbo programmers. > Is there any other reason reference loops are not very common amongs limbo programmers besides limitations of the garbage collector? David