Hey,
I just found these slides from Alessandro Warth, from a Smalltalk conference 
last year. 

http://slice.caesarsystems.com/smalltalks2009/files/Presentations/Warth_Undo.pdf

The slides show two approaches to versioning, UObject (which I hadn't seen 
before) and Worlds (Quentin showed me a paper on this, called "Worlds: 
Controlling the Scope of Side Effects")

"Programming Model:
-UObject — Undoable Object 
   - operations: {#at, #at:put:, ...}
   - may only be modified inside... 
-UTransaction — Undoable Transaction
   - may modify any no. of UObjects 
   - operations: {#undo}
"

You create UTranscaction objects with a block, which makes the modifications to 
the UObjects. It seems like a logical improvement on Cocoa's NSUndoManager 
approach, and I like the idea of having transactions as objects.

-Eric
_______________________________________________
Etoile-dev mailing list
Etoile-dev@gna.org
https://mail.gna.org/listinfo/etoile-dev

Reply via email to