hg: valhalla/valhalla: Initial prototype of Lookup::defineClass to define a dynamic nestmate.
Remi Forax
forax at univ-mlv.fr
Tue Oct 23 20:28:21 UTC 2018
I'm currently building that branch :)
Rémi
----- Mail original -----
> De: "mandy chung" <mandy.chung at oracle.com>
> À: "valhalla-dev" <valhalla-dev at openjdk.java.net>
> Envoyé: Mardi 23 Octobre 2018 22:06:27
> Objet: hg: valhalla/valhalla: Initial prototype of Lookup::defineClass to define a dynamic nestmate.
> Changeset: 55aafa38f559
> Author: mchung
> Date: 2018-10-23 13:05 -0700
> URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/55aafa38f559
>
> Initial prototype of Lookup::defineClass to define a dynamic nestmate.
> javac is updated not to generate the bridge method for lambda.
> Also experiment to replace the use of Unsafe VM anonmyous class
> and constant pool patching. Unsafe::defineAnonymousClass supports
> the following properties:
>
> 1. Hidden / non-findable / unregister class
> The class is not registered in the system dictionary
> Should a non-findable class forbid any reference to this_class?
>
> 2. Weak class
> The class has a different life cycle as its defining class loader.
> i.e. it may be reclaimed when the class loader is alive
>
> 3. Access to VM annotations
> VM annotations are internal.
>
> 4. Live constants
> Explore the class data idea to replace the constant pool patching
> mechanism.
>
> ! make/hotspot/symbols/symbols-unix
> ! src/hotspot/share/aot/aotCodeHeap.cpp
> ! src/hotspot/share/aot/aotLoader.cpp
> ! src/hotspot/share/ci/ciField.cpp
> ! src/hotspot/share/ci/ciInstanceKlass.cpp
> ! src/hotspot/share/ci/ciInstanceKlass.hpp
> ! src/hotspot/share/classfile/classFileParser.cpp
> ! src/hotspot/share/classfile/classFileParser.hpp
> ! src/hotspot/share/classfile/classLoader.cpp
> ! src/hotspot/share/classfile/classLoaderData.cpp
> ! src/hotspot/share/classfile/classLoaderData.hpp
> ! src/hotspot/share/classfile/classLoaderDataGraph.cpp
> ! src/hotspot/share/classfile/classLoaderDataGraph.hpp
> ! src/hotspot/share/classfile/classLoaderExt.cpp
> ! src/hotspot/share/classfile/classLoaderHierarchyDCmd.cpp
> ! src/hotspot/share/classfile/classLoaderStats.cpp
> ! src/hotspot/share/classfile/defaultMethods.cpp
> ! src/hotspot/share/classfile/javaClasses.hpp
> ! src/hotspot/share/classfile/klassFactory.cpp
> ! src/hotspot/share/classfile/klassFactory.hpp
> ! src/hotspot/share/classfile/moduleEntry.hpp
> ! src/hotspot/share/classfile/systemDictionary.cpp
> ! src/hotspot/share/classfile/systemDictionary.hpp
> ! src/hotspot/share/classfile/systemDictionaryShared.cpp
> ! src/hotspot/share/include/jvm.h
> ! src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp
> ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp
> ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.cpp
> ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp
> ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp
> ! src/hotspot/share/memory/metaspace.cpp
> ! src/hotspot/share/memory/metaspace.hpp
> ! src/hotspot/share/memory/metaspace/printCLDMetaspaceInfoClosure.cpp
> ! src/hotspot/share/memory/metaspace/spaceManager.cpp
> ! src/hotspot/share/memory/metaspaceShared.cpp
> ! src/hotspot/share/memory/metaspaceTracer.cpp
> ! src/hotspot/share/oops/instanceKlass.cpp
> ! src/hotspot/share/oops/instanceKlass.hpp
> ! src/hotspot/share/oops/instanceMirrorKlass.inline.hpp
> ! src/hotspot/share/prims/jvm.cpp
> ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp
> ! src/hotspot/share/prims/methodHandles.cpp
> ! src/hotspot/share/prims/unsafe.cpp
> ! src/hotspot/share/runtime/reflection.cpp
> ! src/hotspot/share/runtime/vmStructs.cpp
> ! src/java.base/share/classes/java/lang/Class.java
> ! src/java.base/share/classes/java/lang/ClassLoader.java
> ! src/java.base/share/classes/java/lang/System.java
> ! src/java.base/share/classes/java/lang/invoke/GenerateJLIClassesHelper.java
> ! src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java
> ! src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java
> ! src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java
> ! src/java.base/share/classes/java/lang/invoke/MethodHandleNatives.java
> ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java
> ! src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java
> ! src/java.base/share/classes/jdk/internal/misc/JavaLangAccess.java
> ! src/java.base/share/native/libjava/ClassLoader.c
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java
> ! test/hotspot/gtest/memory/test_metaspace_allocation.cpp
> + test/jdk/java/lang/invoke/defineClass/DefineClassTest.java
> + test/jdk/java/lang/invoke/defineClass/DefineClassWithClassData.java
More information about the valhalla-dev
mailing list