[chuck-users] GC vs real-time (was Getting Started with ChucK)

Robert Poor rdpoor at gmail.com
Wed Jul 22 11:16:07 EDT 2009


At the risk of sounding like the old codger who says "back when I was  
a kid, I walked sixteen miles in the snow barefoot to school every  
day..." ...

On 22 Jul 2009, at 01:03, Hans Aberg wrote:

> On 22 Jul 2009, at 00:06, Tom Lieber wrote:
>> <snip>...GC delays.
>>
>> Concurrent GC would be nice, but making the VM multi-threaded is not
>> the only way to synthesize sounds faster.
>
> <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.

- Rob

[*] Soba88 Sobalvarro, Patrick G., "A lifetime-based garbage collector  
for LISP systems on general-purpose computers," B.S. thesis, MIT EECS  
Dept. 1988.



More information about the chuck-users mailing list