B
Ben Bacarisse
<snip>
(GC = garbage collecton)
Some garbage collectors (many? most? all? I don't know) provide a way to
manually "free" a pointer's memory.
<snip>
(GC = garbage collecton)
As far as GC goes, C is fairly unfriendly toward garbage collectors,
in sneaky ways---not just the obvious ways.
Using your functional library for C (FCC?) suppose you do this:
var = NIL; /* suitably defined NIL constant */
your hope here is that the last reference to an object is held
in var, and is being obliterated, so the object becomes garbage.
Alas, the optimizing C compiler performs flow analysis and realizes, "hey,
var has no next use at any node reachable from the assignment in
the flow graph, in the flow graph; it is a dead assignment!".
Some garbage collectors (many? most? all? I don't know) provide a way to
manually "free" a pointer's memory.
<snip>