summaryrefslogtreecommitdiffstats
path: root/HACKING
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2013-12-10 08:23:09 -0800
committerKaz Kylheku <kaz@kylheku.com>2013-12-10 08:23:09 -0800
commit12854bc2f314898b0bdc718808f6a69e65763ef6 (patch)
tree07be94d4583c86b018f80198e592c525dd679077 /HACKING
parent7bccff13730eb4997a570532c6e190e7bc7ea9f2 (diff)
downloadtxr-12854bc2f314898b0bdc718808f6a69e65763ef6.tar.gz
txr-12854bc2f314898b0bdc718808f6a69e65763ef6.tar.bz2
txr-12854bc2f314898b0bdc718808f6a69e65763ef6.zip
Fixed occurrences of "garbage allocator". :)
Diffstat (limited to 'HACKING')
-rw-r--r--HACKING9
1 files changed, 5 insertions, 4 deletions
diff --git a/HACKING b/HACKING
index 63f0ba34..5ce8ffc0 100644
--- a/HACKING
+++ b/HACKING
@@ -411,7 +411,7 @@ Since garbage collection is being used in code processed by a compiler which
knows nothing about garbage collection, it is important to obey certain rules
so that the code is gc-safe. Code which is not gc-safe is susceptible
to two potential serious problems: the premature garbage collection of an
-object, and accesses, in the garbage allocator, to uninitialized parts of an
+object, and accesses, in the garbage collector, to uninitialized parts of an
object.
The rules for gc-safe code are not difficult in txr, due to the immense
@@ -465,7 +465,7 @@ as well as any other field that is visited during garbage collection.
A function which constructs an object must place it in live, reachable
storage before attempting to construct another object.
-The garbage allocator does not scan all of memory for root pointers, only the
+The garbage collector does not scan all of memory for root pointers, only the
stack and registered globals. So for instance, if the only reference to an
object is inside a dynamically allocated structure, and that structure is not
visible to the allocator, then if gc is invoked, that object will be reclaimed.
@@ -482,8 +482,9 @@ assigned to pointer t, the allocation of the cons cell stored in t->value, and
the allocation of the COBJ. The issue is that the object t is not known to the
allocator. It is a ``native'' C type, which the garbage collector will not
traverse. The garbage allocator can see the pointer t, because it scans the
-stack and registers, but that object means nothing to the garbage collector,
-and so the collector cannot find and mark the t->value member.
+stack and registers, but that pointer is not recognized by the garbage
+collector since it doesn't point into one of its heaps, and so the collector
+will not find and mark the t->value member.
Of course, the operations structure ``some_type_ops'' presumably contains a
mark function which knows how to traverse this object and find values inside