Re: ASM 6.1-beta released
Kumar Srinivasan <[email protected]> Tue, 09 Jan 2018 17:40:09 -0800
| Newsgroups | gmane.comp.java.objectweb.asm |
|---|---|
| Organization | Java Software - Oracle Corporation |
| Message-ID | <[email protected]> |
Hi Eric,
The patch below works, I am reasonably satisfied, go for integration.
I will look forward to pulling the changeset and have the CI system
retest
everything in its entirety.
Thanks for fixing this quickly!.
Kumar
> Hi,
>
> Thanks for your tests! I've been able to reproduce the issue by comparing the output of ASM 6 and 6.1 beta with COMPUTE_FRAMES on the JDK 8 classes. I found one issue which, one fixed, makes the two outputs identical. Let me know if it also fixes your issues. The fix is the following:
>
> diff --git a/asm/src/main/java/org/objectweb/asm/Frame.java b/asm/src/main/java/org/objectweb/asm/Frame.java
> index 8273b54..f2aaf39 100644
> --- a/asm/src/main/java/org/objectweb/asm/Frame.java
> +++ b/asm/src/main/java/org/objectweb/asm/Frame.java
> @@ -648,7 +648,8 @@
> if (abstractType == UNINITIALIZED_THIS) {
> return REFERENCE_KIND | symbolTable.addType(symbolTable.getClassName());
> } else {
> - return REFERENCE_KIND | symbolTable.addType(symbolTable.getType(value).value);
> + return REFERENCE_KIND
> + | symbolTable.addType(symbolTable.getType(abstractType & VALUE_MASK).value);
> }
> }
> }
>
>
> Eric
>
> ----- Mail original -----
>> De: "Kumar Srinivasan" <[email protected]>
>> À: "Hannes Wallnöfer" <[email protected]>, "Eric Bruneton" <[email protected]>
>> Cc: "Evgeny Mandrikov" <[email protected]>, "Remi Forax" <[email protected]>, "“[email protected]”" <[email protected]>
>> Envoyé: Mardi 9 Janvier 2018 16:45:21
>> Objet: Re: [asm] ASM 6.1-beta released
>>
>> Hi,
>>
>> Filed: https://gitlab.ow2.org/asm/asm/issues/317808
>>
>> Kumar
>>
>>
>>> Hi all,
>>>
>>> I’m looking at the new problem.
>>>
>>> Although many tests fail, it seems to be a single issue with an
>>> incorrect stack map in a post-processed class. I’ll let you know
>>> when I find out more.
>>>
>>> Hannes
>>>
>>>> Am 09.01.2018 um 02:34 schrieb Kumar Srinivasan
>>>> <[email protected]>:
>>>>
>>>>
>>>> Hi Remi, Evgeny, Eric,
>>>>
>>>> [ have included Hannes Wallnoefer, who is handling nashorn related
>>>> issues]
>>>>
>>>> Thanks that seems to fix the issue I was seeing with nasgen.
>>>>
>>>> However there are multiple failures most of them are nashorn
>>>> regresssions,
>>>> and relating to verification and stackmap frames, attached some
>>>> output, for
>>>> reference, I take it you want the class files ? If so I will try
>>>> to provide it tomorrow.
>>>> Please let me know if you need anything else.
>>>>
>>>> Thanks
>>>> Kumar
>>>> [testng] Exception in thread "main" java.lang.VerifyError:
>>>> Inconsistent stackmap frames at branch target 49
>>>> [testng] Exception Details:
>>>> [testng] Location:
>>>> [testng]
>>>> jdk/nashorn/internal/objects/Global.newAccessorDescriptor(Ljava/lang/Object;Ljava/lang/Object;ZZ)Ljdk/nashorn/internal/runtime/PropertyDescriptor;
>>>> @49: aload_2
>>>> [testng] Reason:
>>>> [testng] Type
>>>> 'jdk/nashorn/internal/objects/AccessorPropertyDescriptor'
>>>> (current frame, locals[5]) is not assignable to
>>>> 'jdk/nashorn/internal/objects/NativeRegExp' (stack map,
>>>> locals[5])
>>>> [testng] Current Frame:
>>>> [testng] bci: @36
>>>> [testng] flags: { }
>>>> [testng] locals: { 'jdk/nashorn/internal/objects/Global',
>>>> 'java/lang/Object', 'java/lang/Object', integer, integer,
>>>> 'jdk/nashorn/internal/objects/AccessorPropertyDescriptor' }
>>>> [testng] stack: { 'java/lang/Object' }
>>>> [testng] Stackmap Frame:
>>>> [testng] bci: @49
>>>> [testng] flags: { }
>>>> [testng] locals: { 'jdk/nashorn/internal/objects/Global',
>>>> 'java/lang/Object', 'java/lang/Object', integer, integer,
>>>> 'jdk/nashorn/internal/objects/NativeRegExp' }
>>>> [testng] stack: { }
>>>> [testng] Bytecode:
>>>> [testng] 0000000: bb03 0359 1d15 042b c700 09b2 02ba a700
>>>> [testng] 0000010: 042b 2cc7 0009 b202 baa7 0004 2c2a b703
>>>> [testng] 0000020: 063a 052b c700 0d19 0513 0307 03b6 030b
>>>> [testng] 0000030: 572c c700 0d19 0513 030c 03b6 030b 5719
>>>> [testng] 0000040: 05b0
>>>> [testng] Stackmap Table:
>>>> [testng]
>>>> full_frame(@17,{Object[#2],Object[#708],Object[#708],Integer,Integer},{Uninitialized[#0],Uninitialized[#0],Integer,Integer})
>>>> [testng]
>>>> full_frame(@18,{Object[#2],Object[#708],Object[#708],Integer,Integer},{Uninitialized[#0],Uninitialized[#0],Integer,Integer,Object[#708]})
>>>> [testng]
>>>> full_frame(@28,{Object[#2],Object[#708],Object[#708],Integer,Integer},{Uninitialized[#0],Uninitialized[#0],Integer,Integer,Object[#708]})
>>>> [testng]
>>>> full_frame(@29,{Object[#2],Object[#708],Object[#708],Integer,Integer},{Uninitialized[#0],Uninitialized[#0],Integer,Integer,Object[#708],Object[#708]})
>>>> [testng] append_frame(@49,Object[#784])
>>>> [testng] same_frame(@63)
>>>> [testng]
>>>> [testng] at
>>>> jdk.scripting.nashorn/jdk.nashorn.internal.runtime.Context.newGlobal(Context.java:1240)
>>>> [testng] at
>>>> jdk.scripting.nashorn/jdk.nashorn.internal.runtime.Context.createGlobal(Context.java:1231)
>>>> [testng] at
>>>> jdk.scripting.nashorn/jdk.nashorn.tools.Shell.run(Shell.java:171)
>>>> [testng] at
>>>> jdk.scripting.nashorn/jdk.nashorn.tools.Shell.main(Shell.java:150)
>>>> [testng] at
>>>> jdk.scripting.nashorn/jdk.nashorn.tools.Shell.main(Shell.java:126)
>>>> [testng]
>>>>
>>>>
>>>>> Hi Kumar,
>>>>>
>>>>> FYI I reported https://gitlab.ow2.org/asm/asm/issues/317805
>>>>> yesterday
>>>>> and to me seems that nashorn can be affected affected at least by
>>>>> this one as following:
>>>>> org.objectweb.asm.Type.getOpcode(Opcodes.IRETURN)
>>>>> is used by
>>>>> org.objectweb.asm.commons.InstructionAdapter#areturn
>>>>> which in his turn is used by
>>>>> jdk.nashorn.internal.runtime.linker.JavaAdapterBytecodeGenerator
>>>>>
>>>>> Hope this helps.
>>>>>
>>>>> Regards,
>>>>> Evgeny
>>>>>
>>>>>
>>>>> On Mon, Jan 8, 2018 at 7:24 PM Kumar Srinivasan
>>>>> <[email protected]> wrote:
>>>>>
>>>>> Hi Eric,
>>>>>
>>>>> We have encountered a regression in nasgen/nashorn, in our
>>>>> internal testing,
>>>>> will file ASM bug when we have more information.
>>>>>
>>>>>
>>>>> Kumar
>>>>>
>>>>>> The ASM 6.1-beta version has been released.
>>>>>>
>>>>>> Besides a new V10 constant for Java 10 class files, there are no
>>>>>> new features. However, internally, a lot of changes have been
>>>>>> made (see below; almost each line of code has changed). These
>>>>>> extensive changes may have introduced some regressions, so
>>>>>> please test this version thoroughly and report any bugs found,
>>>>>> before we release the 6.1 version.
>>>>>>
>>>>>> Release notes:
>>>>>>
>>>>>> - xml package deprecated
>>>>>> - project layout changed to Maven style
>>>>>> - build system changed from Ant to Gradle
>>>>>> - coding style changed to Google Java style
>>>>>> - code quality and readability improved a lot
>>>>>> - code quality tracked with SonarQube
>>>>>> (http://sonarqube.ow2.org/projects)
>>>>>> - performance improvements
>>>>>> - unit tests improved: migrated to JUnit 5, faster, coverage >
>>>>>> 95%
>>>>>> - benchmarks improved: now use JMH
>>>>>> (http://openjdk.java.net/projects/code-tools/jmh)
>>>>>> - new Gitlab Continuous Integration pipeline
>>>>>> - small bug fixes related to modules. See
>>>>>> * https://gitlab.ow2.org/asm/asm/merge_requests/20/
>>>>>> * https://gitlab.ow2.org/asm/asm/merge_requests/19/
>>>>>> - bug fixes:
>>>>>> * #317800: Resizing jump instruction adds invalid stack frame
>>>>>> to a class without frames
>>>>>>
>>>>>> Backward binary compatibility is preserved, but the behavior at
>>>>>> runtime has changed in a few areas:
>>>>>> - ACC_SYNTHETIC flag vs Synthetic attribute, see
>>>>>> https://gitlab.ow2.org/asm/asm/merge_requests/17
>>>>>> - numbering of synthetic parameters: see
>>>>>> https://gitlab.ow2.org/asm/asm/merge_requests/56
>>>>>> - StringBuffer no longer used in util (Printer.buf deprecated,
>>>>>> use stringBuilder instead)
>>>>>>
>>>>>> 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=help
>>>>> 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=help
OW2 mailing lists service home page: http://www.ow2.org/wws