X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=web%2Fruntime;h=d1dabab996859a2a487b5fa71da0898941fc91be;hb=bbe1510f778972449edfffd64ac78b61ee776009;hp=6c04b7c2ee9f63887f2dad8c51232648ebca9d65;hpb=613137c6d5d05d4535cba0c5e29f081411d8647c;p=mono.git diff --git a/web/runtime b/web/runtime index 6c04b7c2ee9..d1dabab9968 100644 --- a/web/runtime +++ b/web/runtime @@ -1,70 +1,105 @@ * 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. + + 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. We currently have two runtimes: - Currently both runtimes are missing garbage collection. We - are planning on using the ORP GC engine and deploy it by - middle January. + 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). -** Executing MSIL/CIL images + Embedding the Mono runtime allows applications to be extended + in C# while reusing all of the existing C and C++ code. - The code will load an executable and map the references to - external assemblies to our own version of the assemblies on - Linux. + Paolo Molaro did a presentation on the current JIT engine and + the new JIT engine. You can find his slides + here - Our roadmap looks like this, this has been updated as of - Dec 18, 2001: +** Current JIT Engine: technical details (updated, June 28th, 2003) + + 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: - The JIT engine should work on Linux and Win32, although you - will need to install the CygWin32 development tools to get a - Unix-like compilation environment (mostly we use GNU make in - a few of the makefiles). + There are a couple of books that deal with this technique: "A Retargetable C Compiler" and "Advanced Compiler Design and @@ -72,7 +107,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: