[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Inferno and UNIX / to C or to GC, that is the question.
- To: email@example.com
- Subject: Re: Inferno and UNIX / to C or to GC, that is the question.
- From: Greg Kochanski <firstname.lastname@example.org>
Berry Kercheval wrote: > > > and C is not really > > compatible with garbage collection. > > I know this isn't really about Inferno, > but I feel constrained to point out > that garbage collection CAN work quite well with C,... In the typical case, Berry is right, but it's possible to break any garbage collector in C with programs that are unusual, though not pathological. * A program that allocates lots of circular lists will typically never see them collected. Likewise for doubly-linked lists. * A large program filled with random numbers can make it unlikely that conservative GC will be able to deallocate anything. For instance if you have 100MB of floating point data in a 2GB heap address space, and you allocate space in 64 byte chunks, then any allocated chunk has about even odds of appearing to be referred to. If you allocate space in 8KB chunks, then roughly 99% of the chunks will be uncollectable [unless you give the GC system hints...]. So, you can't write a strict C implementation that will guarentee that all legal programs will work. A C implementation might still be useful, though.