views:

264

answers:

3

In case you don't know of Phoenix, it's a compiler framework from Microsoft that's apparantly going to be the foundation of all their new compilers. It can read in code from CIL, x86, x64, and IA64; and emit code in x86, x64, IA64, or CIL.

Can I use it to transform a pure .Net app into a pure native app? By which I mean, it will not have to load any .Net .dll (not even mscoree), and will have the same semantics? This is excluding Reflection, of course.

+4  A: 

Without knowing too much about Phoenix, in order to have a .NET app run natively you're going to also need a native version of the framework, unless you don't use the framework (which is pretty much impossible).

Also the CLR includes garbage collection, assembly loading, etc, so dumping the interpreting part of the CLR probably won't make that much difference to the performance of .NET apps.

Also, from the Phoenix FAQ:

Q. How do I retarget from a native image to an MSIL image (or vice-versa)?

A. Not very easily. This is not a supported scenario, and while it might be theoretically possible, we do not know of anyone who has actually done it.

Cameron MacFarland
A: 

Ah, I didn't recall reading that question in the FAQ (I've looked like five times in the last year or so.)

TraumaPony
A: 

what about bartok from the midori project?

http://singularity.codeplex.com

AbdelRaheim