<br><br><div class="gmail_quote">On Sun, Aug 16, 2009 at 12:18 AM, John A. De Goes <span dir="ltr">&lt;<a href="mailto:john@n-brain.net">john@n-brain.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Aug 15, 2009, at 4:59 PM, Sebastian Sylvan wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Your point about safety in C has no relation to safety in a functional language with a sophisticated effect system.<br>
<br>
I&#39;m sorry, but I think it does. You&#39;re advocating that modifications to mutable state shouldn&#39;t have sequential semantics,<br>
</blockquote>
<br></div>
You must think I&#39;m arguing for some kind of low-level analog of C, augmented with an effect system. I&#39;m not. You can&#39;t do that.  </blockquote><div><br></div><div>No, I don&#39;t. I think you&#39;re arguing for making access to mutable state commutative. Are you not?</div>
<div> </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
In such conditions, multiple sequential writes can be safely parallelized, in addition to a host of other optimizations.</blockquote><div><br></div><div>I&#39;m not saying you shouldn&#39;t parallelise them in very specific circumstances *where it&#39;s safe*, I&#39;m just saying that you shouldn&#39;t assume that it&#39;s safe unless you know it is. If you want to do a transformation that&#39;s unsafe in general, but safe in a specific circumstance, then of course, go ahead!</div>
<div>To my reading it seems like you&#39;re arguing that memory/file access should *always* be considered commutative though, which is what I&#39;m objecting too.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I&#39;m pointing out that this is the case today in C on many CPUs and it&#39;s a royal pain to work with in practice (causing many almost-impossible-to-debug crashes). I would not want functional languages to adopt something that&#39;s proven to be insanity-inducingly difficult to use.<br>

</blockquote>
<br></div>
Please don&#39;t ever bring up C again. You can&#39;t do anything interesting in C.</blockquote><div><br></div><div>I bring up C until you can explain how what you&#39;re suggesting is any different from the current state in C w.r.t. the ordering of memory access. </div>
<div>From what you&#39;ve said so far I can&#39;t see how it is, and it would be instructive to look at the problems with the approach you&#39;re advocating since we&#39;re dealing with its pitfalls *today* in the real world.</div>
</div><br clear="all"><br>-- <br>Sebastian Sylvan<br>