[Mono-devel-list] Architecture-specifiic requirements & use of Mono runtime

Arterial: Bob Moore Bob.Moore at arterialsoftware.com
Fri Jun 25 02:19:40 EDT 2004


I'm confused about descriptions of how the JIT compiler produces native
(architecture-specific) machine code (via the arch/codegen-xxx.h and
mini/mini-xxx.c files, among others) and what this means for the mcs
compiler which I thought produced non-platform-specific CIL code.

I've seen HelloWorld examples where a HelloWorld.cs is compiled via mcs
and then run as "mono HelloWorld.exe".

On the Windows platform, using the Beta2 package mono-Beta2-win32-1.exe,
the output from "mcs HelloWorls.cs" seems to be a native machine
executable that I can run without passing to the mono runtime as
described above.

Are there two different modes of operation for mcs - 1). Compiling to a
CIL level that is then interpreted by the mono runtime, and 2).
Compiling to a native machine executable that doesn't then require

Also, for porting purposes, is it possible to not have to think in
architecture-specific machine code terms and provide all implementations
of CIL code requirements as 'C' functions (which I thought I read about
in either mini-doc.txt or mini-porting.txt). I would then imagine that
this would make the mono runtime (as in "mono HelloWorld.exe") an
absolute requirement because I would not then be generating native
machine code to an executable that could be run stand-alone?


Bob Moore

More information about the Mono-devel-list mailing list