[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2006-03-07 (17:44) |
From: | Michael Hicks <mwh@c...> |
Subject: | Re: [Caml-list] STM support in OCaml |
There's a longer answer, but one short answer is: check out AtomCaml at http://www.cs.washington.edu/homes/miker/atomcaml/ -Mike On Mar 7, 2006, at 11:50 AM, Sebastian Egner wrote: > > > Are there any plans to add STM to OCaml? And I'm talking highly > integrated > > into the language, not just some bolt-on library. > > I implemented 'some bolt-on library' as you call it for > myself (for understanding the details of STM) but did > not release it. The main lesseons I learned, however, are > > a) A library will be nearly as good as something 'highly > integrated into the language'. The main difference is > that you cannot annotate fields to be transactional, > and define transactional record types; you need to > work with explicit transactional reference boxes and arrays. > This appears tolerable, and it is a lot simpler, both in > terms of implementation and in terms of using it. > > b) The version of STM as designed for Haskell makes essential > use of laziness for composing transactions in a very clean > way. You can construct more and more complex transactions > by not yet enclosing them into 'atomic'. This is probably > the most important benefit of STMs at all. Unfortunately, > this property is essentially impossible in OCaml: No matter > how highly integrated STMs are in the language, it will > always be easy to write a program that uses ordinary (non-STM) > state to keep a record of something it shouldn't---messing > up semantics of course. > > Sorry, I know this is bad news, but that is what I found. > I invite everybody to verify this for him- or herself, > or prove me wrong. > > Sebastian. > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs