Perfect, thank you very much Simon! I know you're busy so you taking the time to answer questions like this is a much appreciated gift.
On Thu, Feb 4, 2016 at 6:11 AM, Simon Peyton Jones <simo...@microsoft.com> wrote: > that the mechanism for preventing things like reordering operations or > spurious sharing is shared in common between ST and IO via State# > > > > Yes. It’s pure data dependency, no more and no less. Operations in both ST > and IO take a State# token as input, and produce one as output. So of > course to get the input one, all preceding operations must be done first. > Simple! > > > > Simon > > > > *From:* ghc-devs [mailto:ghc-devs-boun...@haskell.org] *On Behalf Of > *Christopher > Allen > *Sent:* 03 February 2016 23:30 > *To:* ghc-devs@haskell.org > *Subject:* Guarantees for ST and IO shared in common? > > > > Underlying ST is: GHC.Prim.State# s -> (# GHC.Prim.State# s, a #) > > > > Underlying IO is: GHC.Prim.State# GHC.Prim.RealWorld > > -> (# GHC.Prim.State# GHC.Prim.RealWorld, a #) > > > > Based on the (very helpful!) conversation I had on the #ghc IRC channel, > it seems to me that the mechanism for preventing things like reordering > operations or spurious sharing is shared in common between ST and IO via > State#. Is this accurate? I believe the exception is how RealWorld is used > w/ IO but we can put that off for this question. > > > > If anyone could confirm this understanding that would be helpful. If > anyone could point out exceptions to this notion, I'd very much appreciate > that as well. > > > > > > Thanks again for everyone's time. > > > > -- > > Chris Allen > > Currently working on http://haskellbook.com > <https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fhaskellbook.com&data=01%7c01%7csimonpj%40064d.mgd.microsoft.com%7c437e21b733ab4fa4895908d32cf1fd68%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=PPVWa%2bCUw8gEWIOVEyJNcOKuGGmZBtfvXg0wsA2jS2Y%3d> > -- Chris Allen Currently working on http://haskellbook.com
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs