We describe a garbage collector for C++ implemented as a user-level library, which does not require a cooperative compiler but makes use of a custom garbage-collection-friendly heap implementation. We claim our garbage collector to be precise, i.e. capable to precisely identify all pointers to all managed objects, tolerant to the conventional C++ manual memory management, and safe in the sense that it does not affect the semantics of the program as long as a simple conventions, encouraged by library interface, are followed. We also discuss a performance penalties imposed by the usage of our library on an end-user program.
Daniil graduated Saint-Petersburg State University in 2014, specializing in Operating Systems Mathemaitical Support and Administration. Currently he combines continuing his studies in the university with working for JetBrains Lab, based on Mathematics & Mechanics faculty of the SPbSU.