+1 Seems like a natural choice.
On 2011-03-26, at 6:08 PM, John Rose <john.r.r...@oracle.com> wrote: > One bit of review feedback we've gotten is our choice of names for the "front > door" methods of MethodHandle, "invokeExact" and "invokeGeneric". > > There is good consensus for "invokeExact" as a special case of the more > generic invocation type called "invokeGeneric". But the name "invokeGeneric" > is more problematic. > > First, it seems to mention "generics", even though it has nothing to do with > Java generic types (except that it can dynamically supply the casts that the > erasure technique sometimes requires). > > Second, the term "generic" doesn't have any other meaning, other than "this > is somehow more general than the exact version". > > There are two alternatives to "generic". One is to find the word or phase > that we should have picked instead of "generic", such as "polymorphic" or > "withConversions". The other is to drop the word, and use just "invoke". > > Some of us on the EG (including me) are inclined to go with plain "invoke". > Does anyone see a problem with this? > > Benefits: > - makes typical code examples (documents, slides, pedagogy) easier to write > and read > - strengthens the analogy with JVM terminology, JLS terminology, reflection, > etc. > - "exact" functions as an extra type-match requirement/assertion (asymmetry > with "invokeExact" is not a problem) > - the terms nest nicely: one can speak of "method handle invocation" and when > needed of "exact invocation" > > Comments? > > -- John > > P.S. Some background, as a reminder: > > http://cr.openjdk.java.net/~jrose/pres/indy-javadoc-mlvm-pr/ (OpenJDK doc > snapshot for Public Review) > > The difference between the two "front doors" is that "invokeExact" requires > the same descriptor matching that the native JVM invoke instructions require, > while "invokeGeneric" is a strict superset, allowing certain simple > conversions on arguments and return values. > > The two-door model here allows implementors to choose native JVM strict > typing (invokeExact) or a flexible simulation of argument conversions, > approximately as allowed in the Java language. The invokeExact call is > useful for systems that do not want accidental introduction of runtime > argument transformations, while the invokeGeneric call is probably most > useful for end users. (It also has benefits for building some kinds of > method handle transformations.) > > There is actually a third "door" which is a garden-variety "varargs" method > MethodHandle.invokeWithArguments. It is supposed to have a long name, to hint > that it is not your first choice, because it is guaranteed to do all possible > boxing steps. Indeed, it is more closely akin to > java.lang.reflect.Method.invoke than MethodHandle.invokeGeneric, but for that > reason it is *not* the primary entry point for method handle invocation. The > main use for it is to apply a method handle to a pre-existing array of > arguments. > _______________________________________________ > 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