<div dir="ltr">For a few more such leaks, see <a href="http://hackage.haskell.org/package/base-4.6.0.1/docs/System-Info.html">http://hackage.haskell.org/package/base-4.6.0.1/docs/System-Info.html</a> , as mentioned in <a href="http://conal.net/blog/posts/notions-of-purity-in-haskell">http://conal.net/blog/posts/notions-of-purity-in-haskell</a> .  -- Conal<br>

</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Nov 11, 2013 at 7:01 AM, Ryan Newton <span dir="ltr"><<a href="mailto:rrnewton@gmail.com" target="_blank">rrnewton@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Haskell isn't like Java byte code in having a single semantics for a program irrespective of where it is run.  In particular, "Int" has a platform-defined width -- so the same (pure) code can yield different answers on different machines.<div>



<div><br></div><div>numCapabilities was also a "leak" of platform information, which did not require IO. But, happily, now it does not appear in the [Trustworthy] module, <a href="http://Control.Concurrent" target="_blank">Control.Concurrent</a>.</div>



<div><br></div><div>Ok, what else?  What other holes are there that allow my pure functions to change their answer on different machines?  I'm making a list of these in a paper and I want to make sure I give a full account.</div>



<div><br></div><div>Thanks,</div><div>  -Ryan</div><div><br></div></div></div>
<br>_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/ghc-devs" target="_blank">http://www.haskell.org/mailman/listinfo/ghc-devs</a><br>
<br></blockquote></div><br></div>