Simple dynamic language using invokedynamic
Chanwit Kaewkasi
chanwit at gmail.com
Mon Jun 22 05:21:10 PDT 2009
Hi Remi,
> Hi Chanwit,
> run with -Xint, the JIT doesn't work in b61,
> I think it should work with latest patches from mlvm repo.
Yes, I did run with -Xint and JVM crashed. With out -Xint, the program
was just not be able to run.
They had different error messages.
> About your generated code, you use BIPUSH 1 instead of ICONST_1
> and in the static initializer, you can use LDC with a class (a Type in ASM)
> instead of loading a String and relying on Class.forName().
Thank you for your suggestion. LDC to load an ASM Type is just great.
> What disassembler do you use ?
> I have noticed that INVOKEDYNAMIC is printed with a receiver
> an I fear I have forget to patch that in ASM sources.
You have good eyes ;-) It's Andrei Loskutov's Bytecode Outline plugin
with my ASM patch.
> This week end, I have hacked the backport to be able to run invokedynamic,
> Could you please try to run your example with it ?
>
> Donwload it here:
> http://code.google.com/p/jvm-language-runtime/source/browse/#svn/trunk/invokedynamic-backport
>
> run ant to create the jsr292-backport.jar, it has a dependency encoded
> in the jar
> on asm3.2-all.jar
>
> And run your example (with java5 or java6) :
> java -javaagent:lib/jsr292-backport.jar ...
You use an agent? Does this mean I can just run my code unmodified?
I will try it and let you know.
Chanwit
--
Chanwit Kaewkasi
PhD Candidate,
Centre for Novel Computing
School of Computer Science
The University of Manchester
Oxford Road
Manchester
M13 9PL, UK
More information about the mlvm-dev
mailing list