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