В Rebol возможно ли очистить некоторые глобальные слова из памяти? - PullRequest
1 голос
/ 01 ноября 2009

Я знаю, что глобальные слова ограничены чем-то вроде 2500 слов. Что, если я боюсь достичь предела, я хотел бы создавать и уничтожать слова на лету с чем-то вроде unset: это решило бы риск или просто невозможно что-то масштабировать?

1 Ответ

1 голос
/ 03 ноября 2009

Ограничение на количество слов с уникальными именами . Конечно, вы можете иметь много слов с одинаковым именем 1004 * в различных контекстах ; это не влияет на общее количество, например ....

context1: context [a: 1 b: 2 c: 3]
context2: context [a: "zzzz" b: "yyyy" c: "xxxx"]

.... добавляет только пять слов в общий список слов (context1, context2, a, b, c)

Вы можете сэкономить место, занятое значением, присвоенным слову , используя unset или none , например:

unset 'context1
context2/a: none

Но само название слова никогда не удаляется из глобального списка имен.

Хорошая новость - .....

Предел был ниже 2048 (плюс или минус несколько) в более ранних версиях REBOL. Он вырос в более поздних версиях. Последние версии R2 имеют ограничение 32 000 (ono). R3 ближе к 500 000 и может подняться выше, когда он войдет в бета-версию.

Если вы работаете с ранней версией REBOL и используете ограничение по уникальным именам слов, у вас действительно есть только два варианта:

  • обновление
  • переназначить слова, которые вы используете, чтобы одно и то же имя использовалось в нескольких контекстах *
...