I'm new to newLISP. I just read the paper "Automatic Memory Management in newLISP" and was very surprised to find the section on traditional garbage collection schemes to be missing the primary method of copying garbage collection (actually a very early method). For those who don't know about it I point you to the relevant section of a Wikipedia article:
There may be better descriptions about. This is a very simple algorithm. The good thing of course is that the "garbage" cells are never scanned and most traditional lisp programs produce a lot of garbage. Another good thing is that living cells are compacted together which improves caching. The bad thing historically is that for the simplest implementation you need twice as much memory as "mark-and-seeep" or "reference count" methods; less of a problem today. There are many modern GC algorithms based on the copying collector idea.
I also very much wanted to see some actual figures as to the cost of ORO values vs. multiple references in some standard lisp applications. You're making a bold assertion. Back it up!
Friend of all lisps,
Walter