yes, adding @Hidden solves the first item of my list, but nevertheless changing 
the behavior of defineAnonymousClass does not solve the other items.

That said, i hijack this thread because i have not noticed that 
defineAnonymousClass behavior was changed. I should have started another thread 
about that.

Rémi


Le 11 mai 2016 15:10:02 CEST, Vladimir Ivanov <vladimir.x.iva...@oracle.com> a 
écrit :
>Let me clarify: both proposed patches move invoker class out of 
>java.lang.invoke package, but add @Hidden on invoke_V instead.
>
>So, JVM should not list it in stack traces and you don't have to filter
>
>it out on your side.
>
>Moreover, I think the absence of @Hidden on 
>j.l.i.MethodHandleImpl.T.invoke_V was an overlook.
>
>Best regards,
>Vladimir Ivanov
>
>On 5/11/16 3:59 PM, fo...@univ-mlv.fr wrote:
>> ----- Mail original -----
>>> De: "Vladimir Ivanov" <vladimir.x.iva...@oracle.com>
>>> À: "Remi Forax" <fo...@univ-mlv.fr>, "shilpi rastogi"
><shilpi.rast...@oracle.com>
>>> Cc: core-libs-...@openjdk.java.net, "John Rose"
><john.r.r...@oracle.com>, "Michael Haupt" <michael.ha...@oracle.com>,
>>> "paul sandoz" <paul.san...@oracle.com>, "Da Vinci Machine Project"
><mlvm-dev@openjdk.java.net>
>>> Envoyé: Mercredi 11 Mai 2016 14:50:25
>>> Objet: Re: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of
>Unsafe.defineAnonymousClass()
>>>
>>> Remi, I'm curious why doesn't @Hidden on the invoker method solve
>your
>>> problem?
>>>
>>> Best regards,
>>> Vladimir Ivanov
>>
>> Hi Vladimir,
>> as far as i know @Hidden only work on the stackframe that correspond
>to a method marked with @Hidden,
>> not for the stackframe on top of the stackframe marked.
>> So having the invoker marked with @Hidden is not enough, but maybe
>i'm wrong.
>>
>> Rémi
>>
>>>
>>> On 5/11/16 3:44 PM, Remi Forax wrote:
>>>> Hi all,
>>>> changing the behavior of defineAnonymousClass in 9 is huge burden
>for me
>>>> and i believe for anybody that maintains a dynamic language
>runtime.
>>>>
>>>> As an implementer, being able to choose the package of an anonymous
>class
>>>> is an important feature.
>>>> I use to choose carefully the package name for:
>>>> - filtering the stack trace element that will be shown or not to
>the user.
>>>>   This patch specifically broke the stack trace that my runtime
>will emit
>>>>   because it removes "java.lang.invoke".
>>>>   I'm not the only one to filter out stacktrace element that starts
>with
>>>>   "java.lang.invoke", Nashorn or JRuby do that too.
>>>>   I can modify the code to use the new StackWalking API if all the
>method
>>>>   handle form artifact are marked with an interface or something
>like
>>>>   this.
>>>>
>>>> - generate proxy in an existing package
>>>>   see https://github.com/forax/proxy2
>>>>
>>>> - generate code specialization (specialization of an existing
>method for
>>>> some primitive types) of an existing class in an existing package
>>>>   (for the specialization, i specialize the constant pool at
>runtime so i
>>>>   have no choice but to use defineAnonymousClass).
>>>>
>>>>
>>>> I understand that being able to generate a class in any package do
>not work
>>>> well with the jigsaw view of the world but that's why
>defineAnonymousClass
>>>> is in Unsafe after all.
>>>>
>>>> regards,
>>>> Rémi
>>>>
>>>> ----- Mail original -----
>>>>> De: "shilpi rastogi" <shilpi.rast...@oracle.com>
>>>>> À: core-libs-...@openjdk.java.net, "John Rose"
><john.r.r...@oracle.com>,
>>>>> "Michael Haupt" <michael.ha...@oracle.com>,
>>>>> "paul sandoz" <paul.san...@oracle.com>, "Vladimir Ivanov"
>>>>> <vladimir.x.iva...@oracle.com>
>>>>> Envoyé: Mercredi 11 Mai 2016 13:24:09
>>>>> Objet: RFR[9]:Fix java/lang/invoke/MethodHandleImpl's use of
>>>>>   Unsafe.defineAnonymousClass()
>>>>>
>>>>> Hi All,
>>>>>
>>>>> Please review the following-
>>>>>
>>>>> https://bugs.openjdk.java.net/browse/JDK-8149574
>>>>>
>>>>> Solution: Changed anonymous class package name with the package
>name of
>>>>> its host class.
>>>>>
>>>>> Two approaches to solve this-
>>>>> 1.  Parse .class and get the class name index form constant pool
>and
>>>>> patch it with new name
>>>>> http://cr.openjdk.java.net/~srastogi/8149574/webrev.05/
>>>>>
>>>>> 2. Create class with new name (With ASM)
>>>>> http://cr.openjdk.java.net/~srastogi/8149574/webrev.06/
>>>>>
>>>>> Which approach is better?
>>>>>
>>>>> Thanks,
>>>>> Shilpi
>>>>>
>>>>>
>>>>>
>>>>>
>>>

_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to