diff options
-rw-r--r-- | doc/c-sharp | 16 | ||||
-rw-r--r-- | doc/index | 6 | ||||
-rw-r--r-- | doc/resources | 2 | ||||
-rw-r--r-- | doc/runtime | 51 | ||||
-rw-r--r-- | doc/status | 44 | ||||
-rw-r--r-- | web/c-sharp | 16 | ||||
-rw-r--r-- | web/index | 6 | ||||
-rw-r--r-- | web/resources | 2 | ||||
-rw-r--r-- | web/runtime | 51 | ||||
-rw-r--r-- | web/status | 44 |
10 files changed, 118 insertions, 120 deletions
diff --git a/doc/c-sharp b/doc/c-sharp index 8bdf91050d4..b65be0db90c 100644 --- a/doc/c-sharp +++ b/doc/c-sharp @@ -1,8 +1,7 @@ * MCS: The Ximian C# compiler - MCS began as an experiment to learn the features of C# by - writing a large C# program. MCS is currently able to compile - small C# programs. + MCS is currently able to compile small C# programs (there is + a test suite included that you can use). All type, field, method, delegates definitions are now emitted and the body of constructors and methods is being generated @@ -47,11 +46,9 @@ have to postpone this decision until the above steps are finished. - * Code generation: The compiler recently started generating IL - executables that contain interfaces. Work is - progressing in other areas. + * Code generation: The code generation is done through + the System.Reflection.Emit API. - The code generation is done through the System.Reflection.Emit API. </ul> <a name="tasks"> @@ -82,8 +79,6 @@ * Implement constant expression evaluator. * Implement constant declarations. - - * Implement enumerations. </ul> Interesting and Fun hacks to the compiler: @@ -106,9 +101,6 @@ features of C# that help reduce the number of bugs in applications. It is one interesting hack. - * Enum resolutions: it is another fun hack, as enums can be defined - in terms of themselves (<tt>enum X { a = b + 1, b = 5 }</tt>). - </ul> ** Questions and Answers diff --git a/doc/index b/doc/index index 5020ee6810e..bfd9da84ed9 100644 --- a/doc/index +++ b/doc/index @@ -23,6 +23,12 @@ You can contact the team at: <a href="mailto:mono-list@ximian.com">mono-list@ximian.com</a> +** Nov 16, 2001 + + Mike Kestner has posted an <a + href="http://lists.ximian.com/archives/public/gtk-sharp-list/2001-November/000015.html">update</a> + on Gtk# development. + ** Nov 14, 2001 Paolo today got the Mono C# compiler running <a diff --git a/doc/resources b/doc/resources index 3fcbb72bc65..c8ac62d8356 100644 --- a/doc/resources +++ b/doc/resources @@ -130,7 +130,7 @@ * <a href="http://www.intel.com/research/mrl/orp">ORP:</a> A research JIT/VM/GC system from Intel. - * C# bindings for OpenGL are available here: <a + * C# bindings for OpenGL and SDL are available here: <a href="http://csgl.sourceforge.net">http://csgl.sourceforge.net</a> * <a diff --git a/doc/runtime b/doc/runtime index 7217abfa83f..bf7c55501cd 100644 --- a/doc/runtime +++ b/doc/runtime @@ -13,28 +13,29 @@ The code will load an executable and map the references to external assemblies to our own version of the assemblies on - GNU/Linux. + Linux. Our roadmap looks like this, this has been updated as of <b>Jul 15, 2001</b>: <ul> - * Milestone 1: <b> Done</b> Fully read and parse all CIL byte-codes + * Milestone 1: <b>Done</b> Fully read and parse all CIL byte-codes and metadata tokens (ie, a disassembler). - * Milestone 2: Complete an interpreter for CIL byte + * Milestone 2: <b>Done</b> 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: Define an <i>lburg</i>-like instruction - selector for the JITer for Intel. Although slower - at JITing than a streaming JITer, it generates - better code. The same grammar can later be used for - the stream jitter. + * Milestone 3: <b>Done</b>Define an <i>lburg</i>-like + instruction selector for the JITer for Intel. + Although slower at JITing than a streaming JITer, it + generates better code. The same grammar can later + be used for the stream jitter. - * Milestone 4: Implement JITer. + * Milestone 4: Implement JITer. This is where our + current efforts are focused on, the JITer is 60% ready. * Milestone 5: Port of the JITer to non IA32 systems. </ul> @@ -47,34 +48,27 @@ will need to install the CygWin32 development tools to get a Unix-like compilation environment. -** JIT Engine (<b>updated, Jul 14th, 2001</b>) +** JIT Engine (<b>updated, Nov 16th, 2001</b>) - We will be using a code-generator generator approach for our - JITer. Given the properties of CIL byte codes, we can take - full advantage of a real instruction selector for our code - generator. + The JIT engine uses a code-generator generator approach for + compilation. Given the properties of CIL byte codes, we can + take full advantage of a real instruction selector for our + code generator. There are a couple of books that deal with this technique: "A Retargetable C Compiler" and "Advanced Compiler Design and Implementation" are good references. You can also get a technical description of <a - href="http://research.microsoft.com/copyright/accept.asp?path=http://www.research.microsoft.com/~drh/pubs/iburg.pdf&pub=ACM">lbrug</a> + href="http://research.microsoft.com/copyright/accept.asp?path=http://www.research.microsoft.com/~drh/pubs/iburg.pdf&pub=ACM">lbrug</a>. - Previously we had looked at a number of JIT engines and tools, - but they would not take full advantage of the CIL properties: + A few papers that describe the instruction selector: <ul> - * <a - href="http://www.intel.com/research/mrl/orp/">ORP</a> + * <a href="http://research.microsoft.com/copyright/accept.asp?path=http://www.research.microsoft.com/~drh/pubs/interface.pdf&pub=wiley">A code generation interface for ANSI C</a> - * <a - href="http://www.gnu.org/software/lightning/">GNU - Lightning</a> - * <a href="http://www.eecs.harvard.edu/~nr/toolkit/">NJ Machine - Toolkit</a>.). + * <a href="http://research.microsoft.com/copyright/accept.asp?path=http://www.research.microsoft.com/~drh/pubs/iburg.pdf&pub=ACM">Engineering efficient code generators using tree matching and dynamic programming.</a> - * VCODE. </ul> ** Garbage Collection @@ -114,6 +108,13 @@ <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmag00/html/GCI2.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmag00/html/GCI2.asp</a> </ul> +** IO and threading + + The ECMA runtime and the .NET runtime assume an IO model and a + threading model that is very similar to the Win32 API. Dick + Porter has been working on the Mono abstraction layer that allows + our runtime to execute code that depend on this behaviour. + ** Useful links Paolo Molaro found a few interesting links: diff --git a/doc/status b/doc/status index d2e09c7e837..28bf3ba93bd 100644 --- a/doc/status +++ b/doc/status @@ -4,35 +4,35 @@ Pieces of Mono that have been implemented: <ul> - * C# compiler: The C# parser can now generate parse - trees. Next up: semantic analysis, compiler lever optimizations - and code generation. + * C# compiler: The C# compiler is mostly complete, a + few features are still missing (for a list, check the + <a href="c-sharp.html">C# compiler</a> web page. - * Metadata library: Can currently parse and load - information from .NET modules (executables and DLL - files). + * A CIL bytecode interpreter (<b>mint</b>). This + currently can be used to run most .NET programs + (modulo the fact that our class libraries are not + complete enough). - Parsing of Exception tables is missing. + <b>mint</b> can currently run the Mono C# compiler and + the compiler generates valid code. + + We use <b>mint</b> as a reference implementation of + the runtime environment and to quickly support + non-Intel platforms. + + * The Mono JIT engine. The JIT engine is the real + virtual machine that we will be supporting. It is + approaching maturity rapidly. + + * Metadata library: Can currently parse + and load information from .NET modules (executables + and DLL files). * Disassembler: Can disassemble .NET modules. Still lacking exception handling as well as useful debugging tools (hex dumping, token dumping). * Class Libraries: You can check the current status in the - <a href="class-status.html">Class Status page</a> + <a href="class-status.html">Class Status page</a>. </ul> - Tasks on the critical path: - - <ul> - * Bytecode interpreter: (Paolo is working on this). - - * Simple JIT: Not implemented yet (Miguel is - researching the code-generator generator) - - * Garbage collection engine (Dick is working on this, his contact is <a - href="mailto:dick@ximian.com">dick@ximian.com</a> - </ul> - - If you want to work on any task here, please mail <a - href="mailto:mono-list@ximian.com">mono-list@ximian.com</a> diff --git a/web/c-sharp b/web/c-sharp index 8bdf91050d4..b65be0db90c 100644 --- a/web/c-sharp +++ b/web/c-sharp @@ -1,8 +1,7 @@ * MCS: The Ximian C# compiler - MCS began as an experiment to learn the features of C# by - writing a large C# program. MCS is currently able to compile - small C# programs. + MCS is currently able to compile small C# programs (there is + a test suite included that you can use). All type, field, method, delegates definitions are now emitted and the body of constructors and methods is being generated @@ -47,11 +46,9 @@ have to postpone this decision until the above steps are finished. - * Code generation: The compiler recently started generating IL - executables that contain interfaces. Work is - progressing in other areas. + * Code generation: The code generation is done through + the System.Reflection.Emit API. - The code generation is done through the System.Reflection.Emit API. </ul> <a name="tasks"> @@ -82,8 +79,6 @@ * Implement constant expression evaluator. * Implement constant declarations. - - * Implement enumerations. </ul> Interesting and Fun hacks to the compiler: @@ -106,9 +101,6 @@ features of C# that help reduce the number of bugs in applications. It is one interesting hack. - * Enum resolutions: it is another fun hack, as enums can be defined - in terms of themselves (<tt>enum X { a = b + 1, b = 5 }</tt>). - </ul> ** Questions and Answers diff --git a/web/index b/web/index index 5020ee6810e..bfd9da84ed9 100644 --- a/web/index +++ b/web/index @@ -23,6 +23,12 @@ You can contact the team at: <a href="mailto:mono-list@ximian.com">mono-list@ximian.com</a> +** Nov 16, 2001 + + Mike Kestner has posted an <a + href="http://lists.ximian.com/archives/public/gtk-sharp-list/2001-November/000015.html">update</a> + on Gtk# development. + ** Nov 14, 2001 Paolo today got the Mono C# compiler running <a diff --git a/web/resources b/web/resources index 3fcbb72bc65..c8ac62d8356 100644 --- a/web/resources +++ b/web/resources @@ -130,7 +130,7 @@ * <a href="http://www.intel.com/research/mrl/orp">ORP:</a> A research JIT/VM/GC system from Intel. - * C# bindings for OpenGL are available here: <a + * C# bindings for OpenGL and SDL are available here: <a href="http://csgl.sourceforge.net">http://csgl.sourceforge.net</a> * <a diff --git a/web/runtime b/web/runtime index 7217abfa83f..bf7c55501cd 100644 --- a/web/runtime +++ b/web/runtime @@ -13,28 +13,29 @@ The code will load an executable and map the references to external assemblies to our own version of the assemblies on - GNU/Linux. + Linux. Our roadmap looks like this, this has been updated as of <b>Jul 15, 2001</b>: <ul> - * Milestone 1: <b> Done</b> Fully read and parse all CIL byte-codes + * Milestone 1: <b>Done</b> Fully read and parse all CIL byte-codes and metadata tokens (ie, a disassembler). - * Milestone 2: Complete an interpreter for CIL byte + * Milestone 2: <b>Done</b> 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: Define an <i>lburg</i>-like instruction - selector for the JITer for Intel. Although slower - at JITing than a streaming JITer, it generates - better code. The same grammar can later be used for - the stream jitter. + * Milestone 3: <b>Done</b>Define an <i>lburg</i>-like + instruction selector for the JITer for Intel. + Although slower at JITing than a streaming JITer, it + generates better code. The same grammar can later + be used for the stream jitter. - * Milestone 4: Implement JITer. + * Milestone 4: Implement JITer. This is where our + current efforts are focused on, the JITer is 60% ready. * Milestone 5: Port of the JITer to non IA32 systems. </ul> @@ -47,34 +48,27 @@ will need to install the CygWin32 development tools to get a Unix-like compilation environment. -** JIT Engine (<b>updated, Jul 14th, 2001</b>) +** JIT Engine (<b>updated, Nov 16th, 2001</b>) - We will be using a code-generator generator approach for our - JITer. Given the properties of CIL byte codes, we can take - full advantage of a real instruction selector for our code - generator. + The JIT engine uses a code-generator generator approach for + compilation. Given the properties of CIL byte codes, we can + take full advantage of a real instruction selector for our + code generator. There are a couple of books that deal with this technique: "A Retargetable C Compiler" and "Advanced Compiler Design and Implementation" are good references. You can also get a technical description of <a - href="http://research.microsoft.com/copyright/accept.asp?path=http://www.research.microsoft.com/~drh/pubs/iburg.pdf&pub=ACM">lbrug</a> + href="http://research.microsoft.com/copyright/accept.asp?path=http://www.research.microsoft.com/~drh/pubs/iburg.pdf&pub=ACM">lbrug</a>. - Previously we had looked at a number of JIT engines and tools, - but they would not take full advantage of the CIL properties: + A few papers that describe the instruction selector: <ul> - * <a - href="http://www.intel.com/research/mrl/orp/">ORP</a> + * <a href="http://research.microsoft.com/copyright/accept.asp?path=http://www.research.microsoft.com/~drh/pubs/interface.pdf&pub=wiley">A code generation interface for ANSI C</a> - * <a - href="http://www.gnu.org/software/lightning/">GNU - Lightning</a> - * <a href="http://www.eecs.harvard.edu/~nr/toolkit/">NJ Machine - Toolkit</a>.). + * <a href="http://research.microsoft.com/copyright/accept.asp?path=http://www.research.microsoft.com/~drh/pubs/iburg.pdf&pub=ACM">Engineering efficient code generators using tree matching and dynamic programming.</a> - * VCODE. </ul> ** Garbage Collection @@ -114,6 +108,13 @@ <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmag00/html/GCI2.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmag00/html/GCI2.asp</a> </ul> +** IO and threading + + The ECMA runtime and the .NET runtime assume an IO model and a + threading model that is very similar to the Win32 API. Dick + Porter has been working on the Mono abstraction layer that allows + our runtime to execute code that depend on this behaviour. + ** Useful links Paolo Molaro found a few interesting links: diff --git a/web/status b/web/status index d2e09c7e837..28bf3ba93bd 100644 --- a/web/status +++ b/web/status @@ -4,35 +4,35 @@ Pieces of Mono that have been implemented: <ul> - * C# compiler: The C# parser can now generate parse - trees. Next up: semantic analysis, compiler lever optimizations - and code generation. + * C# compiler: The C# compiler is mostly complete, a + few features are still missing (for a list, check the + <a href="c-sharp.html">C# compiler</a> web page. - * Metadata library: Can currently parse and load - information from .NET modules (executables and DLL - files). + * A CIL bytecode interpreter (<b>mint</b>). This + currently can be used to run most .NET programs + (modulo the fact that our class libraries are not + complete enough). - Parsing of Exception tables is missing. + <b>mint</b> can currently run the Mono C# compiler and + the compiler generates valid code. + + We use <b>mint</b> as a reference implementation of + the runtime environment and to quickly support + non-Intel platforms. + + * The Mono JIT engine. The JIT engine is the real + virtual machine that we will be supporting. It is + approaching maturity rapidly. + + * Metadata library: Can currently parse + and load information from .NET modules (executables + and DLL files). * Disassembler: Can disassemble .NET modules. Still lacking exception handling as well as useful debugging tools (hex dumping, token dumping). * Class Libraries: You can check the current status in the - <a href="class-status.html">Class Status page</a> + <a href="class-status.html">Class Status page</a>. </ul> - Tasks on the critical path: - - <ul> - * Bytecode interpreter: (Paolo is working on this). - - * Simple JIT: Not implemented yet (Miguel is - researching the code-generator generator) - - * Garbage collection engine (Dick is working on this, his contact is <a - href="mailto:dick@ximian.com">dick@ximian.com</a> - </ul> - - If you want to work on any task here, please mail <a - href="mailto:mono-list@ximian.com">mono-list@ximian.com</a> |