[erlang-questions] New garbage collector

Bjorn Gustavsson <>
Thu Nov 29 17:54:39 CET 2007


Joel Reymont <> writes:

> Any information on the new GC in R12B?
> 
> Source code pointers are fine.

The source is in beam/erl_gc.c in R12B. ggc.c has been removed.
Daily snapshots can be found here: http://www.erlang.org/download/snapshots/

The main change is that the GC will not copy anything outside the heap or
heap fragments. That allows constant terms to be placed anywhere in memory
(each module can now define its own constant). The old GC would copy terms
from anywhere except from areas explicitly excluded (the old heap and HiPE's
constant pool). The idea for this change comes from the HiPE group. We have
worked for several releases to make it possible (uncontrolled building of
heap fragments by arithmetic instructions prevented this change, so we had
to introduce new arithmetic instructions that does an explicit garbage
collection).

/Bjorn
-- 
Björn Gustavsson, Erlang/OTP, Ericsson AB



More information about the erlang-questions mailing list