Ximian announced the launch of the Mono project, an effort to create an Open Source implementation of the .NET Development Framework. Mono includes: a compiler for the C# language, a runtime for the Common Language Infrastructure and a set of class libraries. You can read our rationale for this project. If you have questions about the project, please read our list of Frequently Asked Questions or contact us. You might also want to Download the source for our work so far. Grab a snapshot of our current work, or browse the sources You might want to subscribe to our mono-list and mono-announce-list You can contact the team at: mono-list@ximian.com
C# Compiler Self hosting on Linux
Self hosting on .NET.
JIT Linux/x86 working.
Interpreter Working:
Linux/x86, Linux/PPC
In progress: StrongARM, SPARC.
Classes Corlib is self hosting.
** May 1st, 2002 Daily packages for Debian are available here ** Apr 26, 2002 Binary packages of Mono 0.11 are available for Windows (Thanks to Johannes Roith) and for Linux (thanks to BaseLabs). ** Apr 24, 2002 Mono 0.11 is out! Mostly performance improvements, bug fixes and more classes are included. A new version of the runtime, compiler and class libraries has been packaged for your download pleasure. Binaries are included. The Release Notes are available. You can get it Here (quick links: runtime and compiler/classes). ** Apr 23, 2002 SharpDevelop 0.88a is out! Congratulations to the developers behind SharpDevelop for their new release. ** Apr 20, 2002 Some updates from the hacking lines: The web: Patrik Torstensson last week contributed the http runtime support and started work on thread pools. This is part of the ASP.NET support. Docs: John Barnette, John Sohn and Adam Treat have been hacking on MonoDoc. ADO.NET: Daniel Morgan and Rodrigo Moya have been working on the ADO.NET support, and got the first signs of life this week (we can connect, insert rows; do transactions: commit/rollback; SQL errors and exceptions work). Check mono-patches for all the goodies. Optimizations: A number of optimizations in the runtime made the compiler twice as fast this week: Early this week Patrik started the string rewrite in the runtime. Today Dietmar finished the constructors and deployed the new layout. Paolo got the JIT engine to generate profiles, which were in turn used to find hot spots in Reflection, which he improved. Daniel Lewis (of Regex fame) noticed the performance issues with our current array layout, and contributed a new array representation. At the same time Dietmar started the the JIT inline code and implemented constant propagation. These two optimizations together are very powerful. Bug fixing: And of course everyone has been helping out with the bug fixing (Duncan, Gonzalo, Jonathan, Miguel, Nick, Ravi, Sergey) ** Apr 18, 2002 Dietmar's inlining for the JIT engine just landed into CVS. This is only a first cut and more improvements will come later. Patrik, Paolo, Dietmar and Gonzalo have been busy optimizing our class libraries and runtime engine to become faster. Many changes on CVS as well. ** Apr 11, 2002 Gtk# 0.1 "ButtonHook" has been released Binaries for the Mono Regression Test Suite are available for people porting the Mono Runtime to new platforms. ** Apr 6, 2002 Advanced .NET Remoting from Ingo Rammer is now available. Ingo helped us to implement the proxy support and the book is a valuable resource for anyone interested in remoting. ** Apr 5, 2002 Transparent proxy support has been finished, congrats to Dietmar. Our JIT engine on CVS contains the implementation. This should enable people to test the remoting framework on Mono. ** Mar 28, 2002 Debugging information is now generated by the compiler thanks to Martin's work. The resulting dwarf file can be used to single step C# code in GDB. A document will be shortly published with the details. ** Mar 27, 2002 Mono 0.10 is out! The self hosting release of Mono has been released. A new version of the runtime, compiler and class libraries has been packaged for your download pleasure. Binaries are included. The Release Notes are available. You can get it Here (quick links: runtime and compiler/classes). ** Mar 26, 2002 Paolo finally fixed the last bug in the JITer that stopped us from using it to run the Mono C# compiler. Goodies are on CVS. Gtk# runs Hello World. Mike posted some details. ** Mar 19, 2002 Martin has been working on our debugging infrastructure, both on the JIT side of things (adding dward support) as well as on the class libraries (so that MCS can start generating debugging information). Jason and Kral keep working on the System.Xml namespace, allowing Mike to move more to self-hosting his Gtk# code. The System.Web classes are now part of the build (and they are also part of the class status now). Ajay contributed a large chunk of code to the System.Xml.Schema namespace Dan (of regex fame) has been working on internal calls support: moving more code from the old monowrapper to become internal calls. Paolo and Dietmar are working steadily on our runtime environment, fixing bugs, adding missing features and allowing us to run the compiler on Linux. Remember to post your bug reports. The nice class status on the right is brought to you by endless hacking hours from Piers and Nick. These status report pages have been helping us track down various mistakes in our classes (very useful, check it out for yourself) ** Mar 12, 2002 At midnight, in Italy, Paolo got the Mono C# compiler to self host on Linux, the last bug has been squashed to self hostingness. We have now a fully self hosting compiler in Linux. A release will follow up shortly. ** Mar 9, 2002 Updated the class status, now it is possible to use the right-side menu to browse a specific assembly. ** Mar 7, 2002 MCS compiles on Linux! Today Paolo got the MCS compiler compiling itself on Linux completely for the first time! The resulting image still contains some errors, but the whole compiler process goes now. Later in the day and a couple of small optimizations and bug fixes, the compile speed was improved in 400% We are very close to have a complete self hosting environment now. Mono is temporarly using the Bohem GC garbage collector while we deploy the more advanced ORP one. ** Mar 5, 2002 The CVS repository can be browsed Jason has got an incredible amount of work on the Xml classes during the weekend, and Gaurav is very close to have the complete System.Web.UI.WebControls namespace implemented. Martin and Duco have been killing bugs by using the recently revamped regression test suite. Piers has updated our class status page again, with even more information available. The C# compiler has full constant folding implemented now and Ravi killed bugs of bugs in the Mono Bug List ** Mar 1, 2002 RPMs of Mono 0.9 are available at mono.baselabs.com ** Feb 28, 2002 Christophe has setup his First Steps in Mono web site, which shows you a step-by-step process on getting Mono running on your system. RPMs of Mono 0.9 are available at mono.baselabs.org ** Feb 27, 2002 New class status engine that provides detailed information about missing functionality in our class libraries. Nick built the cormissing tool and Piers did the XSLT and DHTML magic. More compiler progress on Linux: our support runtime now enables the compiler to compile `MIS' on Linux (MIS being Dick's Mono sample HTTP server ;-) ** Feb 26, 2002 Paolo posted a list of ways you can help if you do not have Windows right now. Sergey followed up with his suggestions. ** Feb 25, 2002 StrongARM port from Sergey Chaban has been checked into CVS. ** Feb 24, 2002 SPARC: 44 out of 74 tests pass now (Jeff) Power PC: delegates are working now (Radek) ** Feb 22, 2002 Mono 0.9 has been released! A new version of the runtime, compiler and class libraries has been packaged for your download pleasure. The Release Notes You can get it Here (quick links: runtime and compiler/classes). ** Feb 21, 2002 Paolo got our compiler natively to compile 117 of our tests. Self hosting is closer every day. Unsafe support is finished in the C# compiler. ** Feb 20, 2002 Gaurav got DataGrid and DataGridItemCollection done. C# compiler: Unsafe support is mostly complete (only stackalloc is missing). New easy to run scripts for compiling Mono on Unix and Windows is available. We can now easily compile Mono on Windows and Linux. If you had trouble before, use the above scripts which will get the setup right for you. There are now three machines that can provide AnonCVS, just use anoncvs.go-mono.com as the hostname for your CVSROOT and you will get one of the machines. ** Feb 19, 2002 Do you want to see what Mono Looks Like? ** Feb 18, 2002 Application Domains now support the two LoaderOptimization modes: share code or do not share code, and you can control this with the --share-code command line option. Paolo has now 100+ test cases run on Linux now with our class libraries. PowerPC and SPARC ports are moving along (Radek and Jeff) ** Feb 13, 2002 Excellent news since the 11th, here is a quick rundown: AppDomains have been deployed (Dietmar). Socket work is done (Dick). Corlib compiled with no refs to mscorlib (Dan). New comprehensive tests for colib bits (David). Nick is driving the regression test suite efforts and class library completeness. New System.Data work (Chris). Bug fixes (Paolo, Duncan, Ravi, Miguel) Miguel is off to the FOSDEM conference in Brussels. ** Feb 11, 2002 Mono 0.8 has been released! A new version of the runtime, compiler and class libraries has been packaged for your download pleasure. You can get it Here (quick links: runtime and compiler/classes) ** Feb 11, 2002 We would like to welcome all the new developers that have joined the project in the last couple of days. The classes are rapidly moving. An explanation of the relationship between GNOME and Mono. Nick is still leading our test suite platform. I can not stress how important it is to have a good regression test suite for our platform, as buggy class libraries are what are stopping the compiler from running completely on Linux. We are of course psyched to see Mono run on non-Linux systems. Work is moving on native code generation for StrongARM, PowerPC, and SPARC as well as porting Mono to other systems. There are a couple of debates on the Mono list on implementing a set of web server classes for enabling ASP.NET on Mono. Paolo also posted a list of pending tasks to enable the compiler to run on Linux ** Feb 10, 2002 Mike Kestner has posted an Update on his Gtk# activities. ** Feb 4, 2002 Adam has done Qt bindings for .NET. Adam is cool. ** Jan 29, 2002 Dan Lewis has contributed a major missing set of classes to Mono: System.Text.RegularExpressions. This is a fully .NET compatible implementation of the .NET regular expressions, fully Unicode aware. This contribution is very appreciated, as implementing this was not entirely trivial (supporting Unicode, plus a regex engine which is a super set of the Perl regex engine). ** Jan 28, 2002 The Mono contributors have relicensed the Class Libraries under the terms of the MIT X11 license. This license is an Open Source license, and is used by other projects (most notably, the XFree86 project). The runtime (JIT, metadata library, interpreter) remains under the LGPL and the C# compiler remains under the GPL. Our Press Release Press coverage: CNet, Wired, InfoWorld, NewsForge. ** Jan 23, 2002 New mailing list: mono-patches@ximian.com. This mailing list will receive automatically the patches that are submitted to the Mono CVS to any of its modules. This allows anyone who wants to participate in the peer-review of the code submitted to CVS to receive patches on e-mail. It should also expose to everyone the changes that are being done by the team every day. ** Jan 21, 2002 Dick has got a simple web server running with Mono (`MIS: Mono Internet Server') that is mostly used to test our IO layer, a screenshot Paolo and Dietmar are busy making our runtime self sufficient on non-Windows platforms. C# compiler front: A lot of focus in the past weeks after the C# became self hosting has been in making the compiler a useful tool for development: improve error handling, provide better error reports, fixing all known bugs, and finally profiling of the compiler has begun. ** Jan 8, 2002 Our compiler has been self-supporting since January 3rd. In the meantime, we have been busy working on making it run on Linux. Today Paolo got more work done on Reflection.Emit and the compiler compiled `console.cs' (a sample Mono program) on Linux. ** Jan 4, 2002 Dietmar landed the Unicode support patch. Class libraries and runtimes are now fully Unicode aware. The details are here Last minute breaking news: Paolo got our compiler in Linux to compile fib.cs, patches are comming tomorrow once we have ChangeLog entries. ** Jan 4, 2002 Mike Kestner posted an update on Gtk# New year, new direction. Gtk# will be our foundation on which we will be implementing System.Windows.Forms. ** Jan 3, 2002 Mono C# compiler becomes self-sufficient. We can now continue development of the compiler with itself. Work on the class libraries is still underway for having a full self hosting system. We hope to achieve our goal of self-hosting on Linux before the end of the month. Join the fun by downloading either tonight's snapshot or getting your sources from our Anonymous CVS server. ** Dec 28, 2001 After a lot of work, the C# compiler can compile itself. There are still errors in the generated image, but they are being fixed quickly. We will soon have the first non-Microsoft C# implementation! ** Dec 18, 2001 JIT: More work on our IO abstraction layer (Dick). JIT: exception handling for unmanaged code (Dietmar) System.Reflection: Support for PropertyInfo and PropertyBuilder as well as the various queries for MethodBase. C#: Pre-processor; Rewrite of MemberLookup which fixed many of the outstanding issues. More bug fixing allows it to compile more programs. ** Dec 14, 2001 Dietmar has improved the register allocation and now Mono performs two to three times as fast as it did yesterday. Amazing. The compiler keeps moving along, explicit interface implementation is there. ** Dec 11, 2001 The JIT engine can now run all the compiler regression tests as well as assorted other programs, many more opcodes added recently. Currently the JIT engine uses a very simplistic register allocator (just enough to allow us to focus on feature completeness) and that will be the next major task to improve performance and reduce spills and reloads. On the C# compiler front: language features are now pretty much complete. The big missing tasks are unsafe code support, visibility, explicit interface implementation plus static flow analysis. There are many small bugs that need to be addressed. You can get your copy of the latest Mono More work is also required on fixing the foundation class libraries, it is easy to find spots now since Nick got the `make test' going. ** Dec 1, 2001 AnonCVS access to Mono is here (updated every hour). Thanks to HispaLinux and Jesus Climent for helping to set this up. ** Nov 30, 2001 All tests from the mono runtime work with the JIT engine now (Dietmar). Recursive enumeration definition in the C# compiler are working now (Ravi). More work on the Web classes (Gaurav). ** Nov 28, 2001 JIT land: Paolo got GDB support into the JIT engine while Dietmar added exceptions support to it. The C# compiler supports all array initializations now, and the switch statement as well as fixing many existing bugs. Many new more tests. Nick keeps working on improving our class library test suite. Dick has almost completed the Mono IO layer. ** Nov 16, 2001
Mike Kestner has posted an update on Gtk# development.
** Nov 14, 2001
Paolo today got the Mono C# compiler running on Linux. It compiles a sample program and then the sample program is executed. Mutator unary operators (++ and --) in the compiler are fully functional, they used to only work on variables, and now they are complete. To sum things up: The Mono C# compiler is written in C# and uses the .NET classes to get its work done. To make this work on Linux work has to happen in various fronts: At the same time, Dietmar is working on the JIT engine which will replace our interpreter in production.
** Nov 12, 2001
Dietmar got value types working on the JIT engine. Sean has got assembly loading in the runtime (required for NUnit). More progress on enumerations and attributes from Ravi. Nick keeps working on improving our class libraries.
** Nov 8, 2001
Enumerations, array access and attributes for the C# compiler are into the CVS now. Full array support is not complete, but moving along.
** Nov 5, 2001
Dietmar's new set of patches to the JIT have 20 out of 33 tests running now.
** Nov 4, 2001
Mike Kestner, main Gtk# contributor has posted a very interesting update on his work on Gtk#. Ravi commited the initial support for Attributes in the compiler. Many HTML Controls from Leen checked into CVS. Paolo checked in his new System.Reflection and System.Reflection.Emit implementations. He has been working steadily on this huge task for a few weeks now. This is the foundation for the Mono C# compiler, and hence a very important piece of the puzzle.
** Nov 3, 2001
Many clean ups have been going into the class library by Nick Drochak. Mega patch from Dietmar: he commited the flow analysis code for the JITer. A lot of work has been going into the WebControls by Gaurav (4 new controls plus improved and bug fixed base classes).
** Nov 1, 2001
Ravi commited the caller-side method selection of methods with variable length arguments. Now he depends on Miguel finishing the array handling support.
** Oct 27, 2001
Lots of classes for System.Web from Gaurav were commited this morning. Some large recent developments: The Decimal implementation from Martin Weindel has been partially integrated (we need to put the internalcalls in place now and compile and link the decimal code). Derek Holden commited recently the IntegerFormatter code into the CVS, so we got a pretty comprehensive integer formatting engine that we can finally use all over the place. Compiler got support for lock as well as assorted bug fixes. Ravi is still working on array support (and then we can optimize foreach for the array case). Dietmar is busy working on flow analysis on the JITer, the previous mechanism of generating the forest was wrong. Paolo has been a busy bee reworking the System.Reflection.Emit support code, and we should have some pretty nice stuff next week. Dick on the other hand is still working on the WaitOne/WaitAll emulation code. WaitAll is like select on steroids: it can wait for different kinds of objects: files, mutexes, events and a couple of others. Mike Kestner is busy working on Gtk# which is now using the .defs files to quickly wrap the API.
** Oct 18, 2001
Reworking expressions to support cleanly indexers and properties. 11 days until Evolution 1.0 ships. Ximian users around the world rejoice with recent C# compiler progress.
** Oct 17, 2001
Delegate support has been checked into the compiler (definition and invocation); break/continue implemented.
** Oct 15, 2001
JIT engine supports many of the object constructs now (object creation, vtable setup, interface table setup). The C# compiler now has almost full property support (only missing bit are pre-post increment/decrement operations), delegates are now created (still missing delegate invocation). try/catch/finally is also supported in the compiler now. System.Decimal implementation is in, as well as many crypto classes.
** Oct 5, 2001
Sergey has released his first version of the ilasm assembler written in C#. You can get it from his web page: http://mono.eurosoft.od.ua. The plan is to integrate ildasm into the Mono CVS soon. This component should in theory also be reusable for SharpDevelop eventually.
** Oct 4, 2001
Our System.Reflection.Emit implementation created its first executable today. This means that a very simple .NET program that was compiled on Windows was able to generate a .NET program while running on Linux using the Mono runtime. The various piece of the puzzle are starting to get together: the compiler can compile simple programs now and we are basically focusing on completeness now.
** Sep 28, 2001
Sharp Develop 0.80 was released today.
** Sep 26, 2001
More progress: more opcodes are working (Paolo); The compiler runs up to a point in Mint (Paolo); operator overloading works (both unary and binary) all over the place (Miguel); Completed decimal type conversions (Miguel); New build system in place based on Ant (Sean and Sergey); Refactored and documented the internals of the JIT engine (Dietmar); StatementExpressions handled correctly (Miguel).
** Sep 21, 2001
A couple of news-worthy items: Dick got the initial thread support into mint; Paolo implemented many new opcodes; Dietmar got long operations and mul/div working on the JITer; Ravi rewrote the Method selector for expressions to be conformant; Miguel got i++ working. All in tonight's snapshot
** Sep 19, 2001
Paolo has written a section on Porting Mono to othre architectures.
** Sep 18, 2001
Mono 0.7 has been released (runtime engine, class libraries and C# compiler). Check the Mono 0.7 announcement for details
** Sep 17, 2001
Mike Kestner's Gtk# (Gtk-sharp) was checked into the CVS repository. Gtk# can run a simple hello world application. The binding is nice, as it maps Gtk+ signals to delegates in C#. You can see the Gtk# Hello World program here Gtk-sharp should be available on the next snapshot set.
** Sep 10, 2001
Dietmar checked in his CIL tree/forest regeneration and most importantly, the x86 instruction selector burg grammar.
** Sep 5, 2001
The MCS compiler can compile the sample Hello World application and generate a Windows/CIL executable that runs! This executable runs with the Mono Interpreter of course (see August 28)
** Sep 4, 2001
Dietmar checked into CVS the `monoburg' architecture independent instruction selector for the JIT engine.
** Aug 28, 2001
.NET Hello World is working under Mono! The latest snapshots will let you run it. Hello World consits of 1821 CIL instructions, performs 66 subroutine calls and loads 12 classes from the corlib.dll Good work Mono team!
** Aug 23, 2001
Lloyd Dupont has announced his OpenGL bindings for C#, they are available here: http://csgl.sourceforge.net
** Aug 22, 2001
New version of the Mono Runtime, Compiler and Classes has been released. Check the 0.6 announcement.
** Aug 20, 2001
A new Compilation service has been made available by Derek to allow people without access to the .NET SDK
** Aug 3, 2001
Daily snapshots of mcs and mono are now available, they will run every night at 10pm Boston time.
** Jul 29, 2001
Mono Runtime 0.5 has been released. Check the release notes
** Jul 25, 2001
The slides for my presentation at O'Reilly Open Source Software Convention
** Jul 22, 2001
Another release of the class libraries is out, check the MCS 22-July Release Notes. You can get the new class libraries from here
** Jul 19, 2001
Another release of the class libraries is out, check the MCS 19-July Release Notes. You can get the new class libraries from here
** Jul 17, 2001
Another release of the class libraries is out, check the MCS 17-July Release Notes. You can get the new class libraries from here Do not forget to check out the updated FAQ. Got Sean's new Class Status web pages up. These are a lot better than mine, and we are now keeping better track of contributors.
** Jul 15, 2001
Another release of Mono is out, check the Mono 0.4 Release Notes. Get it here.
** Jul 14, 2001
A new release of the runtime, compiler and classes has been made. Get it here
** Jul 12, 2001
I keep getting questions about my opinion on Passport, even when Mono has nothing to do with it. I finally wrote something.
** Jul 9, 2001
Project launched.
** O'Reilly
Brian posted a story on O'Reilly Network .NET