From c5ee546dda0c74e393aca1b6c18915837e6adf7a Mon Sep 17 00:00:00 2001 From: Marius Vollmer Date: Mon, 5 Aug 2002 18:50:54 +0000 Subject: [PATCH] Added an introductory blurb about GC that I had lying around. --- doc/ref/scheme-memory.texi | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/doc/ref/scheme-memory.texi b/doc/ref/scheme-memory.texi index d6f0584c6..8f9d8e143 100644 --- a/doc/ref/scheme-memory.texi +++ b/doc/ref/scheme-memory.texi @@ -2,6 +2,21 @@ @node Memory Management @chapter Memory Management and Garbage Collection +Guile uses a @emph{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 'life' 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 used 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. + @menu * Garbage Collection:: * Memory Blocks::