On Mon, Aug 25, 2014 at 9:37 PM, Bertram Felgenhauer < bertram.felgenha...@googlemail.com> wrote:
> Dear Michael, > > Michael Snoyman wrote: > > As part of trac ticket 9390[1], Simon PJ recommended that we try to get a > > document written that clarifies some of the issues regarding evaluation > > order, and get it included in the GHC wiki. After a few iterations with > > review from Simon, I've got a first "publicly consumable" version > available > > at: > > > > > https://www.fpcomplete.com/user/snoyberg/general-haskell/advanced/evaluation-order-and-state-tokens > > Thanks for writing this, it looks very useful. > > > I'd appreciate any feedback on this document before I add it to the wiki. > > [on unsafeDupablePerformIO] > | And when the first thread completes the action, it may terminate the > | execution of the other thread. > > I think it's worthwhile to stress that "bracket" does not help, because > evaluation of the thunk in the other thread simply stops, without > throwing an exception. > > > Could you add something about unsafePerformIO inside STM? The upshot is > that you get the behaviour of unsafeDupablePerformIO, except for the > parallelism: When an STM transaction is interrupted to be retried, its > evaluation simply stops. This is a known bug which causes real problems > with FFI bindings, see > > https://ghc.haskell.org/trac/ghc/ticket/2401 > http://www.haskell.org/pipermail/haskell-cafe/2014-February/112555.html > > but it has been around for a long time. > > Cheers, > > Bertram > Thanks for the feedback, I've added information on both of these points to the document (STM in its own section at the bottom, as I couldn't find a good place where it fit with the existing flow). Michael
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users