Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel de Icaza <miguel@gnome.org>2001-06-20 03:08:44 +0400
committerMiguel de Icaza <miguel@gnome.org>2001-06-20 03:08:44 +0400
commit6049b85accef724f847767f3b0a9e9033b8c34bb (patch)
tree7ac962987263ba8805a235e78567ee62082196dd /doc/runtime
parent2df9c2fb52a216fe6bc82dc3d04b28ab6f55bc30 (diff)
Add docs
svn path=/trunk/mono/; revision=15
Diffstat (limited to 'doc/runtime')
-rw-r--r--doc/runtime70
1 files changed, 70 insertions, 0 deletions
diff --git a/doc/runtime b/doc/runtime
new file mode 100644
index 00000000000..877d3435e51
--- /dev/null
+++ b/doc/runtime
@@ -0,0 +1,70 @@
+* The MonoNet runtime
+
+ The MonoNet 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.
+
+ Currently the runtime contains the beginning of an image
+ loader and metadata access entry points. Since Beta2 has been
+ now released, it is possible to resume work using the ECMA
+ specs and testing with Beta2-generated executables.
+
+ The runtime core will be implemented in C, in a library
+ "libMonoVES.so".
+
+** Executing MSIL/CIL images
+
+ The code will load an executable and map the references to
+ external assemblies to our own version of the assemblies on
+ GNU/Linux.
+
+ Our roadmap looks like this:
+
+ * Milestone 1: Fully read and parse all CIL byte-codes
+ and metadata tokens (ie, a disassembler).
+
+ * Milestone 2: 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: IA32 translating-JIT engine.
+
+ * Milestone 4: non-Intel port of the JIT engine.
+
+ * Milestone 5: Optimizing JIT engine port for IA32.
+
+ * Milestone 6: non-Intel port of the Optimizing JIT
+ engine.
+
+ A setup similar to the Kaffe JIT engine can 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 should work on Linux and Win32, although you
+ might need to install the CygWin32 development tools to get a
+ Unix-like compilation environment which is what we know how to
+ use.
+
+** Garbage Collection
+
+ We have decided to implement a tracing garbage collector,
+ which is very similar to the one being used by .NET. For an
+ introduction to the garbage collection system used by
+ Microsoft's CLR implementation, you can read this book on <a
+ href="http://www.amazon.com/exec/obidos/ASIN/0471941484/o/qid=992556433/sr=2-1/ref=aps_sr_b_1_1/103-5866388-0492603">Garbage
+ Collection.</a>
+
+ Although using a conservative garbage collector like Bohem's
+ would work, all the type information is available at runtime,
+ so we can actually implement a better collector than a
+ conservative collector.
+
+** PInvoke
+
+ PInvoke will be supported, and will be used to wrap Unix API
+ calls, these in turn are required for reusing some of the
+ GNOME libraries that will reduce the work we have to do to
+ deliver a complete class library
+