2013-07-02 3 views
5

私は、昨夜問題に遭遇した後、Pharo 3.0を再起動しても自分の作業セットを元に戻すことができなかったことに気付きました。私はFaroが現在Pharoに含まれている場所を見ました - あなたのセッションを自動的に維持しますか?私はあなたのアプリケーションで実際に動作させるためにいくつかのやり方をしなければならないという印象を受けました。Pharo 3.0 - 永続性は自動ですか?

私は間違っていますか?

答えて

8

ファロは画像を使用します。 Pharoを使用すると、画像は基本的にあなたの記憶内容のスナップショットです。

起動時にこのイメージがイメージファイルからメモリに読み込まれ、Pharoが実行を開始します。逆は、セッションを保存(スナップショット)すると発生します。現在の状態/メモリは.imageファイルに保存されます。これには、現在のセッションで開いているすべてのツール、実行中のすべてのプロセス、およびすべてのライブオブジェクトが含まれます。

これは、別のオブジェクト直列化ライブラリであるFuelとは関係ありません。

+0

あなたは私が求めて気にしないのであれば、燃料中のポイントは何ですか? – MrDuk

+2

は、単一のオブジェクトグラフをシリアライズするために、たとえば特定のオブジェクトを永続化するために、またはインターネット経由で送信するために使用されます。それは全体のイメージを永続させることとは非常に異なっています。画像全体を保存するのはずっと効率が悪いです。 – camillobruni

2

ファロに2つのメカニズムがあります

  • 画像が。イメージは、すべてのオブジェクト(特に、コンパイルされたメソッドとクラスをオブジェクトとして含む)のスナップショットです。イメージを保存すると、システムの完全な状態がディスクに保存されます。イメージを開くことができます(メモリを元に戻し、実行が停止した場所で実行を継続します)。実際には、変更ファイルと呼ばれる別のファイルもあります。このファイルには、編集したクラスとメソッドのテキスト表現が含まれています。ツールは、このファイルを使用して、たとえばメソッドコードを表示しています。

  • イメージ(メモリスナップショット)の概念に加えて、今では。システムはコード版を永続的に記録します。各コンパイル段階の後、変更は変更ファイルにコミットされます。 changeSorterまたはバージョンブラウザを使って何をしたのかを見ることができます(イメージを保存しないと、単純なツールなので、変更はチェンジリストを使ってブラウズできません)。これで、イメージを保存しなくても、変更内容が変更ファイルに記録されます。ツールメニューの「Recovery lost changes ...」メニュー項目を使用して変更を回復する方法があります。 このツールを使用すると、自動的に記録されたすべての変更を参照して再生することができます。私たちは未来のための新しいツールに取り組んでいます。

一般的に、このようなツールに頼るべきではありません。 Pharo分散バージョン管理システム(monticello)を使用してパッケージを作成し、SmalltalkHubなどの偽造品にパブリッシュします。

最後に燃料は、Pharoスナップショットの保存に使用されないオブジェクトシリアライザです。燃料は、人々が直列化するもの(通常はオブジェクトのグラフ)を選択したいときに使用する高速シリアライザです。

この情報はすべて無料のファロの本でもご覧になれます。http://pharobyexample.orghttp://rmod.lille.inria.fr/pbe2/