|
|
|
data race. A program is data race free if all its executions are data race free. guarantees sequential consistency of all events for data race free programs. NOTE 1 NOTE 2 The following are guidelines for ECMAScript programmers working with shared memory. We recommend programs be kept data race free, i.e., make it so that it is impossible for there to are interleaved with each other. For data race free programs, it is not necessary to understand the . The details are unlikely to build intuition that will help one to better write ECMAScript. More generally, even if a program is not data race free it may have predictable behaviour, so long The following are guidelines for ECMAScript implementers writing compiler transformations for It is desirable to allow most program transformations that are valid in a single- setting in a multi- setting, to ensure that the performance of each program is as good as it would be in a single- setting. Frequently these transformations are hard to judge. We outline some rules about program transformations that are intended to be taken as normative or stronger than what the implies) but which are likely not exhaustive. These rules are intended to apply to program . Let an agent-order slice be the subset of the Let possible read values of a read event be the set of all values of across all valid executions. Any transformation of an agent-order slice that is valid in the absence of shared memory is valid Atomics are carved in stone : Program transformations must not cause the SeqCst events in an agent-order slice to be reordered with its Unordered operations, nor its SeqCst operations to be reordered with each other, nor may a program transformation remove a SeqCst operation from the . 29.11 Shared Memory Guidelines 810 |