2013-07-02 6 views
5

Ho notato che, dopo aver riscontrato un problema la scorsa notte, il rilancio di Pharo 3.0 non ha "annullato" il mio set di lavoro - tutto sembrava essere come quando l'ho chiuso. Ho visto dove Carburante è incluso con Pharo ora - mantiene automaticamente la tua sessione? Avevo l'impressione che dovessi fare alcuni trucchi per farlo funzionare effettivamente con la tua applicazione.Pharo 3.0 - La persistenza è automatica?

Mi sbaglio?

risposta

8

Pharo utilizza un'immagine. L'immagine fondamentalmente è l'istantanea dei tuoi contenuti di memoria quando usi Pharo.

All'avvio questa immagine viene caricata dal file immagine in memoria e Pharo inizia a funzionare. L'inverso avviene quando si salva (snapshot) la sessione: lo stato corrente/la memoria viene salvata nel file .image. Ciò include tutti gli strumenti aperti nella sessione corrente, tutti i processi in esecuzione e tutti gli oggetti attivi.

Questo non ha nulla a che fare con Fuel, che è una libreria di serializzazione di oggetti separata.

+0

Quindi, se non ti dispiace mi chiede, qual è il punto in combustibile? – MrDuk

+2

per la serializzazione di grafici di oggetti singoli, ad esempio per mantenere un determinato oggetto o inviare su Internet. Questo è molto diverso dal persistere di tutta l'immagine. Salvare l'intera immagine è molto meno efficiente. – camillobruni

2

Ci sono due meccanismi Pharo:

  • immagine. L'immagine è un'istantanea di memoria contenente tutti gli oggetti (e in particolare i metodi e le classi compilati come oggetti). Quando si salva l'immagine, si salva lo stato completo del sistema su disco. È possibile aprire un'immagine (carica la memoria indietro e l'esecuzione continua dove è stata interrotta). In effetti c'è anche un altro file che si chiama il file di modifica. Questo file contiene la rappresentazione testuale delle classi e dei metodi che hai modificato. Gli strumenti utilizzano questo file per mostrare il codice del metodo, ad esempio.

  • Ora in aggiunta al concetto di immagine (snapshot della memoria). Il sistema registra in permanenza la tua edizione del codice. Dopo ogni fase di compilazione, la modifica viene confermata nel file delle modifiche. Puoi vedere cosa hai fatto usando il browser changeer o versione (tieni presente che se non salvi l'immagine, le tue modifiche non saranno sfogliabili utilizzando un changesorter perché è un semplice strumento). Ora, anche se non hai salvato la tua immagine, le modifiche sono registrate nel file delle modifiche. C'è un modo per ripristinare le modifiche utilizzando la voce di menu "Ripristino perso modifiche ..." sotto il menu Strumenti. Con questo strumento è possibile sfogliare tutte le modifiche che sono state registrate automaticamente e riprodurle. Stiamo lavorando a nuovi strumenti per il futuro.

Ora in generale non si deve fare affidamento su tali strumenti. Utilizzando il sistema di gestione delle versioni distribuito Pharo (monticello) per creare pacchetti e pubblicarli su forge come SmalltalkHub.

Infine Carburante è un serializzatore di oggetti che non viene utilizzato per il salvataggio dell'istantanea Pharo. Il carburante è un serializzatore veloce che le persone usano quando vogliono selezionare ciò che serializzano, di solito i grafici degli oggetti.

Tutte queste informazioni sono anche disponibili nei libri gratuiti Pharo: http://pharobyexample.org e http://rmod.lille.inria.fr/pbe2/