Re: JEP 306 - always strictfp semantics

"Eugene Kuleshov" (via asm Mailing List) <[email protected]> Fri, 7 May 2021 07:46:27 -0400
Newsgroups gmane.comp.java.objectweb.asm
Message-ID <CADFjdoXwNOV=RXLaUvgjy30NOyij1s-ZK-oshD2CykRB19LNRg@mail.gmail.com>
This is a multi-part message in MIME format...

------------=_1620388004-6117-12
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Remi,

  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.

  As for handling it now, I think the CheckClassVisitor check for V_17
+ ignoring or silently stripping it in the ClassWriter should cover
it.

  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 igno=
re that flag.
>
> The idea is in the future to reuse the bit corresponding to ACC_STRICT fo=
r 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 v=
alid flag.
> - do nothing, after all the VM will ignore this flag seems dangerous beca=
use at some point ACC_STRICT will mean something different.
> - throw an exception in CheckClassVisitor if version >=3D V_17 and ACC_ST=
RICT is used on method (it can not be used anywhere else), i fear that it m=
ay be not enough.
> - rejecting ACC_STRICT if version >=3D V_17 in the ClassWriter, this seem=
s too strong.
> - silently strip ACC_STRICT if version >=3D V_17 in the ClassWriter as ja=
vac 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

------------=_1620388004-6117-12
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

------------=_1620388004-6117-12--