Re: RFR: 8291360: Create entry points to expose low-level class file information [v4]

2022-08-04 Thread Harold Seigel
On Thu, 4 Aug 2022 12:51:33 GMT, Harold Seigel wrote: >> Please review this change to fix JDK-8291360. This fix adds entry points >> getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. >> The new entry points return the current class's class file version and its >> r

Re: RFR: 8291360: Create entry points to expose low-level class file information [v4]

2022-08-04 Thread David Holmes
On Thu, 4 Aug 2022 12:47:13 GMT, Harold Seigel wrote: >> I think it should match the underlying representation else it may cause >> someone trying to debug a failure to look at the wrong part of the flags >> value, not realizing the printed value has the opposite format of the actual >> raw va

Re: RFR: 8291360: Create entry points to expose low-level class file information [v4]

2022-08-04 Thread David Holmes
On Thu, 4 Aug 2022 12:51:33 GMT, Harold Seigel wrote: >> Please review this change to fix JDK-8291360. This fix adds entry points >> getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. >> The new entry points return the current class's class file version and its >> r

Re: RFR: 8291360: Create entry points to expose low-level class file information [v4]

2022-08-04 Thread Harold Seigel
On Thu, 4 Aug 2022 12:28:51 GMT, David Holmes wrote: >> I think it seems more natural to display the major version first, but I can >> change it if you prefer. > > I think it should match the underlying representation else it may cause > someone trying to debug a failure to look at the wrong pa

Re: RFR: 8291360: Create entry points to expose low-level class file information [v4]

2022-08-04 Thread Harold Seigel
> Please review this change to fix JDK-8291360. This fix adds entry points > getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. > The new entry points return the current class's class file version and its > raw access flags. > > The fix was tested by running Mach5 ti

Re: RFR: 8291360: Create entry points to expose low-level class file information [v3]

2022-08-04 Thread Coleen Phillimore
On Thu, 4 Aug 2022 12:28:51 GMT, David Holmes wrote: >> I think it seems more natural to display the major version first, but I can >> change it if you prefer. > > I think it should match the underlying representation else it may cause > someone trying to debug a failure to look at the wrong pa

Re: RFR: 8291360: Create entry points to expose low-level class file information [v3]

2022-08-04 Thread David Holmes
On Tue, 2 Aug 2022 12:45:49 GMT, Harold Seigel wrote: >> Seems odd to display as major:minor when it is stored as minor:major > > I think it seems more natural to display the major version first, but I can > change it if you prefer. I think it should match the underlying representation else it

Re: RFR: 8291360: Create entry points to expose low-level class file information [v3]

2022-08-02 Thread Roger Riggs
On Tue, 2 Aug 2022 14:12:44 GMT, Harold Seigel wrote: >> Please review this change to fix JDK-8291360. This fix adds entry points >> getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. >> The new entry points return the current class's class file version and its >> r

Re: RFR: 8291360: Create entry points to expose low-level class file information [v3]

2022-08-02 Thread Harold Seigel
On Tue, 2 Aug 2022 06:36:54 GMT, David Holmes wrote: >> No particular reason for choosing 59 other than it's different and less than >> 64. Test case Version64_65535 has a non-zero minor version. > > I think we should be testing for other real classfile versions that may be > encountered, such

Re: RFR: 8291360: Create entry points to expose low-level class file information [v2]

2022-08-02 Thread Harold Seigel
On Tue, 2 Aug 2022 06:24:10 GMT, David Holmes wrote: >> Harold Seigel has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Improved tests, added mulit-dimensional array tests, simplified new >> java.lang.Class API's > > src/java.base/share/c

Re: RFR: 8291360: Create entry points to expose low-level class file information [v3]

2022-08-02 Thread Harold Seigel
> Please review this change to fix JDK-8291360. This fix adds entry points > getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. > The new entry points return the current class's class file version and its > raw access flags. > > The fix was tested by running Mach5 ti

Re: RFR: 8291360: Create entry points to expose low-level class file information [v2]

2022-08-02 Thread Harold Seigel
On Tue, 2 Aug 2022 06:51:46 GMT, David Holmes wrote: >> Changed to display as major:minor version. > > Seems odd to display as major:minor when it is stored as minor:major I think it seems more natural to display the major version first, but I can change it if you prefer. - PR: ht

Re: RFR: 8291360: Create entry points to expose low-level class file information [v2]

2022-08-02 Thread David Holmes
On Tue, 2 Aug 2022 06:38:11 GMT, David Holmes wrote: >> Harold Seigel has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Improved tests, added mulit-dimensional array tests, simplified new >> java.lang.Class API's > > test/hotspot/jtreg/ru

Re: RFR: 8291360: Create entry points to expose low-level class file information [v2]

2022-08-01 Thread David Holmes
On Mon, 1 Aug 2022 18:51:31 GMT, Harold Seigel wrote: >> test/hotspot/jtreg/runtime/ClassFile/ClassFileVersionTest.java line 45: >> >>> 43: if (ver != expectedResult) { >>> 44: throw new RuntimeException( >>> 45: "expected " + expectedResult + ", got " + ver +

Re: RFR: 8291360: Create entry points to expose low-level class file information [v2]

2022-08-01 Thread David Holmes
On Mon, 1 Aug 2022 13:30:21 GMT, Harold Seigel wrote: >> src/hotspot/share/prims/jvm.cpp line 4064: >> >>> 4062: assert(c->is_instance_klass(), "must be"); >>> 4063: InstanceKlass* ik = InstanceKlass::cast(c); >>> 4064: return (ik->minor_version() << 16) | ik->major_version(); >> >> I'm c

Re: RFR: 8291360: Create entry points to expose low-level class file information [v2]

2022-08-01 Thread David Holmes
On Mon, 1 Aug 2022 13:26:29 GMT, Harold Seigel wrote: >> src/java.base/share/classes/java/lang/Class.java line 4698: >> >>> 4696: * >>> 4697: * If the class is an array type then the access flags of the >>> component type is >>> 4698: * returned. If the class is a primitive then

Re: RFR: 8291360: Create entry points to expose low-level class file information [v2]

2022-08-01 Thread David Holmes
On Mon, 1 Aug 2022 18:51:10 GMT, Harold Seigel wrote: >> Please review this change to fix JDK-8291360. This fix adds entry points >> getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. >> The new entry points return the current class's class file version and its >> r

Re: RFR: 8291360: Create entry points to expose low-level class file information [v2]

2022-08-01 Thread Harold Seigel
On Fri, 29 Jul 2022 21:08:43 GMT, Roger Riggs wrote: >> Harold Seigel has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Improved tests, added mulit-dimensional array tests, simplified new >> java.lang.Class API's > > test/hotspot/jtreg/ru

Re: RFR: 8291360: Create entry points to expose low-level class file information [v2]

2022-08-01 Thread Harold Seigel
On Sun, 31 Jul 2022 22:02:11 GMT, David Holmes wrote: >> Harold Seigel has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Improved tests, added mulit-dimensional array tests, simplified new >> java.lang.Class API's > > src/hotspot/share/in

Re: RFR: 8291360: Create entry points to expose low-level class file information [v2]

2022-08-01 Thread Harold Seigel
On Mon, 1 Aug 2022 18:51:10 GMT, Harold Seigel wrote: >> Please review this change to fix JDK-8291360. This fix adds entry points >> getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. >> The new entry points return the current class's class file version and its >> r

Re: RFR: 8291360: Create entry points to expose low-level class file information [v2]

2022-08-01 Thread Harold Seigel
> Please review this change to fix JDK-8291360. This fix adds entry points > getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. > The new entry points return the current class's class file version and its > raw access flags. > > The fix was tested by running Mach5 ti

Re: RFR: 8291360: Create entry points to expose low-level class file information

2022-08-01 Thread Roger Riggs
On Mon, 1 Aug 2022 16:38:48 GMT, Harold Seigel wrote: >> test/hotspot/jtreg/runtime/ClassFile/classAccessFlagsRaw.jcod line 25: >> >>> 23: */ >>> 24: >>> 25: // Class with ACC_SUPER set >> >> Can these classes be defined more succinctly either in Java or .asm? > > The jcod test files are rela

Re: RFR: 8291360: Create entry points to expose low-level class file information

2022-08-01 Thread Roger Riggs
On Mon, 1 Aug 2022 16:44:22 GMT, Harold Seigel wrote: >> My companion question was whether the native code can for efficiently map >> from array class to component type than Java. > > I don't know whether Java or the JVM is faster but I would rather keep this > code in Java so that I don't have

Re: RFR: 8291360: Create entry points to expose low-level class file information

2022-08-01 Thread Harold Seigel
On Mon, 1 Aug 2022 14:04:22 GMT, Roger Riggs wrote: >> Though in this case the Java code has defined behaviour for array types so >> it is correct for the VM to assume this is not an array type and to assert >> if it is. > > My companion question was whether the native code can for efficiently

Re: RFR: 8291360: Create entry points to expose low-level class file information

2022-08-01 Thread Harold Seigel
On Fri, 29 Jul 2022 21:21:43 GMT, Roger Riggs wrote: >> Please review this change to fix JDK-8291360. This fix adds entry points >> getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. >> The new entry points return the current class's class file version and its >> ra

Re: RFR: 8291360: Create entry points to expose low-level class file information

2022-08-01 Thread Harold Seigel
On Sun, 31 Jul 2022 22:22:24 GMT, David Holmes wrote: >> Please review this change to fix JDK-8291360. This fix adds entry points >> getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. >> The new entry points return the current class's class file version and its >> r

Re: RFR: 8291360: Create entry points to expose low-level class file information

2022-08-01 Thread Roger Riggs
On Sat, 30 Jul 2022 07:45:31 GMT, David Holmes wrote: >> It is usual for the Java code to do such checks and throw exceptions, so >> that the VM assumes it is correct and only asserts incase something has been >> missed on the Java side. > > Though in this case the Java code has defined behavio

Re: RFR: 8291360: Create entry points to expose low-level class file information

2022-08-01 Thread Harold Seigel
On Sun, 31 Jul 2022 22:05:15 GMT, David Holmes wrote: >> Please review this change to fix JDK-8291360. This fix adds entry points >> getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. >> The new entry points return the current class's class file version and its >> r

Re: RFR: 8291360: Create entry points to expose low-level class file information

2022-07-31 Thread David Holmes
On Fri, 29 Jul 2022 18:02:46 GMT, Harold Seigel wrote: > Please review this change to fix JDK-8291360. This fix adds entry points > getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. > The new entry points return the current class's class file version and its > raw

Re: RFR: 8291360: Create entry points to expose low-level class file information

2022-07-30 Thread David Holmes
On Sat, 30 Jul 2022 07:44:11 GMT, David Holmes wrote: >> Or, Can the VM do this traversal as/more efficiently than doing at the java >> level? > > It is usual for the Java code to do such checks and throw exceptions, so that > the VM assumes it is correct and only asserts incase something has b

Re: RFR: 8291360: Create entry points to expose low-level class file information

2022-07-30 Thread David Holmes
On Fri, 29 Jul 2022 21:19:27 GMT, Roger Riggs wrote: >> src/hotspot/share/prims/jvm.cpp line 4059: >> >>> 4057: return JVM_CLASSFILE_MAJOR_VERSION; >>> 4058: } >>> 4059: assert(!java_lang_Class::as_Klass(mirror)->is_array_klass(), >>> "unexpected array class"); >> >> Can this throw Ill

Re: RFR: 8291360: Create entry points to expose low-level class file information

2022-07-29 Thread Roger Riggs
On Fri, 29 Jul 2022 21:05:19 GMT, Roger Riggs wrote: >> Please review this change to fix JDK-8291360. This fix adds entry points >> getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. >> The new entry points return the current class's class file version and its >> ra

Re: RFR: 8291360: Create entry points to expose low-level class file information

2022-07-29 Thread Roger Riggs
On Fri, 29 Jul 2022 18:02:46 GMT, Harold Seigel wrote: > Please review this change to fix JDK-8291360. This fix adds entry points > getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. > The new entry points return the current class's class file version and its > raw

Re: RFR: 8291360: Create entry points to expose low-level class file information

2022-07-29 Thread Harold Seigel
On Fri, 29 Jul 2022 18:12:22 GMT, Joe Darcy wrote: >> Please review this change to fix JDK-8291360. This fix adds entry points >> getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. >> The new entry points return the current class's class file version and its >> raw

Re: RFR: 8291360: Create entry points to expose low-level class file information

2022-07-29 Thread Joe Darcy
On Fri, 29 Jul 2022 18:02:46 GMT, Harold Seigel wrote: > Please review this change to fix JDK-8291360. This fix adds entry points > getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. > The new entry points return the current class's class file version and its > raw

RFR: 8291360: Create entry points to expose low-level class file information

2022-07-29 Thread Harold Seigel
Please review this change to fix JDK-8291360. This fix adds entry points getClassFileVersion() and getClassAccessFlagsRaw() to class java.lang.Class. The new entry points return the current class's class file version and its raw access flags. The fix was tested by running Mach5 tiers 1-2 on L