Subject: Re: Hybrid RC/GC system to support real-time applications that can't afford pauses?
From: (Rob Warnock)
Date: Fri, 11 Jul 2008 21:18:57 -0500
Newsgroups: comp.lang.lisp
Message-ID: <>
Robert Maas, <> wrote:
| Most algorithms in Lisp have shared structure but no pointer-loops
| whatsoever except for loops that pass through a symbol.

I suspect you are quite incorrect on this. Large graph-based
algorithms routinely have numerous cycles, up-pointers, sibling
pointers, double-linked lists [for easy insertion/deletion], etc., etc.
Jeff Shrager ["BioBike", etc.] might be able to confirm this.

| Even algorithms that have explicit loops can often be re-coded
| to have symbols at the key points where loops come around, and to
| explicitly keep a database/set of such key points.

Not algorithms that dynamically generate millions of graph nodes
with arbitrary linkages.

| Now we all know if there are no loops then a reference count system
| works just fine, and is in fact more efficient than a garbage-collect
| system.

Aha! Here's the main flaw! Reference-counting GCs are in fact *NOT*
more efficient than either copying or mark&sweep GCs!! Ref-counting
requires *stores* to the ref counts as they are modified, and this
causes read/modify/write pipeline stalls. Game over.

[Remainder ignored, being based on a fallacious assumption...]


Rob Warnock			<>
627 26th Avenue			<URL:>
San Mateo, CA 94403		(650)572-2607