<br><br><div class="gmail_quote">On Sun, Aug 16, 2009 at 12:18 AM, John A. De Goes <span dir="ltr"><<a href="mailto:john@n-brain.net">john@n-brain.net</a>></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'm sorry, but I think it does. You're advocating that modifications to mutable state shouldn't have sequential semantics,<br>
</blockquote>
<br></div>
You must think I'm arguing for some kind of low-level analog of C, augmented with an effect system. I'm not. You can't do that. </blockquote><div><br></div><div>No, I don't. I think you'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'm not saying you shouldn't parallelise them in very specific circumstances *where it's safe*, I'm just saying that you shouldn't assume that it's safe unless you know it is. If you want to do a transformation that's unsafe in general, but safe in a specific circumstance, then of course, go ahead!</div>
<div>To my reading it seems like you're arguing that memory/file access should *always* be considered commutative though, which is what I'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'm pointing out that this is the case today in C on many CPUs and it'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's proven to be insanity-inducingly difficult to use.<br>
</blockquote>
<br></div>
Please don't ever bring up C again. You can't do anything interesting in C.</blockquote><div><br></div><div>I bring up C until you can explain how what you're suggesting is any different from the current state in C w.r.t. the ordering of memory access. </div>
<div>From what you've said so far I can't see how it is, and it would be instructive to look at the problems with the approach you're advocating since we're dealing with its pitfalls *today* in the real world.</div>
</div><br clear="all"><br>-- <br>Sebastian Sylvan<br>