2013-07-02 5 views
5

Ich bemerkte, dass, nachdem ich letzte Nacht auf ein Problem gestoßen war, mein Phaser 3.0 mein Arbeitssatz nicht "rückgängig gemacht" hatte - alles schien so zu sein, wie es war, als ich es schloss. Ich habe gesehen, wo Fuel jetzt in Pharo enthalten ist - hält es deine Session automatisch an? Ich hatte den Eindruck, dass Sie einige Tricks machen mussten, damit es tatsächlich mit Ihrer Anwendung funktioniert.Pharo 3.0 - Ist Persistenz automatisch?

Bin ich falsch?

Antwort

8

Pharo verwendet ein Bild. Das Bild ist im Prinzip der Schnappschuss Ihres Speicherinhalts, wenn Sie Pharo verwenden.

Beim Start wird dieses Bild aus der Image-Datei in den Speicher geladen und Pharo beginnt zu laufen. Das Umgekehrte geschieht, wenn Sie Ihre Sitzung speichern (Snapshot): der aktuelle Status/Speicher wird in der Datei .image gespeichert. Dazu gehören alle in der aktuellen Sitzung geöffneten Werkzeuge, alle laufenden Prozesse und alle Live-Objekte.

Dies hat nichts mit Fuel zu tun, das eine separate Objektserialisierungsbibliothek ist.

+0

Also, wenn Sie mir nichts ausmacht, zu fragen, was in Kraftstoff ist der Punkt? – MrDuk

+2

zum Serialisieren einzelner Objektdiagramme, um beispielsweise ein bestimmtes Objekt zu erhalten oder über das Internet zu senden. Das ist etwas ganz anderes als das ganze Bild zu erhalten. Das Speichern des gesamten Bildes ist viel weniger effizient. – camillobruni

2

Es gibt zwei Mechanismen in Pharo:

  • Das Bild. Das Bild ist ein Speicher-Snapshot, der alle Objekte (und insbesondere die kompilierten Methoden und Klassen als Objekte) enthält. Wenn Sie das Bild speichern, speichern Sie den vollständigen Status des Systems auf der Festplatte. Sie können ein Bild öffnen (es lädt den Speicher zurück und die Ausführung wird dort fortgesetzt, wo sie gestoppt wurde). Tatsächlich gibt es auch eine andere Datei, die als Änderungsdatei bezeichnet wird. Diese Datei enthält die textuelle Darstellung der Klassen und Methoden, die Sie bearbeitet haben. Die Werkzeuge verwenden diese Datei, um beispielsweise den Methodencode anzuzeigen.

  • Jetzt zusätzlich zu dem Konzept des Bildes (Memory Snapshot). Das System zeichnet permanent Ihre Code-Edition auf. Nach jeder Kompilierungsphase wird die Änderung an die Änderungsdatei übergeben. Sie können sehen, was Sie mit dem changeSorter oder dem Versions-Browser gemacht haben (beachten Sie, dass Ihre Änderungen nicht durchsucht werden können, wenn Sie Ihr Bild nicht speichern, da es ein einfaches Tool ist). Auch wenn Sie Ihr Bild nicht gespeichert haben, werden Ihre Änderungen in der Änderungsdatei protokolliert. Es gibt eine Möglichkeit, Ihre Änderungen wiederherzustellen, indem Sie den Menüpunkt "Wiederherstellung verlorener Änderungen ..." im Menü "Extras" verwenden. Mit diesem Tool können Sie alle Änderungen, die automatisch aufgezeichnet wurden, durchsuchen und sie erneut abspielen. Wir arbeiten an neuen Tools für die Zukunft.

Jetzt im Allgemeinen sollten Sie sich nicht auf solche Tools verlassen. Verwenden Sie das verteilte Versionsverwaltungssystem von Pharo (monticello), um Pakete zu erstellen und sie auf Schmieden wie SmalltalkHub zu veröffentlichen.

Schließlich ist Fuel ein Objekt-Serializer, der nicht zum Speichern von Pharo-Snapshots verwendet wird. Fuel ist ein schneller Serialisierer, den Leute benutzen, wenn sie auswählen wollen, was sie serialisieren - normalerweise Graphen von Objekten.

diese Informationen auch in den freien Pharo Bücher zur Verfügung All: http://pharobyexample.org und http://rmod.lille.inria.fr/pbe2/