On Jun 2, 6:17 pm, Rémi Forax <[EMAIL PROTECTED]> wrote:
> Hi all,
> I've just pushed a new implementation of the backport.
> CallSites are now created dynamically as needed and can be garbaged
> if there are no longer used.
>
> I've planned to release two tools.
> - one that can be used at compile time, just after your compiler
> or as last step of the compilation (using ASM adapters).
> - A java.lang.instrument agent that modifies the bytecode
> at runtime when it is loaded.
>
> I've some questions about the language runtime you implement :
> 1) Do you use another library than ASM to generate bytecodes ?
Yes: we use JSR199 for generate
> 2) Do you generate bytecodes at runtime ?
Yes
(we generate own bytecode only for debug case, to include debug
stabs)
> - Do you use your own classloader ?
Yes (also sometimes)
> - Do you use java.lang.instrument ?
>
No
> cheers,
> Rémi
>
> ------------------------------------------------------------------------------------------
> The generated now looks like to that:
>
> // an array of method handle with volatile semantic
> private static final MethodHandleArray $handles=
> new MethodHandleArray(1);
>
> private static Locus $initLocus0() {
> return Locus.make(handles, 0,
> TestGenerated.class,"test", void.class, new
> Class<?>[]{Object.class, String.class});
> }
>
> private static void $adapterLocus0(MethodHandle handle, Object o,
> Object o2) {
> ((OOVInterface)handle).invoke(o, o2);
> }
>
> public static void main(String[] args) {
> TestGenerated test=new TestGenerated();
> String arg = "hello invokedynamic";
> MethodHandle target = $handles.get(0); // get method handle at
> call site 0
> if ($locus1.target == null) {
> Linkage.bootstrapInvokeDynamic($initLocus0(), test, arg);
> } else {
> $adapterLocus0(target, test, arg);
> }
> }
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "JVM
Languages" group.
To post to this group, send email to jvm-languages@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---