proof of concept method handle support
authorjrose
Wed Dec 24 20:21:23 2008 -0800 (11 months ago)
changeset 936508d3ccb38
parent 8cc20bdee5864
child 106de49f01c9f0
proof of concept method handle support
meth.txt
series
--- a/meth.txt Wed Oct 08 22:38:47 2008 -0700
+++ b/meth.txt Wed Dec 24 20:21:23 2008 -0800
@@ -17,7 +17,7 @@ Examples from the unit test:
mh.invoke("world", 123);
// previous line generates invokevirtual MethodHandle.invoke(String,int)Object
Dynamic.greet("hello", "world", 123);
- // previous line generates invokestatic Dynamic.greet(Object,String,int)Object
+ // previous line generates invokedynamic greet(Object,String,int)Object
}
Note that actual argument types can be overridden by casts, as in:
@@ -32,7 +32,7 @@ The syntax for return type specification
mh.<void>invoke("foo", 123) // signature is (String,int)void
The syntax for the receiverless formulation of invokedynamic is:
- Dynamic<R>.zzz(obj,aaa) // generates signature (Object,AAA)R
+ Dynamic.<R>zzz(obj,aaa) // generates signature (Object,AAA)R
Dynamic.zzz(AAA) // return type is Object by default
Dynamic.greet((Object)"hello", "world", 123)
// previous line generates invokedynamic greet(Object,String,int)Object
@@ -42,7 +42,7 @@ The syntax for the receiverless formulat
Notes & Status:
- The syntax for invokedyanmic is receiverless; the signature describes all stacked args.
-- For -targe =7, the instruction uses a new code point (186) and is formatted like invokeinterface.
+- For -target 7, the instruction uses a new code point (186) and is formatted like invokeinterface.
- For -target jsr292, the instruction is a verifier-compatible instance of invokestatic.
- For -XDinvokedynamic=invokeinterface, the instruction is the 5/2008 JSR 292 EDR format.
--- a/series Wed Oct 08 22:38:47 2008 -0700
+++ b/series Wed Dec 24 20:21:23 2008 -0800
@@ -1,2 +1,3 @@ quid.patch #-/quid
quid.patch #-/quid
meth.patch #-/meth
+foo.patch