Lambda Expressions Backported to Java 7, 6 and 5

Remi Forax forax at univ-mlv.fr
Wed Jul 24 09:09:43 PDT 2013


On 07/24/2013 04:24 PM, Brian Goetz wrote:
> Nice work.  It was part of the design process to enable a mechanism like this; it is nice to see this proven and satisfying to see that it was so simple to implement.
>
> There will in fact be a small change to the metafactory API before GA.
>
> Sent from my iPad

Yes, nice work.
I think your code will work with the new metafactory protocol too,
because you read the bootstrap arguments in a generic way (using 
asmToInvokerType).

There is a release of ASM (ASM5_ALPHA) that supports the Java 8 bytecode but
this version is not available on maven central.

I really like the way you capture the emitted bytecode of the classes 
generated by the lambda metafactory,
it's a really nice hack but as you said it only works if the metafactory 
generate one class by callsite,
something that may be not true in the future.

Rémi

>
> On Jul 24, 2013, at 4:40 AM, Esko Luontola <esko.luontola at gmail.com> wrote:
>
>> Hi all,
>>
>> Thought you might want to know about this:
>>
>> http://blog.orfjackal.net/2013/07/lambda-expressions-backported-to-java-7.html
>> https://github.com/orfjackal/retrolambda
>>
>> And thanks for developing the lambdas. :)
>>
>> I would just like to know that what is the probability for the
>> implementation of LambdaMetafactory or InnerClassLambdaMetafactory being
>> changed before the GA release of JDK 8?
>>
>> Currently Retrolambda relies on the fact that LambdaMetafactory
>> dynamically generates exactly one class per each invocation of
>> LambdaMetafactory's methods. Also it relies on the naming pattern of the
>> generated lambda class and the synthetic methods in the class containing
>> the lambda. If any of those implementation details change, I'll have to
>> update Retrolambda.
>>
>> -- 
>> Esko Luontola
>> www.orfjackal.net
>>



More information about the lambda-dev mailing list