Hi This research from VPRI may be useful: Worlds: Controlling the Scope of Side Effects <http://www.vpri.org/pdf/tr2011001_final_worlds.pdf> and Experiments with Worlds <http://www.vpri.org/pdf/m2013002_experiments.pdf> (Alessandro Warth, Yoshiki Ohshima, Ted Kaehler, and Alan Kay) They had a JS and Squeak version running which can be found at http://www.tinlizzie.org/~awarth/worlds/ <http://www.tinlizzie.org/~awarth/worlds/>
Regards Carlo On 30 Jul 2018, at 15:16, Peter Uhnák <i.uh...@gmail.com <mailto:i.uh...@gmail.com>> wrote: Hi, is there some library or approach how to do transactions in pharo? And I don't mean database transactions, but directly in memory on Pharo objects... e.g. p := Person new. transaction do: [ p name: 'Nobody'. p age: 70. ] on: Error do: [ transaction rollback. ]. self assert: p name equals: 'Nobody'. self assert: p age equals: 70. transaction do: [ p name: 'Somebody'. p age: 1 / 0. ] on: Error do: [ transaction rollback. ]. self assert: p name equals: 'Nobody'. self assert: p age equals: 70. Any pointers appreciated. Thanks, Peter