On 22 Jul 2009, at 17:16, Robert Poor wrote:
<snip> The problem is not getting the GC fast enough, but they tend to do collecting at a specific time, when the whole program sort of halts.
Once upon a time, I worked at a company called Lucid. We made Common Lisp Compilers. Prior to Lucid, most Lisp systems would grind to a halt whenever a GC took place. One of the major contributions made by Patrick Solbavarro was an ephemeral garbage collector for general-purpose computers[*]: every time you allocated some memory, it did a little bit of reclamation.
Moral of the story: Ephemeral GCs techniques are mature, widely understood and are exactly what's needed in a real-time environment.
So is the theory, but the comp.compilers thread mentioned some practical problems. If you want to collect little by little you need some large buffers, and tracing can cause virtual memory swaps on modern systems. But if you you one which is tested and can guarantee no delays in the programming threads, let's hear. Hans