| 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
