X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fruntime;h=ecae4673a7ecfed7c3f039d6f87383d906dc18c0;hb=b4ff470fdaf0e846080d3fc4cf99c4e1102a96bb;hp=908600e8f84b648122fe012f27724ea805dd61b9;hpb=d7bfce6071b0e318c2bb04cb88b198eda97335b4;p=mono.git
diff --git a/doc/runtime b/doc/runtime
index 908600e8f84..ecae4673a7e 100644
--- a/doc/runtime
+++ b/doc/runtime
@@ -17,49 +17,21 @@
Currently we are using the Bohem conservative garbage
- collector, but we working on incorporating the ORP GC engine.
+ collector.
-** Executing MSIL/CIL images
+ 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).
- The code will load an executable and map the references to
- external assemblies to our own version of the assemblies on
- Linux.
+ Embedding the Mono runtime allows applications to be extended
+ in C# while reusing all of the existing C and C++ code.
- Our roadmap looks like this, this has been updated as of
- Dec 18, 2001:
+ Paolo Molaro did a presentation on the current JIT engine and
+ the new JIT engine. You can find his slides
+ here
-
-
- * Milestone 1: Done Fully read and parse all CIL byte-codes
- and metadata tokens (ie, a disassembler).
-
- * Milestone 2: Done Complete an interpreter for CIL byte
- codes. This interpreter can be used temporarly to
- run CIL byte code on a system where no JIT is
- available.
-
- * Milestone 3: DoneDefine an lburg-like
- instruction selector for the JITer for Intel.
-
- * Milestone 4: Done Implement JITer. This is where our
- current efforts are focused on, the JITer currently runs
- all of the code we have tested on it. The major limitation
- is that our class libraries are not complete, and hence not
- every application can be ran.
-
- * Milestone 5: Port of the JITer to non IA32 systems.
-
-
- 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 works 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).
-
-** JIT Engine (updated, April 21, 2002)
+** Current JIT Engine (updated, July 8th, 2002)
The JIT engine uses a code-generator generator approach for
compilation. Given the properties of CIL byte codes, we can
@@ -80,6 +52,10 @@
Although compilers typically do
constant folding, the combination of inlining with
constant folding gives some very good results.
+
+ * Linear scan register allocation. In the past,
+ register allocation was our achilles heel, but now
+ we have left this problem behind.
There are a couple of books that deal with this technique: "A
@@ -98,15 +74,13 @@
-** Future plans
-
- We are evaluating the future directions for the JIT engine:
- both from our needs (optimizations like inlining, better register allocation,
- instruction scheduling, and porting to other CPUs).
+** New JIT engine.
- We have not yet decided how we will evolve the JIT engine. We
- might just upgrade our current architecture, and provide optimizations as
- an extra layer.
+ We are working on a new JIT engine. The new JIT engine
+ focuses on portability and in two intermediate representations
+ that simplify the development of optimizations. This together
+ with the Ahead-of-Time compilation will allow developers to
+ deploy applications that match the speed of natively compiled code.
** Garbage Collection