Garbage collector

From Liberty Eiffel Wiki
Jump to navigation Jump to search

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)
  • Liberty does not make use of the parallel or incremental collectors