JEP 306 - always strictfp semantics

"Remi Forax" (via asm Mailing List) <[email protected]> Fri, 7 May 2021 12:14:01 +0200 (CEST)
Newsgroups gmane.comp.java.objectweb.asm
Message-ID <[email protected]>
This is a multi-part message in MIME format...

------------=_1620382812-6117-10
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

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 (m=
ajor_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 n=
eed 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 val=
id flag.
- do nothing, after all the VM will ignore this flag seems dangerous becaus=
e at some point ACC_STRICT will mean something different.
- throw an exception in CheckClassVisitor if version >=3D V_17 and ACC_STRI=
CT 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 java=
c 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

------------=_1620382812-6117-10
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

------------=_1620382812-6117-10--