RFR: 8334714: Implement JEP 484: Class-File API [v7]
ExE Boss
duke at openjdk.org
Mon Oct 21 16:00:38 UTC 2024
On Mon, 21 Oct 2024 06:34:03 GMT, Adam Sotona <asotona at openjdk.org> wrote:
>> Class-File API is leaving preview.
>> This is a removal of all `@PreviewFeature` annotations from Class-File API.
>> It also bumps all `@since` tags and removes `jdk.internal.javac.PreviewFeature.Feature.CLASSFILE_API`.
>>
>> Please review.
>>
>> Thanks,
>> Adam
>
> Adam Sotona has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains nine commits:
>
> - Merge remote-tracking branch 'openjdk/master' into JDK-8334714-final
>
> # Conflicts:
> # src/java.base/share/classes/java/lang/classfile/AccessFlags.java
> # src/java.base/share/classes/java/lang/classfile/ClassBuilder.java
> # src/java.base/share/classes/java/lang/classfile/ClassElement.java
> # src/java.base/share/classes/java/lang/classfile/ClassFileTransform.java
> # src/java.base/share/classes/java/lang/classfile/ClassHierarchyResolver.java
> # src/java.base/share/classes/java/lang/classfile/ClassModel.java
> # src/java.base/share/classes/java/lang/classfile/ClassReader.java
> # src/java.base/share/classes/java/lang/classfile/ClassSignature.java
> # src/java.base/share/classes/java/lang/classfile/CodeBuilder.java
> # src/java.base/share/classes/java/lang/classfile/CodeElement.java
> # src/java.base/share/classes/java/lang/classfile/CodeModel.java
> # src/java.base/share/classes/java/lang/classfile/CompoundElement.java
> # src/java.base/share/classes/java/lang/classfile/FieldBuilder.java
> # src/java.base/share/classes/java/lang/classfile/FieldElement.java
> # src/java.base/share/classes/java/lang/classfile/Instruction.java
> # src/java.base/share/classes/java/lang/classfile/MethodBuilder.java
> # src/java.base/share/classes/java/lang/classfile/MethodElement.java
> # src/java.base/share/classes/java/lang/classfile/TypeKind.java
> # src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTableAttribute.java
> # src/java.base/share/classes/java/lang/classfile/attribute/LocalVariableTypeTableAttribute.java
> # src/java.base/share/classes/java/lang/classfile/attribute/RuntimeInvisibleAnnotationsAttribute.java
> # src/java.base/share/classes/java/lang/classfile/attribute/RuntimeVisibleAnnotationsAttribute.java
> # src/java.base/share/classes/java/lang/classfile/constantpool/AnnotationConstantValueEntry.java
> # src/java.base/share/classes/java/lang/classfile/constantpool/ConstantDynamicEntry.java
> # src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPool.java
> # src/java.base/share/classes/java/lang/classfile/constantpool/ConstantPoolBuilder.java
> # src/java.base/share/classes/java/lang/classfile/constantpool/ConstantValueEntry.java
> # src/java.base/share/classes/java/lang/classfile/constantpool/DynamicConstantPoolEntry.java
> # src/java.base/share/cl...
src/java.base/share/classes/java/lang/classfile/ClassFile.java line 1:
> 1: /*
It should probably be possible for `ClassFile::verify(…)` to be able to verify the bytecode of `java.lang.Object`, `java.lang.Class`, `java.lang.String`, and `java.lang.Throwable`, as the main reason the HotSpot verifier skips those is that there’s circular verification bootstrap dependencies between those, but the Class‑File API verifier uses the offline `ClassHierarchyResolver` instead for determining assignability checks.
https://github.com/openjdk/jdk/blob/18bcbf7941f7567449983b3f317401efb3e34d39/src/java.base/share/classes/jdk/internal/classfile/impl/verifier/VerifierImpl.java#L144-L150
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19826#discussion_r1809083465
More information about the compiler-dev
mailing list