5

我注意到,在昨晚遇到问题后,重新启动 Pharo 3.0 并没有“撤消”我的工作集——一切似乎都和我关闭时一样。我看到了现在 Pharo 中包含 Fuel 的位置——它会自动保持你的会话吗?我的印象是您必须做一些技巧才能使其真正与您的应用程序一起使用。

我错了吗?

4

2 回答 2

8

Pharo 使用图像。图像基本上是您使用 Pharo 时内存内容的快照。

启动时,该图像从图像文件加载到内存中,Pharo 开始运行。当您保存(快照)会话时会发生相反的情况:当前状态/内存被保存到.image文件中。这包括在当前会话中打开的所有工具、所有正在运行的进程和所有活动对象。

这与Fuel无关, Fuel是一个单独的对象序列化库。

于 2013-07-02T19:08:01.983 回答
2

Pharo 有两种机制:

  • 图片。图像是包含所有对象(特别是作为对象的编译方法和类)的内存快照。保存映像时,您将系统的完整状态保存到磁盘。您可以打开一个图像(它会重新加载内存并在停止的地方继续执行)。实际上还有另一个文件叫做更改文件。此文件包含您编辑的类和方法的文本表示。例如,这些工具正在使用此文件向您展示方法代码。

  • 现在除了图像(内存快照)的概念。系统永久记录您的代码版本。在每个编译阶段之后,将更改提交到更改文件。您可以使用 changeSorter 或版本浏览器查看您所做的事情(请注意,如果您不保存图像,您的更改将无法使用 changesorter 浏览,因为它是一个简单的工具)。现在,即使您没有保存图像,您的更改也会记录在更改文件中。有一种方法可以使用“工具”菜单下的“恢复丢失的更改...”菜单项来恢复您的更改。使用此工具,您可以浏览已自动记录的所有更改并重播它们。我们正在为未来开发新工具。

现在一般来说你不应该依赖这些工具。使用 Pharo 分布式版本管理系统 (monticello) 创建包并将它们发布到诸如 SmalltalkHub 之类的伪造品上。

最后,Fuel 是一个对象序列化器,不用于保存 Pharo 快照。Fuel 是一种快速的序列化器,人们在他们想要选择序列化的内容时使用它——通常是对象图。

所有这些信息也可以在免费的 Pharo 书籍中找到:http: //pharobyexample.orghttp://rmod.lille.inria.fr/pbe2/

于 2013-07-04T08:59:32.280 回答