-
Notifications
You must be signed in to change notification settings - Fork 23
Changes
szegedi edited this page Jun 1, 2012
·
1 revision
- Public fields are now handled as properties in absence of property getter/setter methods.
- org.dynalang.dynalink.beans.StaticClass objects handle static aspects of classes: static fields, methods, properties, and instance creation. They have a "class" virtual property to retrieve the corresponding java.lang.Class object.
- new "dyn:new" operation for creation of instances. BeansLinker links "dyn:new" for StaticClass objects (not for java.lang.Class!).
- java.lang.Class objects have a "static" virtual property to retrieve the corresponding StaticClass object.
- DynamicLinkerFactory has a setSyncOnRelink() method.
- Convenience GuardedInvocation.compose() and .hasBeenInvalidated() methods.
- Convenience GuardedInvocation.asType(), .insertArguments(), .dropArguments().
- Language runtime-specific context arguments moved from trailing position to immediately after receiver. This avoid conflicts with variable arity invocations.
- Operation strings are guaranteed to be interned, so you can use op == "getProp" etc. instead of equals().
- ChainedCallSite, a default implementation of a multiply-linked relinkable call site.
- "length" is exposed as an ordinary property on Java arrays by the BeansLinker.
- LinkRequest.getReceiver() can be used to efficiently retrieve the 0th argument without triggering cloning of the argument array in LinkRequest.getArguments().
- Support for explicit overloaded method resolution by specifying parameter types in the method name using the "name(type, type, ...)".
- Lookup.findOwnSpecial() and Lookup.findOwnStatic() for easy retrieval of own private methods in classes.
- New ConversionComparator interface to be implemented by GuardedTypeConverterFactory to help overloaded method resolution in presence of language-specific conversions.
- Vastly improved overloaded method resolution, especially in presence of language-specific type conversions
- Much less guards and other method handles created.
- Relinking stack frames are eliminated by using foldArguments(exactInvoker, relink) instead of relinkAndInvoke
- RelinkableCallSite instances are slimmed by not storing the relink MethodHandle anymore.
- Unconditional type converters are invoked fast.
- Many exception messages have been made much more informative.
- Some Guards methods log warnings when the guards they create will be either always true or always false.
- Many bugfixes