Node:Memory Management, Next:, Previous:Read/Load/Eval, Up:Top



29 Memory Management and Garbage Collection

Guile uses a garbage collector to manage most of its objects. This means that the memory used to store a Scheme string, say, is automatically reclaimed when no one is using this string any longer. This can work because Guile knows enough about its objects at run-time to be able to trace all references between them. Thus, it can find all 'live' objects (objects that are still in use) by starting from a known set of 'root' objects and following the links that these objects have to other objects, and so on. The objects that are not reached by this recursive process can be considered 'dead' and their memory can be reused for new objects.

When you are programming in Scheme, you don't need to worry about the garbage collector. When programming in C, there are a few rules that you must follow so that the garbage collector can do its job.