CFV: New JDK9 Reviewer: Robert Field
Brian Goetz
brian.goetz at oracle.com
Fri Dec 4 14:02:03 UTC 2015
Vote: yes
On 12/3/2015 3:06 PM, Jan Lahoda wrote:
> I hereby nominate Robert Field to JDK 9 Reviewer.
>
> Robert is the lead engineer on JShell for JDK 9, previously he
> developed the compiler and runtime for lambda, he was the lead
> engineer / architect for JDI, JDWP, JVMTI, JVMDI, and javadoc doclets.
> Robert authored and contributed at least 30 changesets to the
> langtools repository and 18 to the jdk repository (listed below).
>
> Votes are due by 17 Dec 2015.
>
> Only current JDK 9 Reviewers [1] are eligible to vote
> on this nomination. Votes must be cast in the open by replying
> to this mailing list.
>
> For Three-Vote Consensus voting instructions, see [2].
>
> Jan
>
> [1] http://openjdk.java.net/census#jdk9
> [2] http://openjdk.java.net/projects/#reviewer-vote
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/b88766917972c1132ff8a6f909144eb194ed5a09
>
> 8035776: Consistent Lambda construction
> Reviewed-by: ahgross, briangoetz, dlsmith
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/379bf638c4487a680175d7782d5d760dab51418f
>
> 8032711: Issue with Lambda in handling
> 8032704: Issues with lib perm in Lambda
> Reviewed-by: jrose, ahgross, briangoetz
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/d9d3705a992f0db39d0f3560fe620c29ccb4fea1
>
> 8025868: Several lang/LMBD JCK tests fail with
> java.lang.BootstrapMethodError
> Summary: Wildcard marker interfaces can cause duplicate implemented
> interfaces in generated lambda class
> Reviewed-by: briangoetz
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/88acc99132e2562569bfca99105dbb47b7e0fdf4
>
> 8027176: Remove redundant jdk/lambda/vm/DefaultMethodsTest.java
> Reviewed-by: ksrini
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/71ecbde5e5e47bc5e98679737d320475fe11f8c0
>
> 8025631: Enhance Lambda construction
> Reviewed-by: ksrini, ahgross
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/7736abdf080586f4aa47d930833f86fe542b49d2
>
> 8021186: jdk/lambda/vm/DefaultMethodsTest.java fails
> Summary: remove DefaultMethodsTest from jdk/test/problemList.txt
> Reviewed-by: mduigou
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/1b3616c4a836a71dd12bc46d91e86ab9f5599bd3
>
> 8020849: jdk/lambda/vm/DefaultMethodsTest.java
> Summary: Bridge generation has been removed from the VM. Fix is to
> remove tests that no longer make sense.
> Reviewed-by: ksrini
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/8d8b809dd29426b28d1a7a28bfd671d81a9bb47a
>
> 8010433: Remove lambda metafactory work-around to JDK-8005119
> Summary: Restore invokespecial to lambda metafactory
> Reviewed-by: ksrini
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/bd6fcc5eebb8b656581d65e8c3c534e73b14b218
>
> 8020816: Metafactory crashes on code with method reference
> 8021050: MethodHandleInfo throws exception when method handle is to a
> method with @CallerSensitive
> Summary: Fixed by 8008688 - this is a test to confirm the above fixed
> Reviewed-by: vlivanov
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/71059bca036a16bb4dc1774a737250c0fdf2ecf0
>
> 8016761: Lambda metafactory - incorrect type conversion of constructor
> method handle
> Reviewed-by: jrose
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/989049977d049c7c9c3cea56a3f753e3ce386d39
>
> 8015402: Lambda metafactory should not attempt to determine bridge
> methods
> Summary: paired with 8013789: Compiler should emit bridges in interfaces
> Reviewed-by: twisti
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/06dfdfa8c3e66c145bdbe7af33c8575ca67a7c13
>
> 8012028: Metafactory-generated lambda classes should be final
> 8008941: isSynthetic() returns false for lambda instances
> Reviewed-by: mduigou
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/e2cd40d7567c2cf42755bac9db92b79fb42cd1df
>
> 8011805: Update sun.tools.java class file reading/writing support to
> include the new constant pool entries
> Reviewed-by: mduigou, alanb
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/5ebc6242171744b3b7352ab4113b7842477f19f3
>
> 8008770: SerializedLambda incorrect class loader for lambda
> deserializing class
> Summary: current thread's context ClassLoader was used to load class
> by name, pass class not name in serialization (Thank you Peter Levart
> for test and prototype. Thank you Sundar and Peter for unofficial
> reviews)
> Reviewed-by: forax
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/1da987f0311aa461f555d9e13af2e93a0121d5c5
>
> 8008356: Test LambdaSerialization.java failing
> Summary: run in /othervm mode
> Reviewed-by: ksrini
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/7748ffdca16abe2c484829ab094284f76c1223fe
>
> 8004970: Implement serialization in the lambda metafactory
> Reviewed-by: forax
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/896d4af2ebfd39624b8ccfff0e0f4c342d4b3dd1
>
> 8003881: Prevent lambda implementing inner classes from allowing the
> creation of new instances
> Summary: Lambda implementing inner classes now has private constructor
> (thanks Kumar)
> Reviewed-by: ksrini
>
> http://hg.openjdk.java.net/jdk9/dev/jdk/rev/6302932b7380a4197f74b1af26c676d27d22a5af
>
> 8000806: Implement runtime lambda metafactory
> Summary: Implement lambda invokedynamic bootstrap by generating at
> runtime an inner class that implements the functional interface
> Reviewed-by: twisti
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/52227644abfa4692e5183722bfe7396be6fe7ab9
>
> 8068488: Facilitate extension of the javac parser -- missing modifier
> Reviewed-by: jjg
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/47926c2903556faa4d73afda9208e426c389a41f
>
> 8067384: Facilitate extension of the javac parser
> Reviewed-by: jjg
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/3c5de506a1f27f76e1d2f414056899e1a679cc93
>
> 8058112: Invalid BootstrapMethod for constructor/method reference
> Summary: Bridge method references with functional interface method
> parameters of intersection type
> Reviewed-by: vromero, dlsmith
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/7193d3fefda64af7a2dc935943ecfc467e4002aa
>
> 8056051: int[]::clone causes "java.lang.NoClassDefFoundError: Array"
> Reviewed-by: mcimadamore, vromero
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/2b6b96ed3878e062fb3829a2254fa991bb0a5237
>
> 8048121: javac complex method references: revamp and simplify
> 8038776: VerifyError when running successfully compiled java class
> Summary: Add tests missing from the push of 8037404
> Reviewed-by: dlsmith, vromero
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/97731dc59ef620e2c2deacc56991b2e11005d147
>
> 8037404: javac NPE or VerifyError for code with constructor reference
> of inner class
> 8047341: lambda reference to inner class in base class causes
> LambdaConversionException
> 8044748: JVM cannot access constructor though ::new reference although
> can call it directly
> 8044737: Lambda: NPE while obtaining method reference through lambda
> expression
> Summary: revamp and simplify handling of complex method references
> Reviewed-by: dlsmith, vromero
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/173f27d6e81f813d08d3bf9a3d26dd5651d13c97
>
> 8046060: Different results of floating point multiplication for lambda
> code block
> Summary: propogate strictfp into lambda body
> Reviewed-by: vromero, jlahoda
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/689266bbcd6af2cc9ffce46cfd3d56ae7bfdd7c7
>
> 8029852: Bad code generated (VerifyError) when lambda instantiates
> enclosing local class and has captured variables
> 8029725: Lambda reference to containing local class causes javac
> infinite recursion
> Reviewed-by: vromero, jlahoda, dlsmith
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/c2200da8ec5bd4bfabc80be1b753645c76edd5ee
>
> 8036942: javac generates incorrect exception table for multi-catch
> statements inside a lambda
> Summary: Union type info lost and also union type is not processed by
> TreeMaker.Type -- address by using existing tree, thus by-passing such
> issues.
> Reviewed-by: vromero, jlahoda
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/337cf1c6361876b3ca9922e16179f38ee720ab20
>
> 8038420: Lambda returning post-increment generates wrong code
> Reviewed-by: vromero, jlahoda
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/4a1443738f7cc341e881483e5ad7d3d725ad08db
>
> 8037935: Javac -- final local String var referenced in binary/unary op
> in lambda produces code that does not verify
> Summary: Remove over-zealous Attr optimization breaking lambdas
> Reviewed-by: jjg, vromero
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/6503222744ea8ac044cb876aa89f62eb024f9b89
>
> 8030626: java.lang.VerifyError: Bad return type when lambda's body is
> in parentheses
> Summary: properly type convert the body of a lambda expression
> (forward port to JDK9 of 8029558)
> Reviewed-by: vromero
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/4fa835472e3c49cc93b3532f5c9e80e22f1384a1
>
> 8028739: javac generates incorrect descriptor for MethodHandle::invoke
> Summary: introduce special handling for signature polymorphic methods
> Reviewed-by: jjg
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/860f1d21763a409c517b63e8a391cc75a47f54ba
>
> 8027220: DefaultMethodsTest: Change test to match spec
> Reviewed-by: ksrini
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/32ea6ccb7607740bc77e88aeb4b6c0959cc793aa
>
> 8022720: Method refeerences - private method should be accessible
> (nested classes)
> Reviewed-by: jjg, ksrini
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/6cd16d8ed2b987d6c79781e8dff0f37d0d841300
>
> 8023668: Desugar serializable lambda bodies using more robust naming
> scheme
> Summary: lambda / bridged method-reference naming overhaul
> Reviewed-by: ksrini, briangoetz
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/1ce8405af5fe99936ec3dbf52d1bacad0fdf300e
>
> 8012557: Implement lambda methods on interfaces as private
> 8016320: Method reference in subinterface of type I.super::foo
> produces exception at runtime
> Summary: Now that the VM supports interface instance private methods,
> lambda methods and lambda bridges are always private. Access is now
> through invokespecial.
> Reviewed-by: vromero, jlahoda
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/dee28dd47e1258b98a6ec76284df5d7736ac7373
>
> 8025548: langtools test
> tools/javac/lambda/methodReference/BridgeMethod.java incorrectly
> assumes no other methods generated in lambda class
> Reviewed-by: vromero
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/31ef33db5e0eef5c1f6c892b036e5b0ec4872b7c
>
> 8010006: NPE in javac with interface super in lambda
> Reviewed-by: mcimadamore
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/c09b7234cdedc24618ae864ebba62c5f74c1ae0b
>
> 8012556: Implement lambda methods on interfaces as static
> 8006140: Javac NPE compiling Lambda expression on initialization
> expression of static field in interface
> Summary: Lambdas occurring in static contexts or those not needing
> instance information should be generated into static methods. This has
> long been the case for classes. However, as a work-around to the lack
> of support for statics on interfaces, interface lambda methods have
> been generated into default methods. For lambdas in interface static
> contexts (fields and static methods) this causes an NPE in javac
> because there is no 'this'. MethodHandles now support static methods
> on interfaces. This changeset allows lambda methods to be generated as
> static interface methods. An existing bug in Hotspot (8013875) is
> exposed in a test when the "-esa" flag is used. This test and another
> test that already exposed this bug have been marked with @ignore.
> Reviewed-by: mcimadamore
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/68142e69cafbf189388b082af9a0d1156f06bc07
>
> 8014023: When a method reference to a local class constructor is
> contained in a method whose number of parameters matches the number of
> constructor parameters compilation fails
> Reviewed-by: mcimadamore
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/8e27e84de2e92d8d4b108499fecc3a5a3082622e
>
> 8011591: BootstrapMethodError when capturing constructor ref to local
> classes
> Reviewed-by: mcimadamore
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/fbbf5376e7e4c3faee37b0f6acf72d55e3afb4b9
>
> 8010010: NPE generating serializedLambdaName for nested lambda
> Reviewed-by: mcimadamore
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/d0ae21e3a382633ac86324fd0c15136fc325b685
>
> 8009742: Bad lambda name for lambda in a static initializer or ctor
> Reviewed-by: mcimadamore
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/a02c3ddc182b19a5c0bd868cc06b00a87f54e98a
>
> 8009582: Method reference generic constructor gives:
> IllegalArgumentException: Invalid lambda deserialization
> Reviewed-by: mcimadamore
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/cd7340a84bb8abc814193a4f38a26cd624f0a6f0
>
> 8008405: Now that metafactory is in place, add javac lambda
> serialization tests
> Summary: Tests part of original langtools serialization review.
> Reviewed-by: mcimadamore
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/f1f605f85850e2a980bf8dad2171ea414b171508
>
> 8004969: Generate $deserializeLambda$ method
> 8006763: super in method reference used in anonymous class -
> ClassFormatError is produced
> 8005632: Inner classes within lambdas cause build failures
> 8005653: Lambdas containing inner classes referencing external type
> variables do not correctly parameterize the inner classes
> Reviewed-by: mcimadamore
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/d898d9ee352f4a0eae6b67bd1996c9bcef071d6e
>
> 8003639: convert lambda testng tests to jtreg and add them
> Reviewed-by: mcimadamore
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/e6b1abdc11ca9e89ae8c4276fe01b543fb9b26da
>
> 8003306: Compiler crash: calculation of inner class access modifier
> Summary: Fix binary sense lost in transition to hasTag
> Reviewed-by: mcimadamore
>
> http://hg.openjdk.java.net/jdk9/dev/langtools/rev/a65971893c50c58701ee0aa3674a65050278a315
>
> 8000694: Add generation of lambda implementation code: invokedynamic
> call, lambda method, adaptor methods
> Summary: Add lambda implementation code with calling/supporting code
> elsewhere in the compiler
> Reviewed-by: mcimadamore, jjg
More information about the jdk9-dev
mailing list