First draft of translation document

Brian Goetz brian.goetz at oracle.com
Thu May 20 08:40:52 PDT 2010


> Reasoning about this for the VM gets a lot easier if the VM knows for
> sure that the closure will not escape from its current stack frame. In
> other words, in code like this:
>
> list.filter(#(Person p) (p.age() < 20));
>
> assuming for a moment that filter is 'eager', that closure won't escape.

There's a bigger assumption here: that filter is explicitly sequential.  But 
I'd like it if filter() had the option to do the filtering in parallel in a 
fork-join pool!  Simplifying library-based parallelism was one of the explicit 
goals for this effort.

In any case this is the easy case, a "type 1".  Here, the closure is a "pure 
function" so all sorts of good things can happen.



More information about the lambda-dev mailing list