[chuck-users] Destroying object instances ... unchuck?

Ge Wang gewang at CS.Princeton.EDU
Mon Jan 29 02:44:52 EST 2007


> Is there a way to explicitly destroy object references?

Currently, ChucK is undergoing much development in terms of garbage  
collection.  In the released version, objects are ref counted, but  
not all references are released correctly yet.  This means either  
structuring code to minimize garbage, or "manually" releasing  
references, in order to control memory usage for now.

Someday soonish, ChucK is going to be a (hopefully properly) garbage  
collected language, which means the programmer will not have to  
manually release objects after use.

> For instance, in a loop, I am creating an array of objects like so:
>
> Object objects[4];
> 0 => int count;
>
> for(0 => int i; i < 4; i++ )
> {
>   new Object @=> objects[count];
>   count++;
> }
>
> Now how would I delete the Object referenced at, say, objects[0]?

In this particular case, by assigning new instances of Object into  
objects[0], the old objects should have been released automatically.   
You can also assign 'null' to object references to decrement their  
ref counts, and if no other references exist to that object, it will  
be released.

Also, as you probably know, one can declare arrays of null  
references, to reduce redundant/useless instantiations:

// array of null Object references
Object @ objects[4];

We are still experimenting with various options for garbage  
collecting ChucK, and will likely adopt two or three approaches for  
initial release/testing, selectable by the programmer.  In any case,  
we don't expect any syntax-alterations to the language.  We will  
continue to keep you posted.

Thanks!

Best,
Ge!



More information about the chuck-users mailing list