f4ee5c6dccff8f7e037f95b26767e552ea93d41b |
|
31-Jan-2017 |
Narayan Kamath <narayan@google.com> |
MethodHandles: Expose hidden APIs that were recently implemented. Also addresses a handful of TODOs about changing @code to @link. Test: make checkapi docs Change-Id: I5472b2b1deeb2cd49b3abf9c113e46f6bd8f221f
|
0e8de7372de378e00c429dbf9d55526d433a7a21 |
|
24-Jan-2017 |
Narayan Kamath <narayan@google.com> |
MethodHandle: Implement MethodHandle.asCollector. Test: make test-art-host Change-Id: I73377c9b46d498bd932f7d6e6459c160b8e85217
|
86dc78f165d24514cb094db95e8bad99618626e9 |
|
20-Jan-2017 |
Narayan Kamath <narayan@google.com> |
MethodHandle: Implement invokeWithArguments. This is nothing but a spreader with no leading arguments. Test: make test-art-host Change-Id: Idee6e9c745c826619047d71355bbf3118d33f5ab
|
378d458718d98d264b58734c87568ee5de9a6781 |
|
17-Jan-2017 |
Narayan Kamath <narayan@google.com> |
MethodHandles: Implement spreader methods. Implements MethodHandle.asSpreader and MethodHandles.spreadInvoker. This is the reverse of var-args collection, and the Transformer implementation is symmetric with VarargsCollector (modulo inconsitencies in the API). Test: make test-art-host Change-Id: If4deaa52f14143115b573bb0616e2eb72e83f859
|
cce1c9e194b4082f00fd6aac2ef9beec75ff5500 |
|
17-Jan-2017 |
Narayan Kamath <narayan@google.com> |
MethodHandles: Unhide java.lang.invoke.* A handful of methods are not implemented yet, and remain hidden. Javadoc @links that reference these hidden methods have temporarily been converted to @code. The only notable Android specific change is the changing of link targets from a method in the MethodHandles class to another method in the same class to remove the explicit class reference (e.g. {@link MethodHandles#lookup} -> {@link #lookup}). This is to work around javadoc errors caused by these links Test: make docs Change-Id: Ie7a49b76de59ea957e117cb695a28cb1137dae4e
|
704b13a41cc7efd49acf66064109756a248fe0dc |
|
25-Nov-2016 |
Orion Hodson <oth@google.com> |
Revert "Revert "Method Handles: Add VarargsCollector."" Fixes component type of reference arrays which caused test failures in the interpreter when assignability checks were enabled. This reverts commit df3b54d0cd43fbde26a0a8d984b7a0b2e2a92f2e. Bug: 30550796 Test: ART_TEST_INTERPRETER_ACCESS_CHECKS=true m test-art-host-run-test-956-methodhandles Change-Id: I78a819cde9e07a385825772869852ea737de657d
|
df3b54d0cd43fbde26a0a8d984b7a0b2e2a92f2e |
|
25-Nov-2016 |
Orion Hodson <oth@google.com> |
Revert "Method Handles: Add VarargsCollector." This reverts commit 14e84c863b3ca946293c99afc9dc112e52fca4ca. Change-Id: I57858cc6df5aafe31baf0ad05c70ac1d440329a1
|
14e84c863b3ca946293c99afc9dc112e52fca4ca |
|
14-Nov-2016 |
Orion Hodson <oth@google.com> |
Method Handles: Add VarargsCollector. Enable support for methods with variable arity arguments. Test: m test-art-host-run-test-956-methodhandles Bug: 30550796 Change-Id: I22158c2180f308fff016cd3aebc4a1beac2a875a
|
6774aff0e542cbe31c02570916ff98c6337071df |
|
08-Nov-2016 |
Narayan Kamath <narayan@google.com> |
MethodHandle: Reintroduce @link / @linkplain. Addresses TODOs that were needed because MethodHandles wasn't present in the code base. Test: make docs Bug: 30550796 Change-Id: I25c790b6d3e66a3f288b9989e062b292c86b3e6e
|
0ab46853af9f5c16c877e1677d8d27b8fdecc2cd |
|
04-Nov-2016 |
Narayan Kamath <narayan@google.com> |
MethodHandles: Implement MethodHandle.bindTo. Bug: 30550796 Test: make test-art-host Change-Id: Id71d57e8786ebe2453da6a7c7df44bbd19a3a939
|
ff28f8512f99a9507f12b9eb600a374414735394 |
|
02-Nov-2016 |
Narayan Kamath <narayan@google.com> |
MethodHandles: Implement MethodHandle.asType. MethodHandles that are derived from asType calls declare a "nominal" type in addition to their "actual" type, the latter being the type of the target method being invoked in the case of non-transforming method handles. The runtime will need to check the callsite type against the "nominal" type in order to check for exactness in the sense of throwing a WMTE when there's no exact match, but will have to use the "actual" type in order to build stack frames or perform argument conversions. One minor drawback this change introduces is that it forces all method handle subclasses to be cloneable in order to be used with asType. This shouldn't be an issue in practice, given that we control this class hierarchy. Test: make test-art-host Bug : 30550796 Change-Id: I350a48a8cf70e2789c1c1d121f97c301d0640e54
|
4542b1f73a106b12187cd81c59ae68da792a75cf |
|
19-Oct-2016 |
Orion Hodson <oth@google.com> |
Getter/Setter support for invoke-polymorphic of invokeExact(). Test: make test-art-host Bug: 30550796 Change-Id: I21381c6b108226e050fc42d695326e2f52c4a2f7
|
faf8883397aed1411590edd1bf5b6681430a10f5 |
|
18-Oct-2016 |
Narayan Kamath <narayan@google.com> |
MethodHandles: Add support for method handle transforms [part 1] Defines a new invoke type (INVOKE_TRANSFORM) and support for invoking the transformer method. Full details provided in the companion ART change (commit 3f1e50841b70507a2619c031fa0b0b4791ffa386). bug: 30550796 Test: make test-art-host Change-Id: I643e8a818ec2e66f604477be9384aaf7a2671f9d
|
5bf2e16e7e789d8668c83851a1486e7bb1a286ff |
|
04-Oct-2016 |
Narayan Kamath <narayan@google.com> |
MethodHandle: Change values of "kind" constants. Easier to error-check on the ART side if the values are contiguous and start with 0. bug: 30550796 Test: make Change-Id: Id622467be55a8059c37660017859297f6f4693ba
|
54168f0e8137b9d2addc6e7bf723aaf1ee3fd744 |
|
22-Sep-2016 |
Narayan Kamath <narayan@google.com> |
Add basic implementation of Lookup.find{Virtual,Static,Constructor}. - Implemented using existing reflection APIs. - Access checking is performed in Java and not by the runtime. bug: 30550796 Test: make checkbuild Test: art/tools/run-libcore-tests.sh --mode=host --variant=X64 Change-Id: I3f65d96851272592c7ba0898ea9e34889adca48b
|
ed438115cf887c4541cb292244b8234c0aa19b1c |
|
15-Aug-2016 |
Narayan Kamath <narayan@google.com> |
java.lang.invoke: Add a concrete subclass of MethodHandle. For plain vanilla method handles that refer to an art field or a method and do not specify any transformations. bug: 30550796 Change-Id: Ia902fbd95cd3ef03f6f04d784bd50b7045c2f808
|
8b532c93d91102f2f3edf9a6b69e2ce9d2a3a8e6 |
|
27-Jul-2016 |
Narayan Kamath <narayan@google.com> |
java.lang.invoke: Add MethodHandle. - Addresses TODOs in MethodType that depended on the inclusion of java.lang.invoke.MethodHandle. - None of the functionality in this change is functional or testable currently. We need this because there are a few circular dependencies between the runtime implementation of polymorphic invokes and this class. - This change also adds dummy native implementations of invoke / invokeExact. These methods must be marked as native and must throw an UnsupportedOperation when invoked reflectively. bug: 30550796 test: make docs Change-Id: Ic9c3faa4be4fd3b443b9dab8f7c4f5e8f8c1187a
|
cc42201b8d47d4c03a69dcf6df4e58c1a11d32e5 |
|
21-Dec-2015 |
Paul Duffin <paulduffin@google.com> |
Deleting unused or broken files The tests removed from luni/src/test are testing files that no longer exist. It's possible that they provided some coverage of the code which is not provided for the OpenJDK code. The classes removed from ojluni/src/main are the ones not explicitly mentioned in the openjdk_java_files.mk. Change-Id: Id52d65d9b1f06e1a6e7afbd93336c7d12e0c3083
|
51b1b6997fd3f980076b8081f7f1165ccc2a4008 |
|
16-Feb-2015 |
Piotr Jastrzebski <haaawk@google.com> |
Initial import of OpenJdk files. Create new libcore/ojluni directory with src/main/java and src/main/native subdirectiories. Build ojluni into core-oj jar. Use openjdk classes from java.awt.font package. Copy all files from jdk/src/share/classes and jdk/src/solaris/classes directories in openjdk into libcore/ojluni/src/main/java. Copy following native files from openjdk to libcore/ojluni/src/main/native: jdk/src/solaris/native/java/io/canonicalize_md.c build/linux-amd64/include/classfile_constants.h jdk/src/share/native/java/net/DatagramPacket.c jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c jdk/src/share/native/java/lang/Double.c jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c jdk/src/solaris/native/java/io/FileDescriptor_md.c jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c jdk/src/share/native/java/io/FileInputStream.c jdk/src/solaris/native/sun/nio/ch/FileKey.c jdk/src/solaris/native/java/io/FileOutputStream_md.c jdk/src/solaris/native/java/io/FileSystem_md.c jdk/src/share/native/java/lang/Float.c jdk/src/share/native/java/net/Inet4Address.c jdk/src/solaris/native/java/net/Inet4AddressImpl.c jdk/src/share/native/java/net/Inet6Address.c jdk/src/solaris/native/java/net/Inet6AddressImpl.c jdk/src/share/native/java/net/InetAddress.c jdk/src/solaris/native/java/net/InetAddressImplFactory.c jdk/src/share/native/java/io/io_util.c jdk/src/solaris/native/sun/nio/ch/IOUtil.c jdk/src/share/native/java/io/io_util.h jdk/src/solaris/native/java/io/io_util_md.c jdk/src/solaris/native/java/io/io_util_md.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/java_io_FileDescriptor.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileInputStream.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileOutputStream.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileSystem.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_ObjectStreamClass.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_UnixFileSystem.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Double.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Float.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Integer.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Long.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Runtime.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Shutdown.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_StrictMath.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_String.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_System.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Thread.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Throwable.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_DatagramPacket.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4Address.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4AddressImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6Address.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6AddressImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddress.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddressImplFactory.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_NetworkInterface.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainDatagramSocketImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainSocketImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketInputStream.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOptions.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOutputStream.h jdk/src/share/native/java/lang/java_props.h jdk/src/solaris/native/java/lang/java_props_md.c jdk/src/share/native/java/util/zip/Adler32.c as java_util_zip_Adler32.c jdk/src/share/native/java/util/zip/CRC32.c as java_util_zip_CRC32.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_CRC32.h jdk/src/share/native/java/util/zip/Deflater.c as java_util_zip_Deflater.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Deflater.h jdk/src/share/native/java/util/zip/Inflater.c as java_util_zip_Inflater.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Inflater.h jdk/src/share/native/java/util/zip/ZipFile.c as java_util_zip_ZipFile.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_ZipFile.h jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h jdk/src/share/native/common/jlong.h jdk/src/solaris/native/common/jlong_md.h jdk/src/share/native/common/jni_util.c jdk/src/share/native/common/jni_util.h jdk/src/solaris/native/common/jni_util_md.c jdk/src/share/javavm/export/jvm.h jdk/src/solaris/javavm/export/jvm_md.h jdk/src/solaris/native/java/net/linux_close.c jdk/src/share/native/sun/misc/NativeSignalHandler.c jdk/src/solaris/native/sun/nio/ch/NativeThread.c jdk/src/share/native/java/net/net_util.c jdk/src/share/native/java/net/net_util.h jdk/src/solaris/native/java/net/net_util_md.c jdk/src/solaris/native/java/net/net_util_md.h jdk/src/solaris/native/java/net/NetworkInterface.c jdk/src/share/native/sun/nio/ch/nio.h jdk/src/solaris/native/sun/nio/ch/nio_util.h jdk/src/share/native/java/io/ObjectStreamClass.c jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c jdk/src/solaris/native/java/net/PlainSocketImpl.c jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c jdk/src/share/native/java/lang/Runtime.c jdk/src/share/native/java/lang/Shutdown.c jdk/src/share/native/sun/misc/Signal.c jdk/src/solaris/native/java/net/SocketInputStream.c jdk/src/solaris/native/java/net/SocketOutputStream.c jdk/src/share/native/java/lang/StrictMath.c jdk/src/share/native/java/lang/String.c build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_NativeSignalHandler.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_Signal.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/sun_net_spi_DefaultProxySelector.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileChannelImpl.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileDispatcherImpl.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileKey.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOStatus.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOUtil.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_NativeThread.h jdk/src/share/native/java/lang/System.c jdk/src/share/native/java/lang/Thread.c jdk/src/share/native/java/lang/Throwable.c jdk/src/solaris/native/java/io/UnixFileSystem_md.c jdk/src/solaris/native/java/lang/UNIXProcess_md.c jdk/src/share/native/java/util/zip/zip_util.c jdk/src/share/native/java/util/zip/zip_util.h Change-Id: Ib237df4e1b7b5b4d9f12e74d189e6ec9eed3c31d
|