История изменений
Исправление X512, (текущая версия) :
Для Mercury есть компилятор (чья-то PhD дипломная работа), имеющий compile time сборщик мусора (т.е. и не сборщик мусора в классическом понимании вовсе).
Это подход Rust и он имеет ограничения. Насколько мне известно алгоритм сборки мусора без трассировки, работающий во всех случаях, пока не придумали.
The current Mercury implementation supports two different methods of memory management: conservative garbage collection, or no garbage collection. The latter is suitable only for programs with very short running times (less than a second), which makes the former the standard method for almost all Mercury programs.
То есть там либо обычный сборщик мусора, либо выделение памяти вообще без освобождения и постоянной утечкой.
Или имелось ввиду это? Это подход близкий к Rust когда создаются кучи памяти с единичным владением. Сборки мусора там нет.
Исправление X512, :
Для Mercury есть компилятор (чья-то PhD дипломная работа), имеющий compile time сборщик мусора (т.е. и не сборщик мусора в классическом понимании вовсе).
Это подход Rust и он имеет ограничения. Насколько мне известно алгоритм сборки мусора без трассировки, работающий во всех случаях, пока не придумали.
The current Mercury implementation supports two different methods of memory management: conservative garbage collection, or no garbage collection. The latter is suitable only for programs with very short running times (less than a second), which makes the former the standard method for almost all Mercury programs.
То есть там либо обычный сборщик мусора, либо выделение памяти вообще без освобождения и постоянной утечкой.
Исходная версия X512, :
Для Mercury есть компилятор (чья-то PhD дипломная работа), имеющий compile time сборщик мусора (т.е. и не сборщик мусора в классическом понимании вовсе).
Это подход Rust и он имеет ограничения. Насколько мне известно алгоритм сборки мусора без трассировки, работающий во всех случаях, пока не придумали.