Garbage collector

From Liberty Eiffel Wiki
Revision as of 19:36, 5 January 2014 by Cadrian (talk | contribs) (→‎BDW GC)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Liberty Eiffel provides two garbage collector implementations.

Most core libraries are also well equipped to minimize memory requirements in the case that no GC is used.

Native GC

The native GC is generated at the same time as the rest of the code, allowing efficient use of the memory by splitting it in chunks of known size.

See this paper for details.

BDW GC

The Boehm-Demers-Weiser conservative collector is also supported. The minimal required version is currently 7.2.

See the github repository

The missing parts are:

  • a lot of testing (esp. dynamic arrays, weak references, agents)
  • total GC cycle at the end of the program (Eiffel requires that all the objects are disposed at exit, and some programs or libraries rely on that behaviour, usually for checks — is it important?)
  • Liberty does not make use of the parallel or incremental collectors