lambda/lambda/langtools: initial lambda push; the current prototype suuports the following features:

maurizio cimadamore maurizio.cimadamore at oracle.com
Thu May 27 12:47:21 PDT 2010


Hi
The prototype supports the syntax described in the strawman proposal 
[1]. You might want to look at some of the regression tests, in 
particular LambdaExpr01/LambdaExpr02 [2,3] to get an idea of what the 
syntax look like.

Thanks
Maurizio

[1] 
http://mail.openjdk.java.net/pipermail/lambda-dev/attachments/20100212/af8d2cc5/attachment-0001.txt
[2] 
http://hg.openjdk.java.net/lambda/lambda/langtools/diff/7704dcd17e0b/test/tools/javac/lambda/LambdaExpr01.java
[3] 
http://hg.openjdk.java.net/lambda/lambda/langtools/diff/7704dcd17e0b/test/tools/javac/lambda/LambdaExpr02.java

On 27/05/10 18:45, Nathan Bryant wrote:
> This is great! But what is the syntax?
>
> -----Original Message-----
> From: lambda-dev-bounces at openjdk.java.net
> [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of
> maurizio.cimadamore at oracle.com
> Sent: Thursday, May 27, 2010 1:33 PM
> To: lambda-dev at openjdk.java.net
> Subject: hg: lambda/lambda/langtools: initial lambda push;the current
> prototype suuports the following features:
>
> Changeset: 7704dcd17e0b
> Author:    mcimadamore
> Date:      2010-05-27 18:11 +0100
> URL:
> http://hg.openjdk.java.net/lambda/lambda/langtools/rev/7704dcd17e0b
>
> initial lambda push; the current prototype suuports the following
> features:
> *) function types syntax (optionally enabled with -XDallowFunctionTypes)
> *) function types subtyping
> *) full support for lambda expression of type 1 and 2
> *) inference of thrown types/return type in a lambda
> *) lambda conversion using rules specified in v0.1.5 draft
> *) support references to 'this' (both explicit and implicit)
> *) translation using method handles
>
> The modified script build of the langtools repository now generates an
> additional jarfile called javacrt.jar which contains an helper class to
> be used during SAM conversion; after the build, the generated scripts
> javac/java will take care of automatically setting up the required
> dependencies so that code containing lambda expressions can be compiled
> and executed.
>
> ! make/build.properties
> ! make/build.xml
> + src/share/bin/java.sh-template
> ! src/share/bin/launcher.sh-template
> + src/share/classes/com/sun/runtime/ProxyHelper.java
> + src/share/classes/com/sun/source/tree/FunctionTypeTree.java
> + src/share/classes/com/sun/source/tree/LambdaExpressionTree.java
> ! src/share/classes/com/sun/source/tree/Tree.java
> ! src/share/classes/com/sun/source/tree/TreeVisitor.java
> ! src/share/classes/com/sun/source/util/SimpleTreeVisitor.java
> ! src/share/classes/com/sun/source/util/TreeScanner.java
> ! src/share/classes/com/sun/tools/javac/code/Flags.java
> ! src/share/classes/com/sun/tools/javac/code/Printer.java
> ! src/share/classes/com/sun/tools/javac/code/Scope.java
> ! src/share/classes/com/sun/tools/javac/code/Source.java
> ! src/share/classes/com/sun/tools/javac/code/Symtab.java
> ! src/share/classes/com/sun/tools/javac/code/Type.java
> ! src/share/classes/com/sun/tools/javac/code/Types.java
> ! src/share/classes/com/sun/tools/javac/comp/Attr.java
> ! src/share/classes/com/sun/tools/javac/comp/Check.java
> ! src/share/classes/com/sun/tools/javac/comp/Flow.java
> ! src/share/classes/com/sun/tools/javac/comp/Lower.java
> ! src/share/classes/com/sun/tools/javac/comp/Resolve.java
> ! src/share/classes/com/sun/tools/javac/comp/TransTypes.java
> ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java
> ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java
> ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java
> ! src/share/classes/com/sun/tools/javac/parser/Scanner.java
> ! src/share/classes/com/sun/tools/javac/parser/Token.java
> ! src/share/classes/com/sun/tools/javac/resources/compiler.properties
> ! src/share/classes/com/sun/tools/javac/tree/JCTree.java
> ! src/share/classes/com/sun/tools/javac/tree/Pretty.java
> ! src/share/classes/com/sun/tools/javac/tree/TreeCopier.java
> ! src/share/classes/com/sun/tools/javac/tree/TreeMaker.java
> ! src/share/classes/com/sun/tools/javac/tree/TreeScanner.java
> ! src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java
> ! src/share/classes/com/sun/tools/javac/util/Names.java
> !
> src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java
> + test/tools/javac/lambda/LambdaCapture01.java
> + test/tools/javac/lambda/LambdaConv01.java
> + test/tools/javac/lambda/LambdaExpr01.java
> + test/tools/javac/lambda/LambdaExpr02.java
> + test/tools/javac/lambda/LambdaScope01.java
> + test/tools/javac/lambda/NakedThis.java
> + test/tools/javac/lambda/NakedThis.out
>
>
>



More information about the lambda-dev mailing list