X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=web%2Fruntime;h=c2ecdf425a851c03e13d6d853e946e326253020f;hb=5eb836a1d21b5b678fa5e14a678194788869c9cf;hp=97f2e4eb8e6b990c3098ba2ac106d0a109defa16;hpb=73b849f9292403300cc5251b16ebe2736050aa7d;p=mono.git diff --git a/web/runtime b/web/runtime index 97f2e4eb8e6..c2ecdf425a8 100644 --- a/web/runtime +++ b/web/runtime @@ -1,59 +1,104 @@ * The Mono runtime - The Mono runtime will implement the JIT engine (and a byte - code interpreter for quickly porting to new systems), the - class loader, the garbage collector, threading system and - metadata access libraries. + The Mono runtime engine is considered feature complete. - Currently the runtime has an image loader and metadata access - entry points. The runtime comes with a simple interpreter - that can execute very simple programs. + It implements a Just-in-Time compiler engine for the CIL + virtual machine, the class loader, the garbage collector, + threading system and metadata access libraries. -** Executing MSIL/CIL images + We currently have two runtimes: - The code will load an executable and map the references to - external assemblies to our own version of the assemblies on - Linux. + + + We are using the Boehm conservative garbage collector. + + The Mono runtime can be used as a stand-alone process, or it + can be embedded into applications (see + the documentation in mono/samples/embed for more details). + + Embedding the Mono runtime allows applications to be extended + in C# while reusing all of the existing C and C++ code. + + Paolo Molaro did a presentation on the current JIT engine and + the new JIT engine. You can find his slides + here + +** Current JIT Engine: technical details (updated, June 28th, 2003) - Our roadmap looks like this, this has been updated as of - Jul 15, 2001: + We have re-written our JIT compiler. We wanted to support a + number of features that were missing: - A setup similar to the Kaffe JIT engine will be used to - layout the code to support non-IA32 architectures. Our work - will be focused on getting a IA32 version running first. + The JIT engine implements a number of optimizations: + + There are a couple of books that deal with this technique: "A Retargetable C Compiler" and "Advanced Compiler Design and @@ -61,7 +106,13 @@ technical description of lbrug. - A few papers that describe the instruction selector: + The new JIT engines uses three intermediate representations: + the source is the CIL which is transformed into a forest of + trees; This is fed into a BURS instruction selector that + generates the final low-level intermediate representation. + + The instruction selector is documented in the following + papers: