On Sat, Aug 15, 2009 at 11:45 PM, John A. De Goes <j...@n-brain.net> wrote:
>
> Effect system optimizations are about taking programs that are correct, and
> transforming them to faster but equivalent programs that are still correct.


And since reordering access to externally modifiable data (external includes
memory if it's visible to other therads) is *not* safe, that shouldn't be
done. You're arguing for doing unsafe (i.e. they can cause a functioning
program to become non-functioning) transformations!

That said, your reasoning precludes the use of file read buffering, and
> other similar operations that are routinely done. It's only an illusion that
> such programs are "safe", with or without transformation of sequential read
> operations.


Yes, you do have to be very careful about abstractions like that, but the
fact that we have some of that now, which can cause very hard-to-catch bugs
when you rely on ordering, is no good argument that we should add even more
of it!


-- 
Sebastian Sylvan
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to