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


Reply via email to