LINUX.ORG.RU

История изменений

Исправление www_linux_org_ru, (текущая версия) :

И как внешний сборщик будет строить граф объектов, определять рутовые ссылки и пр.? Сборщик мусора работает не просто с памятью, а с графом объектов.

да, похоже это можно

у меня есть набросок как сделать точный перемещающий сборщик мусора для с++ (precise moving gc for c++) — причем в том же ключе, что сказали next_time и emulek, но я им не мешаю, хотя и могу подключиться

основная проблема, по-моему, это то, что в момент вызова сборки мусора кое-какие ссылки могут застрять в регистрах (и во временных областях, куда компилятор сбрасывает регистры); поэтому надежно будет использовать счетчики ссылок, а gc будет искать и собирать циклические ссылки

Another solution is to periodically use a tracing garbage collector to reclaim cycles. http://en.wikipedia.org/wiki/Reference_counting#Dealing_with_reference_cycles

если же уметь доставать ссылки из регистров, то похоже можно и вообще обойтись без подсчета ссылок

Исходная версия www_linux_org_ru, :

И как внешний сборщик будет строить граф объектов, определять рутовые ссылки и пр.? Сборщик мусора работает не просто с памятью, а с графом объектов.

да, похоже это можно

у меня есть набросок как сделать точный перемещающий сброщик мусора для с++ (precise moving gc for c++) — причем в том же ключе, что сказали next_time и emulek, но я им не мешаю, хотя и могу подключиться

основная проблема, по-моему, это то, что в момент вызова сборки мусора кое-какие ссылки могут застрять в регистрах (и во временных областях, куда компилятор сбрасывает регистры); поэтому надежно будет использовать счетчики ссылок, а gc будет искать и собирать циклические ссылки — Another solution is to periodically use a tracing garbage collector to reclaim cycles. http://en.wikipedia.org/wiki/Reference_counting#Dealing_with_reference_cycles

если же уметь доставать ссылки из регистров, то похоже можно и вообще обойтись без подсчета ссылок