CFV: New JDK9 Reviewer: Robert Field
Jan Lahoda
jan.lahoda at oracle.com
Thu Dec 3 20:06:24 UTC 2015
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