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.

Reply via email to