| ... | ... | @@ -67,7 +67,7 @@ in a letter, eg. 1.2.a, indicates a possible choice for question 1.2. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**1.a.** The spec requires cooperative concurrency, preemption is
|
|
|
|
**Choice 1.a.** The spec requires cooperative concurrency, and preemption is
|
|
|
|
allowed as an extension. Both would be specified precisely in
|
|
|
|
terms of what progress and fairness guarantees the programmer can
|
|
|
|
expect.
|
| ... | ... | @@ -101,7 +101,7 @@ expect. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**1.b.** Preemption is required by the spec.
|
|
|
|
**Choice 1.b.** Preemption is required by the spec.
|
|
|
|
|
|
|
|
|
|
|
|
|
| ... | ... | @@ -155,7 +155,7 @@ expect. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**2.1.a.** we annotate concurrent calls:
|
|
|
|
**Choice 2.1.a.** we annotate concurrent calls:
|
|
|
|
|
|
|
|
|
|
|
|
>
|
| ... | ... | @@ -202,7 +202,7 @@ expect. |
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
**2.1.b.** we annotate non concurrent calls:
|
|
|
|
**Choice 2.1.b.** we annotate non concurrent calls:
|
|
|
|
|
|
|
|
|
|
|
|
>
|
| ... | ... | @@ -296,14 +296,14 @@ Haskell). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**3.a** Specify a weak memory model, in which `IORef` updates
|
|
|
|
**Choice 3.a** Specify a weak memory model, in which `IORef` updates
|
|
|
|
may be observed out of order, but specify that certain operations
|
|
|
|
(eg. `MVar` operations) constitute sequence points around which no
|
|
|
|
re-ordering may happen.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**3.b** Specify a strong memory model in which no re-ordering is
|
|
|
|
**Choice 3.b** Specify a strong memory model in which no re-ordering is
|
|
|
|
observable.
|
|
|
|
|
|
|
|
|
| ... | ... | |