
In the presence of _uncontrolled concurrency_, you are correct, but uncontrolled concurrency is a failed paradigm littered with defective software. Regards, John A. De Goes N-Brain, Inc. The Evolution of Collaboration http://www.n-brain.net | 877-376-2724 x 101 On Aug 16, 2009, at 5:32 PM, Richard O'Keefe wrote:
On Aug 15, 2009, at 2:55 PM, John A. De Goes wrote:
If you don't like the file system, consider mutable memory. An effect system will tell me I can safely update two pieces of non- overlapping, contiguous memory concurrently, even in different threads if the complexity so justifies it. The IO monad is a poor man's solution to the problem of effects.
In the presence of out-of-order memory writes, write buffers, caches, &c, I'm not going to contradict you, but it certainly isn't as _obvious_ as it used to be.
I've come across an experimental microprocessor where I _think_ it isn't safe if you have
--------+--------- data 1 | data 2 ----+--------+---- cache line
whether that's so on any other processor is beyond my expertise.