On Aug 15, 2009, at 5:32 PM, Sebastian Sylvan wrote:
On Sun, Aug 16, 2009 at 12:18 AM, John A. De Goes <j...@n-brain.net>
wrote:
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.
No, I don't. I think you're arguing for making access to mutable
state commutative. Are you not?
There are many cases when mutation to state _is_ commutative. I can't
argue that certain operations are _always_ commutative without talking
about the language.
Pretend I'm arguing for a mostly functional language and effect system
that maximize the opportunities for parallelizing code.
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!
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.
In the right language, many times of memory (and possibly file)
operations _always_ commute. In the wrong language, they _sometimes_
commute or _never_ provably commute. I'm not arguing for the
assumption in any language where it is false.
Regards,
John A. De Goes
N-Brain, Inc.
The Evolution of Collaboration
http://www.n-brain.net | 877-376-2724 x 101
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe