I would have thought one of the most common uses of breaking down a method
handle like this would be to immediately turn it into a java.lang.reflect
object and maybe examine annotations or exception information. So although
I don't think it should extend Member I do think it should have a standard
way to return a Member, sort of the opposite of Lookup.unreflect().

As for transformed method handles a cracking interface may not need to
return an representation of the original structure, it might be enough to
return the parts that remain (both method handles and bound objects) as I
would guess that would be enough for debugging purposes and resource leak
hunting.

Regards, Duncan.

On 24/04/2013 08:02, "John Rose" <john.r.r...@oracle.com> wrote:

>Those of you who have been following 292 details may have noticed the
>type java.lang.invoke.MethodHandleInfo show up in support of Project
>Lambda.
>
>The 292 EG has been thinking about the problem of method handle
>reflection, since JDK 7, in background mode.  We are sure we want
>something that can "crack" direct method handles, and not ready to
>venture anything more elaborate.
>
>(Arbitrarily transformed method handles probably can never have an
>implementation-independent cracked form, so there are real problems
>specifying a cracking function that is defined for every method handle.
>For example, recording the series of transforms that gave rise to every
>MH rules out many interesting implementations, and recovering a "likely"
>series of transforms for a MH seems perilously close to the
>function-equivalence problem, which we know is undecidable.)
>
>I am working on polishing this restricted cracking API for direct method
>handles.  Here is a webrev of it, starting at MethodHandleInfo:
>  
>http://cr.openjdk.java.net/~jrose/8008688/javadoc.00/java/lang/invoke/Meth
>odHandleInfo.html
>
>Comments would be welcome.
>
>Thanks,
>‹ John
>
>P.S. No testing yet; it is doc-ware at the moment.  I just posted a
>checkpoint of the source patches here:
>  
>http://hg.openjdk.java.net/mlvm/mlvm/jdk/file/tip/meth-info-8008688.patch
>
>P.P.S.  Here are my fix-me comments at this point:
>
>// Should this extend java.lang.reflect.Member?  (default: no)
>// Should we include getModifiers?  (default: no)
>// Should the direct parts be separated into a sub-interface (to allow
>for future extensions)?
>//    If we don't have a subinterface, later on we might need an isDirect
>method.
>//    If we do have a subinterface, then MethodHandleInfo becomes an
>empty type (like java.lang.reflect.Type).
>// Define SecurityManager checks. (TO DO)
>
>_______________________________________________
>mlvm-dev mailing list
>mlvm-dev@openjdk.java.net
>http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

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

Reply via email to