Le 18/06/2010 09:21, Howard Lovatt a écrit : > Hi, > I am seeing a change in behavior which I think might be a regression > from build 17.0-b10 to build 18.0-b04-fastdebug. I am using Stephen > Bannasch builds on Mac OS 10.6. The working version of my code with > 17.0-b10 to build gives: > > wizziewol-ln:Invoke Dynamic Multiple Dispatch lov080$ $a/java -ea > -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles > -XX:+EnableInvokeDynamic -cp dist/Invoke\ Dynamic\ Multiple\ > Dispatch.jar invokedynamicmultipledispatch.Cost > type = > (invokedynamicmultipledispatch.CostCalculator,invokedynamicmultipledispatch.Item)double > nearest = cost, type = > (invokedynamicmultipledispatch.CostCalculator,invokedynamicmultipledispatch.Item)double > target = cost, type = > (invokedynamicmultipledispatch.CostCalculator,invokedynamicmultipledispatch.Item)double > type = > (invokedynamicmultipledispatch.CostCalculator,invokedynamicmultipledispatch.Item)double > nearest = cost, type = > (invokedynamicmultipledispatch.CostCalculator,invokedynamicmultipledispatch.Item)double > target = cost, type = > (invokedynamicmultipledispatch.CostCalculator,invokedynamicmultipledispatch.Item)double > cost = 0.0 > > Which is as expected for the test code I am running. With the newer > 18.0-b04-fastdebug build I get: > > wizziewol-ln:Invoke Dynamic Multiple Dispatch lov080$ $b/java -ea > -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles > -XX:+EnableInvokeDynamic -cp dist/Invoke\ Dynamic\ Multiple\ > Dispatch.jar invokedynamicmultipledispatch.Cost > VM option '+UnlockExperimentalVMOptions' > VM option '+EnableMethodHandles' > VM option '+EnableInvokeDynamic' > type = > (invokedynamicmultipledispatch.CostCalculator,invokedynamicmultipledispatch.Item)double > nearest = cost, type = > (invokedynamicmultipledispatch.CostCalculator,invokedynamicmultipledispatch.Item)double > target = cost, type = > (invokedynamicmultipledispatch.CostCalculator,invokedynamicmultipledispatch.Item)double > # To suppress the following error report, specify this argument > # after -XX: or in .hotspotrc: SuppressErrorAt=/cpCacheOop.hpp:133 > # > # A fatal error has been detected by the Java Runtime Environment: > # > # Internal Error > (/Users/stephen/dev/java/src/bsd-port/hotspot/src/share/vm/oops/cpCacheOop.hpp:133), > pid=57368, tid=2953121792 > # Error: assert(_f2 == 0 || _f2 == f2,"illegal field change") > # > # JRE version: 7.0 > # Java VM: OpenJDK Server VM (18.0-b04-fastdebug mixed mode bsd-x86 ) > # An error report file with more information is saved as: > # /Users/lov080/Dropbox/Personal/Java/examples/Invoke Dynamic Multiple > Dispatch/hs_err_pid57368.log > # > # If you would like to submit a bug report, please visit: > # http://java.sun.com/webapps/bugreport/crash.jsp > # > Current thread is 2953121792 > Dumping core ... > Abort trap > > The code is failing in the bootstrap method invoked by the first of my > InvokeDynamic calls when it tries to create a CallSite from a > MethodHandle. > > Is this a known problem or would it be useful if I investigate further? >
It's a known problem, changes have been made into hotspot repository but jdk API was not updated: see http://mail.openjdk.java.net/pipermail/mlvm-dev/2010-May/001728.html > -- Howard. > Rémi _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev