[Mono-dev] What is the state of mono interpreter ?

Aras Pranckevicius aras at unity3d.com
Mon Sep 29 11:58:36 EDT 2008

>> > Whatever you might be thinking I can't see why not using mono JIT would
>> > be desirable.
>> On some platforms you can't generate _any_ executable code at runtime.
>> So there one needs either the interpreter, or full AOT. Some platform
>> examples: iPhone, Xbox360, (maybe) PS3.
> Unless you need reflection or fancy runtime support like transparent
> proxies, full AOT is the supported way for such platforms.
> And even in that cases, it would be easier and better to extend full AOT
> than bringing back the interpreter.

Yes. I was just pointing out why would anyone want an interpreter.
Full AOT would work in that case as well.

However, having an interpreter would have some advantages in
comparison with AOT (as well as some disadvantages of course). Some
that come to my head:
* Full AOT to another target architecture, anyone? (e.g. you develop
on x86 machine, your target machine is ARM or PPC)
* With interpreter, there's a shorter cycle on getting your .NET code
to some device (think consoles here). With AOT, it goes this way:
compiler -> AOT -> native assembler -> native linker -> code signing
-> device. With interpreter, it's compiler -> device. One does not
even need to have assembler, linker or code signing tools.

For what it's worth, we're going Full AOT route in Unity for iPhone.
But we were seriously considering the interpreter route as well.

Aras Pranckevičius
work: http://unity3d.com
home: http://aras-p.info

More information about the Mono-devel-list mailing list