Использует ли newLISP сборку мусора?

Эта страницабыла для меня весьма запутанной.

Там сказано:

Управление памятью в newLISP не зависит от алгоритма сборки мусора. Память не маркируется и не подсчитывается. Вместо этого решение об удалении вновь созданного объекта памяти принимается сразу после создания объекта памяти.

newLISP следует правилу «только одна ссылка» (ORO). Каждый объект памяти, на который не ссылается символ, устаревает, как только newLISP достигает более высокого уровня оценки во время оценки выражения. Объекты в newLISP (за исключением символов и контекстов) передаются путем копирования значения другим определяемым пользователем функциям. В результате для каждого объекта newLISP требуется только одна ссылка.

Ниже я вижу:

Все списки, массивы и строки передаются во встроенные функции и из них по ссылке.

Я не могу понять этих двоих.

Как newLISP может «не полагаться на алгоритм сборки мусора» и при этом передавать данные по ссылке?
Например, что бы он сделал в случае циклических ссылок?!

Возможно ли вообще для LISP не использовать сборку мусора без снижения производительности? (Я предполагаю, что вы всегда можете передавать вещи по значению или всегда можете выполнять сканирование всей кучи всякий раз, когда считаете, что это может быть необходимо, но тогда мне кажется, что это безумно повредит вашей производительности.)
Если да, то как он будет работать с циклическими ссылками? Если нет, то что они означают?

10
задан Mehrdad 25 June 2012 в 13:00
поделиться