Re: JEP 306 - always strictfp semantics
"ebruneton" (via asm Mailing List) <[email protected]> Thu, 13 May 2021 15:05:13 +0200 (CEST)
| Newsgroups | gmane.comp.java.objectweb.asm |
|---|---|
| Message-ID | <659408527.123154843.1620911113371.JavaMail.root@zimbra73-e12.priv.proxad.net> |
This is a multi-part message in MIME format... ------------=_1620911124-4557-9 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable I didn't say to use 0xFFFF, but a value larger than that (for instance 0x40= 000). ----- Mail original ----- > De: "Eugene Kuleshov" <[email protected]> > =C3=80: "Eric BRUNETON" <[email protected]>, "asm" <[email protected]> > Envoy=C3=A9: Jeudi 13 Mai 2021 14:53:34 > Objet: Re: [asm] JEP 306 - always strictfp semantics >=20 > Eric, wouldn't using the 0xFFFF value restrict the API for any other > potential changes in the flag values? > Or do you think those will not be possible? >=20 > regards, > Eugene >=20 >=20 >=20 > On Thu, May 13, 2021 at 8:45 AM <[email protected]> wrote: > > > > I like the idea of using a value > 65535 for > > ACC_STRICT_NEW_SEMANTICS. > > > > Eric > > > > ----- Mail original ----- > > > De: "Eugene Kuleshov" <[email protected]> > > > =C3=80: "Remi Forax" <[email protected]> > > > Cc: "asm" <[email protected]> > > > Envoy=C3=A9: Vendredi 7 Mai 2021 14:09:24 > > > Objet: Re: [asm] JEP 306 - always strictfp semantics > > > > > > On Fri, May 7, 2021 at 8:01 AM <[email protected]> wrote: > > > > > > > > The bigger problem is how ASM would map the ACC_STRICT bit > > > > > flag > > > > > value when it will be reused by VM in the future after v17. > > > > > Having two constants with the same 0x800 value would be a > > > > > bad > > > > > idea > > > > > and the int type used for the flags parameters might be > > > > > already > > > > > at its > > > > > capacity. > > > > > > > > It's a solution that i've not listed, > > > > when we introduce ACC_STRICT_NEW_SEMANTICS, we use a value > > > > > 65535 > > > > (it's an int so we have a lot of empty space, we only have one > > > > bit > > > > used by ACC_CONSTRUCTOR) so the ClassWriter can make the > > > > difference between ACC_STRICT and ACC_STRICT_NEW_SEMANTICS and > > > > then lower ACC_STRICT_NEW_SEMANTICS to the value of ACC_STRICT > > > > (0x800). > > > > > > > > The main issue i see is that ACC_STRICT_NEW_SEMANTICS will not > > > > have > > > > the value 0x800 as the VM spec will say so if a visitor call a > > > > method from another library that expect > > > > ACC_STRICT_NEW_SEMANTICS > > > > to be 0x800, it will not work. > > > > > > Good point. Remapping will be required. > > > Perhaps that can be mitigated by requiring both bits ACC_STRICT > > > | > > > ACC_STRICT_NEW_SEMANTICS to be present (enforce in the > > > CheckClassVisitor). > > > Maybe the ACC_STRICT_NEW_SEMANTICS constant could have more > > > than > > > one > > > bit (though that may break existing code that is using bit > > > operations). > > > > > > regards, > > > Eugene > > > > > > > > > > > On Fri, May 7, 2021 at 6:20 AM Remi Forax <[email protected]> > > > > > wrote: > > > > >> > > > > >> Hi all, > > > > >> the JEP 306 [1, 2] will be soon integrated into the jdk 17. > > > > >> > > > > >> This JEP proposes > > > > >> - to add a warning if the strictfp modifier is used in the > > > > >> language > > > > >> - to not generate ACC_STRICT in classfiles anymore if source > > > > >> >=3D > > > > >> jdk 17 > > > > >> (major_version >=3D 61) > > > > >> - to retire retire the ACC_STRICT modifier in the VM, so the > > > > >> VM > > > > >> will ignore that > > > > >> flag. > > > > >> > > > > >> The idea is in the future to reuse the bit corresponding to > > > > >> ACC_STRICT for > > > > >> another usage, > > > > >> so in the future, the semantics of that bit will changed so > > > > >> visitors will need > > > > >> to be updated. > > > > >> > > > > >> The question is how we reflect that in ASM, > > > > >> - deprecating ACC_STRICT seems brutal because if version < > > > > >> V_17, > > > > >> it's a valid > > > > >> flag. > > > > >> - do nothing, after all the VM will ignore this flag seems > > > > >> dangerous because at > > > > >> some point ACC_STRICT will mean something different. > > > > >> - throw an exception in CheckClassVisitor if version >=3D V_17 > > > > >> and > > > > >> ACC_STRICT is > > > > >> used on method (it can not be used anywhere else), i fear > > > > >> that > > > > >> it may be not > > > > >> enough. > > > > >> - rejecting ACC_STRICT if version >=3D V_17 in the > > > > >> ClassWriter, > > > > >> this seems too > > > > >> strong. > > > > >> - silently strip ACC_STRICT if version >=3D V_17 in the > > > > >> ClassWriter as javac does, > > > > >> this seems sneaky. > > > > >> > > > > >> so here are the options, what do you thing ? > > > > >> > > > > >> R=C3=A9mi > > > > >> > > > > >> [1] https://openjdk.java.net/jeps/306 > > > > >> [2] https://bugs.openjdk.java.net/browse/JDK-8266524 > > > > >> > > > > >> -- > > > > >> You receive this message as a subscriber of the [email protected] > > > > >> mailing list. > > > > >> To unsubscribe: mailto:[email protected] > > > > >> For general help: mailto:[email protected]?subject=3Dhelp > > > > > > OW2 mailing lists service home page: http://www.ow2.org/wws > > > > > > > > > -- > > > You receive this message as a subscriber of the [email protected] > > > mailing > > > list. > > > To unsubscribe: mailto:[email protected] > > > For general help: mailto:[email protected]?subject=3Dhelp > > > OW2 mailing lists service home page: http://www.ow2.org/wws > > > >=20 ------------=_1620911124-4557-9 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit -- You receive this message as a subscriber of the [email protected] mailing list. To unsubscribe: mailto:[email protected] For general help: mailto:[email protected]?subject=help OW2 mailing lists service home page: http://www.ow2.org/wws ------------=_1620911124-4557-9--