Re: When to use JSRInlinerAdapter

Remi Forax <[email protected]> Tue, 3 Dec 2019 23:34:44 +0100 (CET)
Newsgroups gmane.comp.java.objectweb.asm
Message-ID <[email protected]>
This is a multi-part message in MIME format...

------------=_1575412972-16452-26
Content-Type: multipart/alternative; 
	boundary="=_660925e8-8299-433f-81d2-39fcb219e06b"

--=_660925e8-8299-433f-81d2-39fcb219e06b
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Arshan,=20
starting with Java 6, a new verifier was introduced, because the old one is=
 not linear. This new verifier that doesn't allow JSR/RET is named the spli=
t verifier (because half of the verification has to be done by introducing =
stack frame in the bytecode).=20
That said, between Java 6 and Java 7, you had the option to use -XX:-SplitV=
erifier to ask the VM to use the old verifier, that option was removed with=
 Java 8.=20

So since Java 8, all the classes version V1_6+ can only run with the split =
verifier so should not contain any JSR/RET.=20

regards,=20
R=C3=A9mi=20

[1] https://stackoverflow.com/questions/15253173/how-safe-is-it-to-use-xx-u=
sesplitverifier=20

> De: "Arshan Dabirsiaghi" <[email protected]>
> =C3=80: "asm" <[email protected]>
> Envoy=C3=A9: Mardi 3 D=C3=A9cembre 2019 22:33:33
> Objet: [asm] When to use JSRInlinerAdapter

> Is there a rule of thumb for when you must accept the cost of running
> JSRInlinerAdapter on user code?
> Our use case allows users to run on JVMs of version 1.6+, but of course t=
he
> bytecode laying around in their JVMs could be (and often is) very old.
> My google-fu is not revealing a strict rule, like "bytecode targeting ver=
sion 7
> doesn't require this adapter". The JavaDoc is silent on this, so I feel l=
ike
> this list is probably the best place to ask.

> Thanks,
> Arshan

> --
> 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

--=_660925e8-8299-433f-81d2-39fcb219e06b
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><body><div style=3D"font-family: arial, helvetica, sans-serif; font-s=
ize: 12pt; color: #000000"><div>Hi Arshan,<br></div><div>starting with Java=
 6, a new verifier was introduced, because the old one is not linear. This =
new verifier that doesn't allow JSR/RET is named the split verifier (becaus=
e half of the verification has to be done by introducing stack frame in the=
 bytecode).<br></div><div>That said, between Java 6 and Java 7, you had the=
 option to use -XX:-SplitVerifier to ask the VM to use the old verifier, th=
at option was removed with Java 8.</div><div><br data-mce-bogus=3D"1"></div=
><div>So since Java 8, all the classes version V1_6+ can only run with the =
split verifier so should not contain any JSR/RET.<br></div><div><br data-mc=
e-bogus=3D"1"></div><div>regards,<br data-mce-bogus=3D"1"></div><div>R=C3=
=A9mi</div><div><br data-mce-bogus=3D"1"></div><div>[1] https://stackoverfl=
ow.com/questions/15253173/how-safe-is-it-to-use-xx-usesplitverifier<br data=
-mce-bogus=3D"1"></div><div><br></div><hr id=3D"zwchr" data-marker=3D"__DIV=
IDER__"><div data-marker=3D"__HEADERS__"><blockquote style=3D"border-left:2=
px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:no=
rmal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,san=
s-serif;font-size:12pt;"><b>De: </b>"Arshan Dabirsiaghi" &lt;arshan.dabirsi=
[email protected]&gt;<br><b>=C3=80: </b>"asm" &lt;[email protected]&gt;<br><b>Envoy=
=C3=A9: </b>Mardi 3 D=C3=A9cembre 2019 22:33:33<br><b>Objet: </b>[asm] When=
 to use JSRInlinerAdapter<br></blockquote></div><div data-marker=3D"__QUOTE=
D_TEXT__"><blockquote style=3D"border-left:2px solid #1010FF;margin-left:5p=
x;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-dec=
oration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><div d=
ir=3D"ltr">Is there a rule of thumb for when you must accept the cost of ru=
nning JSRInlinerAdapter on user code?&nbsp;<br><div>Our use case allows use=
rs to run on JVMs of version 1.6+, but of course the bytecode laying around=
 in their JVMs could be (and often is) very old.&nbsp;<br><div>My google-fu=
 is not revealing a strict rule, like "bytecode targeting version 7 doesn't=
 require this adapter". The JavaDoc is silent on this, so I feel like this =
list is probably the best place to ask.</div></div><br><div>Thanks,</div><d=
iv>Arshan</div></div>
<br><br>-- <br>You receive this message as a subscriber of the [email protected] =
mailing list.<br>To unsubscribe: mailto:[email protected]<br>For gene=
ral help: mailto:[email protected]?subject=3Dhelp<br>OW2 mailing lists service =
home page: http://www.ow2.org/wws<br></blockquote></div></div></body></html=
>=

--=_660925e8-8299-433f-81d2-39fcb219e06b--

------------=_1575412972-16452-26
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

------------=_1575412972-16452-26--