Re: ASM 8.0 released

Remi Forax <[email protected]> Tue, 31 Mar 2020 12:12:49 +0200 (CEST)
Newsgroups gmane.comp.java.objectweb.asm
Message-ID <[email protected]>
This is a multi-part message in MIME format...

------------=_1585649944-24931-8
Content-Type: multipart/alternative; 
	boundary="=_e24fd34e-5dc0-490b-a701-99954006b08f"

--=_e24fd34e-5dc0-490b-a701-99954006b08f
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

But it's a backward incompatible change :(=20

R=C3=A9mi=20

> De: "Remi Forax" <[email protected]>
> =C3=80: "Vicente Romero" <[email protected]>
> Cc: "Eric Bruneton" <[email protected]>, "asm" <[email protected]>
> Envoy=C3=A9: Mardi 31 Mars 2020 12:02:25
> Objet: Re: [asm] ASM 8.0 released

> oops,
> my bad, will fix that ASAP !

> R=C3=A9mi

>> De: "Vicente Romero" <[email protected]>
>> =C3=80: "Eric Bruneton" <[email protected]>, "asm" <[email protected]>
>> Envoy=C3=A9: Mardi 31 Mars 2020 03:14:35
>> Objet: Re: [asm] ASM 8.0 released

>> Hi,

>> Thanks for publishing this version, it is great to see it supporting rec=
ords,
>> yay! I was testing it to include it in JDK 15 and I think I found a bug =
which
>> is related to records with no record components as in:

>> $ cat R.java
>> record R() {}

>> if we compile this record with javac we will see in javap's output an em=
pty
>> `Record` attribute but lets say we use the simplest ASM client as in:

>> import java.io.FileInputStream;
>> import java.io.FileOutputStream;

>> import org.objectweb.asm.ClassReader;
>> import org.objectweb.asm.ClassWriter;

>> public class ASMRecordTest {
>> public static void main(final String args[]) throws Exception {
>> FileInputStream is =3D new FileInputStream(args[0]);

>> ClassReader cr =3D new ClassReader(is);
>> ClassWriter cw =3D new ClassWriter(ClassWriter.COMPUTE_FRAMES);
>> cr.accept(cw, 0);

>> FileOutputStream fos =3D new FileOutputStream(args[1]);
>> fos.write(cw.toByteArray());
>> fos.close();
>> }
>> }

>> if this program is invoked with arguments: /path/to/R.class /path/to/R2.=
class we
>> will see that R2.class is missing the `Record` attribute. The issue in t=
he
>> current code in ASM is that no record attribute will be written unless t=
here is
>> at least one record component.

>> Thanks,
>> Vicente

>> On 3/28/20 8:07 AM, [ mailto:[email protected] | [email protected] ] wro=
te:

>>> Release notes:
>>> - Java 14 support (RecordComponent)
>>> - bug fixes
>>>  * 317896: Performance degradation when using dynamic constants as a st=
atic
>>>   parameter to another InDy/ConDy

>>> The ASM team

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

--=_e24fd34e-5dc0-490b-a701-99954006b08f
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>But it's a backward incompatible change :(<=
br></div><div><br data-mce-bogus=3D"1"></div><div>R=C3=A9mi<br data-mce-bog=
us=3D"1"></div><div><br></div><hr id=3D"zwchr" data-marker=3D"__DIVIDER__">=
<div data-marker=3D"__HEADERS__"><blockquote style=3D"border-left:2px solid=
 #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;fon=
t-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;=
font-size:12pt;"><b>De: </b>"Remi Forax" &lt;[email protected]&gt;<br><b>=
=C3=80: </b>"Vicente Romero" &lt;[email protected]&gt;<br><b>Cc: </=
b>"Eric Bruneton" &lt;[email protected]&gt;, "asm" &lt;[email protected]&gt;<br><=
b>Envoy=C3=A9: </b>Mardi 31 Mars 2020 12:02:25<br><b>Objet: </b>Re: [asm] A=
SM 8.0 released<br></blockquote></div><div data-marker=3D"__QUOTED_TEXT__">=
<blockquote style=3D"border-left:2px solid #1010FF;margin-left:5px;padding-=
left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:no=
ne;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><div style=3D"fo=
nt-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><=
div>oops,<br></div><div>my bad, will fix that ASAP !<br></div><br><div>R=C3=
=A9mi<br></div><br><hr id=3D"zwchr"><div><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>"Vicente Romero" &lt;vicente.romero@ora=
cle.com&gt;<br><b>=C3=80: </b>"Eric Bruneton" &lt;[email protected]&gt;, "a=
sm" &lt;[email protected]&gt;<br><b>Envoy=C3=A9: </b>Mardi 31 Mars 2020 03:14:35<=
br><b>Objet: </b>Re: [asm] ASM 8.0 released<br></blockquote></div><div><blo=
ckquote style=3D"border-left:2px solid #1010FF;margin-left:5px;padding-left=
:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;f=
ont-family:Helvetica,Arial,sans-serif;font-size:12pt;">Hi,<br>
    <br>
    Thanks for publishing this version, it is great to see it supporting
    records, yay! I was testing it to include it in JDK 15 and I think I
    found a bug which is related to records with no record components as
    in:<br>
    <br>
    $ cat R.java<br>
    record R() {}<br>
    <br>
    if we compile this record with javac we will see in javap's output
    an empty `Record` attribute but lets say we use the simplest ASM
    client as in:<br>
    <br>
    import java.io.FileInputStream;<br>
    import java.io.FileOutputStream;<br>
    <br>
    import org.objectweb.asm.ClassReader;<br>
    import org.objectweb.asm.ClassWriter;<br>
    <br>
    public class ASMRecordTest {<br>
    &nbsp;&nbsp;&nbsp; public static void main(final String args[]) throws =
Exception {<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileInputStream is =3D new F=
ileInputStream(args[0]);<br>
    <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ClassReader cr =3D new Class=
Reader(is);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ClassWriter cw =3D new
    ClassWriter(ClassWriter.COMPUTE_FRAMES);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cr.accept(cw, 0);<br>
    <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileOutputStream fos =3D new=
 FileOutputStream(args[1]);<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fos.write(cw.toByteArray());=
<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fos.close();<br>
    &nbsp;&nbsp;&nbsp; }<br>
    }<br>
    <br>
    if this program is invoked with arguments: /path/to/R.class
    /path/to/R2.class we will see that R2.class is missing the `Record`
    attribute. The issue in the current code in ASM is that no record
    attribute will be written unless there is at least one record
    component.<br>
    <br>
    Thanks,<br>
    Vicente<br>
    <br>
    <div class=3D"moz-cite-prefix">On 3/28/20 8:07 AM, <a class=3D"moz-txt-=
link-abbreviated" href=3D"mailto:[email protected]" target=3D"_blank">ebrun=
[email protected]</a>
      wrote:<br>
    </div>
    <blockquote cite=3D"mid:1661375377.158900451.1585397255081.JavaMail.roo=
[email protected]">
      <pre class=3D"moz-quote-pre">Release notes:
- Java 14 support (RecordComponent)
- bug fixes
  * 317896: Performance degradation when using dynamic constants as a stati=
c parameter to another InDy/ConDy

The ASM team
</pre>
      <br>
      <fieldset class=3D"mimeAttachmentHeader"></fieldset>
      <pre class=3D"moz-quote-pre"></pre>
    </blockquote>
    <br>
=20=20

<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><br><br>-- <b=
r>You receive this message as a subscriber of the [email protected] mailing list.=
<br>To unsubscribe: mailto:[email protected]<br>For general help: mai=
lto:[email protected]?subject=3Dhelp<br>OW2 mailing lists service home page: ht=
tp://www.ow2.org/wws<br></blockquote></div></div></body></html>=

--=_e24fd34e-5dc0-490b-a701-99954006b08f--

------------=_1585649944-24931-8
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

------------=_1585649944-24931-8--