Rémi Forax skrev: > In that case, guards etc can be implemented using only convert, spread > and collect and the JavaMethodHandle. > If you have collect/spread that converts each array element, then you do not need the JavaMethodHandle. > But, for my pet project, for Groovy or for Neal's closure, you have to > deal with signatures including primitive types. > In that case, insert/drop, permute and combine/guardWithTest are very > useful. > This is only the case if you do not trust that your JVM will optimize away autoboxing. Insert/drop,permute/combine/guardwithtest can be easily implemented if you have either: collect/spread or convert for each argument in a method handle invoke, as I described before.
//Fredrik (As an interesting sidenote, collect/spread is build into C# at the lowest level, performing collect: void mytransform(params object[] args) { ....... } performing spread: mydelegate.DynamicInvoke(args); since we do not have a bytecode identifier that can mark a Java method as collecting its arguments, we cannot currently do this.) > Rémi > > _______________________________________________ > 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