84 Глава 3. Среда Smalltalk Express
Если система Смолток разрушилась, не паникуйте. Перед тем как что-
либо предпринять, сделайте копии рабочих файлов. Чтобы восстановить
ранее сделанную работу, надо действовать по следующей схеме.
• Проверить, запускается ли система. Если не запускается, сохранить где-
либо ее текущий файл change.log, взять последнюю резервную копию
файлов v.exe, change.log, sources.sml и запустить систему.
• Теперь, когда есть работающая система, используя пункт Open. . . из
меню File, надо просмотреть тот change.log, который использовался в
момент краха системы. Он содержит все изменения и все выполнявши-
еся выражения. Найти в нем запись о том, когда сохранялся тот образ,
который сейчас выполняется. Ведь каждый раз, когда образ сохраняет-
ся, Смолток записывает в файл change.log комментарий, содержащий
время и дату сохранения образа.
• Когда запись найдена, известно, что потерянная работа хранится от этой
записи и до конца файла change.log. Чтобы восстановить работу, надо
выбрать одну или несколько последовательных порций текста, а затем
выбрать пункт File It In из меню Smalltalk. Каждая порция — выражение,
которое будет выполнено. Если порция — определение метода, он бу-
дет перетранслирован и установлен в систему. Выбирая порции, будьте
очень внимательны: одна из них содержит ошибку, которая разрушила
смолтоковскую систему.
Когда восстановление завершено, не забудьте, используя пункт Save
Image из меню File, сохранить новый образ.
3.4.4. Словарь системы
В Смолтоке есть класс SystemDictionary, определяющий в системе един-
ственный экземпляр — словарь системы с именем Smalltalk. Словарь систе-
мы хранит все глобальные имена системы и определяет поведение, ориен-
тированное на систему в целом. Именно к словарю системы мы обращались
в выражениях, производящих сжатие файлов change.log и sources.sml.
Поскольку словарь Smalltalk хранит все глобальные имена, когда поль-
зователь определяет новые классы, глобальные переменные или пулы, их
имена автоматически добавляются в словарь системы. Для классов, пред-
ставленных в словаре, ключ — имя класса, значение — сам класс. Для гло-
бальных переменных ключ — имя переменной, значение — объект. Если
переменная была определена, но не инициализирована, ее значение — nil.
Для пулов ключ — имя пула, значение — словарь.
Перечислим некоторые из наиболее важных глобальных переменных си-
стемы и дадим краткое описание каждой из них.