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:
Diffstat (limited to 'web/c-sharp')
-rw-r--r--web/c-sharp89
1 files changed, 51 insertions, 38 deletions
diff --git a/web/c-sharp b/web/c-sharp
index fa4dad1d732..ffa0b574bef 100644
--- a/web/c-sharp
+++ b/web/c-sharp
@@ -1,22 +1,18 @@
* MCS: The Ximian C# compiler
- MCS is currently able to compile itself and many more C#
- programs (there is a test suite included that you can use).
+ The Mono C# compiler is considered feature C# 1.0 complete at
+ this point and mature. MCS is able to compile itself and many
+ more C# programs (there is a test suite included that you can
+ use). It is routinely used to compile Mono, roughly 1.7
+ million lines of C# code.
- We are in feature completion mode right now. There are still
- a couple of areas that are not covered by the Mono compiler, but
- they are very very few at this point.
+ The compiler is also fairly fast. On a IBM ThinkPad t40 it
+ compiles 18,000 lines of C# code per second.
- MCS was able to parse itself on April 2001, MCS compiled itself
- for the first time on December 28 2001. MCS became self hosting
- on January 3rd, 2002.
-
- The Mono Runtime and the Mono execution engine were able to make
- our compiler self hosting on March 12, 2002.
-
- A test suite is maintained to track the progress of
- the compiler and various programs are routinely compiled and
- ran.
+ Work on C# 2.0 has started: some pieces of it are available on
+ the standard compiler with the -2 switch (iterators, method
+ conversions) and some others are available on the `gmcs'
+ branch on CVS (generics)
** Obtaining MCS
@@ -27,8 +23,8 @@
** Running MCS
MCS is written in C# and uses heavily the .NET APIs. MCS runs
- on Linux (with the Mono runtime) and Windows (with the .NET
- framework runtime)
+ on Linux with the Mono runtime and on Windows with both the
+ .NET runtime and the Mono runtime.
** Reporting Bugs in MCS
@@ -103,36 +99,53 @@
able to use this generic CIL optimizer in their projects
reducing their time to develop a production compiler.
-<a name="tasks">
-** Current pending tasks
+* Open bugs
- Simple tasks:
+ See the <a href="bugs.html">bugs page</a> for more information.
- <ul>
- * Redo the way we deal with built-in operators.
- </ul>
+ A test suite is maintained to track the progress of
+ the compiler and various programs are routinely compiled and
+ ran.
- Larger tasks:
- <ul>
+* Slides
- * Jay does not work correctly with `error'
- productions, making parser errors hard to point. It
- would be best to port the Bison-To-Java compiler to
- become Bison-to-C# compiler.
-
- Nick Drochak has started a project on SourceForge for this.
- You can find the project at: <a href="http://sourceforge.net/projects/jb2csharp/">
- http://sourceforge.net/projects/jb2csharp/</a>
+ Slides for the Mono C# Compiler presentation at .NET ONE are
+ available <a
+ href="http://primates.ximian.com/~miguel/slides-europe-nov-2002/Mono_C_Sharp_Overview_1007.sxi">here</a>
+ in StarOffice format.
- * Semantic Analysis: Return path coverage and
- initialization before use coverage are two great
- features of C# that help reduce the number of bugs
- in applications. It is one interesting hack.
+** History
- </ul>
+ MCS was able to parse itself on April 2001, MCS compiled itself
+ for the first time on December 28 2001. MCS became self hosting
+ on January 3rd, 2002.
+
+ The Mono Runtime and the Mono execution engine were able to make
+ our compiler self hosting on March 12, 2002.
** Questions and Answers
+Q: Does the Mono C# compiler support C# 2.0?
+
+A: At this point the Mono C# compiler supports some of the features of
+ C# 2.0, but the support has not been completed. To enable 2.0 features
+ you must use the -2 flag to the compiler.
+
+Q: What features are available as of Feb 2004?
+
+A: Iterators have been implemented as well as method group implicit
+ conversion to delegates on the main compiler branch.
+
+ We have a branch of the compiler in the module `mcs/gmcs' which is
+ where we are developing the Generics support for the compiler. Plenty
+ of tests work (see mcs/tests/gen-*.cs for a list of tests), but work
+ remains to be done.
+
+Q: Will the C# 2.0 features be part of the Mono 1.0 release?
+
+A: Only a few, the generic compiler will not be part of the 1.0
+ stable release, but a beta preview will be distributed.
+
Q: Why not write a C# front-end for GCC?
A: I wanted to learn about C#, and this was an exercise in this