From pietro.braione at unimib.it Wed Jul 2 17:21:04 2025 From: pietro.braione at unimib.it (Pietro Braione) Date: Wed, 2 Jul 2025 19:21:04 +0200 Subject: Another discrepancy between JVMS and Hotspot Message-ID: <467AD456-FAE9-446C-B392-75CD72AE6443@unimib.it> Hello to everyone. The JVMS v24 (but also all the JVMS since v8) at section 4.7.6 says that: "If the constant pool of a class or interface C contains at least one CONSTANT_Class_info entry (?4.4.1) which represents a class or interface that is not a member of a package, then there must be exactly one InnerClasses attribute in the attributes table of the ClassFile structure for C.? In attachment to this method you can find a class, generated from a standard LambdaForm, for which this is not true. The class LambdaForm$BMH.class has a CONSTANT_Class_info entry for a nested class (java/lang/invoke/BoundMethodHandle$Species_L) but no InnerClasses attribute. However Hotspot accepts this class. The LambdaForm from which this class was generated is: LambdaForm: BMH.reinvoke=Lambda(a0:L/SpeciesData,a1:L)=>{ t2:L=Species_L.argL0(a0:L); t3:L=MethodHandle.invokeBasic(t2:L,a1:L);t3:L} Best, Pietro Braione University of Milano-Bicocca From gavin.bierman at oracle.com Wed Jul 30 15:59:34 2025 From: gavin.bierman at oracle.com (Gavin Bierman) Date: Wed, 30 Jul 2025 15:59:34 +0000 Subject: non-normative information is italicized, not indented In-Reply-To: References: Message-ID: Hi Felix, Thanks for your email and interest in the JLS! Indeed, the formatting of the HTML and PDF versions of the specs are not aligned as they should be - you?re quite right. I had a go at sorting this out, but I had to revert as they revealed more deep-seated formatting and productions issues that I couldn?t quite sort out in time for JDK 25. So, you?ll have to endure the inconsistency for the next edition. Fingers crossed that I can figure out the fixes for JDK 26 :-) Many thanks again, Gavin On 10 Dec 2022, at 14:15, Felix Pahl wrote: Referring to this version of the JLS: https://docs.oracle.com/javase/specs/jls/se11/html/jls-1.html#jls-1.3 : Section 1.3 ("Notation") says that "non-normative information [...] is given in smaller, indented text." It's not actually indented (neither in the example given there, nor when this convention is used in the specification) but italicized. -------------- next part -------------- An HTML attachment was scrubbed... URL: