On 2009-10-28, at 11:29 PM, Ray Dillinger wrote: > Ack. Forgot to CC the list. > > From: Ray Dillinger <[email protected]> > Date: October 28, 2009 11:27:39 PM EDT > To: Marc Feeley <[email protected]> > Subject: Re: [r6rs-discuss] Implicitly Concurrent Scheme > > > On Wed, 2009-10-28 at 21:54 -0400, Marc Feeley wrote: >> On 2009-10-28, at 4:53 PM, John Cowan wrote: >> >>> Marc Feeley scripsit: >>> >>>> Not true. Lazy-task creation will do a very good job dynamically. >>>> Read my PhD thesis for details: >>> >>> I confess to not having read it yet, but it appears to be about >>> futures, >>> which are directly inserted into code by the programmer, not >>> inferred >>> by the implementation for *every* argument of *every* call. >> >> The overhead is so low that a compiler could automatically insert >> them >> for every formal parameter of procedure calls (except when they are >> trivial expressions like constants, variable references, or calls to >> primitives with trivial expression arguments). > > Variable references are not "trivial" expressions w/r/t lazy > evaluation, unless they are immutable. The time of evaluation > can make a difference. > > Bear >
Unless I've misunderstood this thread... the point I'm making is that if you want a concurrent semantics for the evaluation of the parameters of a procedure call *then* the compiler could wrap a future around every non trivial parameter and the overhead would not be too high. I was responding to John Cowan's comment that spawning threads in such an aggressive way will cause poor performance. My response: not true if you use lazy task creation. Marc _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
