Pharo 3.0 - Автоматическое ли сохранение?

Я заметил, что после того, как прошлой ночью столкнулся с проблемой, перезапуск Pharo 3.0 не «отменил» мой рабочий набор — все выглядело так, как было, когда я его закрыл. Я видел, где теперь Fuel входит в состав Pharo — он автоматически сохраняет вашу сессию? У меня сложилось впечатление, что вам нужно было сделать некоторые трюки, чтобы заставить его работать с вашим приложением.

Я ошибся?


person MrDuk    schedule 02.07.2013    source источник


Ответы (2)


Фаро использует изображение. Изображение в основном представляет собой снимок содержимого вашей памяти, когда вы используете Pharo.

При запуске этот образ загружается из образа-файла в память, и Pharo начинает работать. Обратное происходит, когда вы сохраняете (моментальный снимок) сеанса: текущее состояние/память сохраняется в файл .image. Сюда входят все инструменты, открытые в текущем сеансе, все запущенные процессы и все активные объекты.

Это не имеет ничего общего с Fuel, который представляет собой отдельную библиотеку сериализации объектов.

person camillobruni    schedule 02.07.2013
comment
для сериализации графов отдельных объектов, например, для сохранения определенного объекта или отправки через Интернет. Это сильно отличается от сохранения всего образа. Сохранение всего изображения гораздо менее эффективно. - person camillobruni; 03.07.2013

В Pharo есть два механизма:

  • Изображение. Образ представляет собой снимок памяти, содержащий все объекты (и, в частности, скомпилированные методы и классы как объекты). Когда вы сохраняете образ, вы сохраняете полное состояние системы на диск. Вы можете открыть образ (он загружает память обратно, и выполнение продолжается там, где оно остановилось). На самом деле есть еще один файл, который называется файлом изменений. Этот файл содержит текстовое представление отредактированных вами классов и методов. Инструменты используют этот файл, чтобы показать вам, например, код метода.

  • Теперь в дополнение к понятию образа (снимка памяти). Система записывает на постоянной основе вашу редакцию кода. После каждой фазы компиляции изменение фиксируется в файле изменений. Вы можете увидеть, что вы сделали, с помощью changeSorter или браузера версий (обратите внимание, что если вы не сохраните свое изображение, ваши изменения не будут доступны для просмотра с помощью ChangeSorter, потому что это простой инструмент). Теперь, даже если вы не сохранили свое изображение, ваши изменения записываются в файл изменений. Существует способ восстановить ваши изменения с помощью пункта меню «Восстановить потерянные изменения...» в меню «Инструменты». С помощью этих инструментов вы можете просмотреть все изменения, которые были записаны автоматически, и воспроизвести их. Мы работаем над новыми инструментами для будущего.

Сейчас вообще не стоит полагаться на такие инструменты. Использование распределенной системы управления версиями Pharo (monticello) для создания пакетов и их публикации на таких платформах, как SmalltalkHub.

Наконец, Fuel — это сериализатор объектов, который не используется для сохранения снимков Pharo. Fuel — это быстрые сериализаторы, которые люди используют, когда хотят выбрать то, что они сериализуют — обычно графы объектов.

Вся эта информация также доступна в бесплатных книгах Pharo: http://pharobyexample.org и http://rmod.lille.inria.fr/pbe2/

person Stephane Ducasse    schedule 04.07.2013