| From: Aubrey Jaffer <[email protected]>
 | Date: Wed, 16 Sep 2009 13:07:14 -0400 (EDT)
 | 
 | ...  Lets look at this from the compiler's perspective.  When
 | encountering an expression (list (u) (v)), a parallelizing RnRS
 | compiler must commence an analysis of U and V and everything they
 | call, possibly including other modules, to determine whether any
 | side effects to shared state might depend on concurrent execution
 | order.  And there is no guarantee that such an analysis will
 | terminate (Halting Problem).
 | 
 | When a parallelizing IPS compiler encounters (list (u) (v)), it
 | immediately knows that it can delegate the computation of (u) and
 | (v) to distinct threads.

Furthermore, even an IPS *interpreter* can run (list (u) (v))
multi-threaded!  [and RnRS interpreters can't].

 | This might seem like a major change to Scheme, except when you
 | consider how similar thread-safety is to the (programmer)
 | constraint to produce identical behavior regardless of execution
 | order.

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to