On 02/11/2011 04:17 AM, Attila Szegedi wrote:
Hi folks,
I just updated my dynamic linker framework to work with the latest API version
of the java.dyn package. It is tested against Stephen Bannach's 2011-01-31 JDK,
and the only test failures are due to known issues in the JDK itself
(basically, problems with MethodHandle.asCollector() implementation).
I also cleared up the build process; it no longer needs Ivy, and will download
all dependencies (including the OpenJDK) itself into a private copy in its
build directory.
It doesn't work with Rémi's backport at the moment, because the backport seems
outdated (i.e it doesn't provide MethodHandle.asCollector and some others).
I'm currently in the process to remove all hardwired name referencing
java.dyn to ease
the package renaming transition.
I will update the mh implementations just after that.
We also seem to have lost the ability to measure the code coverage of tests - I
used EMMA, and that tool was last updated about five years ago, and it
unfortunately corrupts Java 7 formatted classes. I'm not sure there's anything
to do about that, unfortunately. Do you guys have a recommendation for a more
up-to-date, preferrably open-source code coverage tool?
As far as I remember EMMA don't use ASM, so update will take time
(forever ?).
I wonder if it's not better to create a new tool that will use
invokedynamic to trace all branches.
I mean for a basic code coverage tool you only have to know if a method
or a branch was executed or not,
so one can use the bootstrap mechanism to update coverage data and
returns a no-op as target.
As for future plans, I have a roadmap
here<https://github.com/szegedi/dynalink/wiki/Roadmap>. Basically, I now
applied the minimal code changes required to work with the latest API. The next step
is to actually take advantages of some API facilities that became available since
last April, most notably the ClassValue. Once all that's done, it should be prepared
for the package rename to java.lang.invoke, once that's ready.
I think it speaks to the strength of the library that I didn't have to change
any single one of its public APIs - if you adopted it earlier, it shielded you
from all of the moving ground that is java.dyn.* API. Well, except for the fact
that Linkage went away and now you need to put bootstrap method specifications
into every invokedynamic instruction you emit into your classfiles; there's no
library-level help for that…
Code is here:<https://github.com/szegedi/dynalink>
Attila.
Rémi
--
You received this message because you are subscribed to the Google Groups "JVM
Languages" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/jvm-languages?hl=en.