From miguel@ximian.com Sun Dec 2 01:44:28 2001 From: miguel@ximian.com (Miguel de Icaza) Date: 01 Dec 2001 20:44:28 -0500 Subject: [Mono-announce-list] AnonCVS access to the Mono CVS repository available. Message-ID: <1007257468.1147.314.camel@erandi.ximian.com> Hey guys, Anonymous access to the Mono is available currently from the HispaLinux CVS server (later I will provide a nice anoncvs.go-mono.com alias). The server is currently located in Spain. If you want to become an AnonCVS mirror, check below. * Checking out the sources To check out the sources for the first time from the repository, use this command: export CVSROOT=:pserver:anonymous@reypastor.hispalinux.es:/mono cvs co -z3 mcs mono gtk-sharp That will get you the compiler and class libraries (mcs), the interpreter and JITer (mono) and the Gtk# bindings. To update your sources every day, you use this command: export CVSROOT=:pserver:anonymous@reypastor.hispalinux.es:/mono cvs update -dP -z3 mcs mono gtk-sharp * Thanks Thanks to HispaLinux for providing this Anon CVS server. The server is located in Spain. Special thanks to Jesus Climent, Rodrigo Moya, Juantomás García and Ismael Olea for making this happen. * Becoming an AnonCVS mirror To become an AnonCVS mirror, you currently need about 20 megabytes of free disk space and bandwidth that you do not mind sharing (you probably want enough to spare). I need to be able to rsync to your machine from the main CVS server. The preferred method to rsync is to setup ssh in your machine. Have fun, Miguel. From miguel@ximian.com Sat Dec 1 19:43:35 2001 From: miguel@ximian.com (Miguel de Icaza) Date: 01 Dec 2001 14:43:35 -0500 Subject: [Mono-announce-list] Mono C# Compiler status report Message-ID: <1007235815.7860.281.camel@erandi.ximian.com> Hey guys, The compiler is getting more mature every day. At this point the major missing features in the compiler are: * `goto' implementation. * `using' implemementation (for resource aquisition). * implementing visibility (right now, the compiler just ignores it, so everything is public as far as it is concerned ;-) * using alias (Radek said he would work on this). * Various versioning bits here and there. * Dereference of pointer types. * Unsafe code support. * Apply to all virtual members all the resolution process that is applied to methods (another major TODO item). So things are looking pretty good. Hopefully soon the compiler will compile itself. I still hope we will be done before the end of the year. Once we are feature complete and we can use the compiler to compile itself and compile the class libraries, we will start profiling the compiler to optimize it for speed and size. best wishes, Miguel. From miguel@ximian.com Wed Dec 19 00:54:27 2001 From: miguel@ximian.com (Miguel de Icaza) Date: 18 Dec 2001 19:54:27 -0500 Subject: [Mono-announce-list] Quick Mono Update Message-ID: <1008723267.1099.90.camel@erandi.ximian.com> Hey guys! Wow, it has been a while since I have posted an update. I have tried to keep the www.go-mono.com web site up to date with the breaking news, but you might not follow that. There are various interesting developments recently: * The JIT engine pretty much runs all the code that Dietmar has thrown at it. The original register allocator was very naive, so Dietmar worked towards making it better, and got a 2x improvement with some work. The next step is for doing register allocation based on loop patterns, a standard mechanism, but right now our focus is into making the code feature complete before we optimize the JITer. * Dick has been busily working on our io-layer (this was discussed a few weeks ago), it is our wrapper for system calls in order to make Linux look more like Win32. The basics for IO and synchronization are there, the next step is to get sockets in place and we should be ready on that front. * Paolo has been steadily working on our System.Reflection.Emit implementation (this requires a tight connection between the runtime and the class libraries). The System.Reflection.Emit code is a fundamental piece of code for making our C# self-hosting. Plus many bug fixes to our class libraries. * C# compiler land: Ravi and I have been finishing the various bits of the compiler. PInvoke, Events, finishing the various bits on properties (make them as complete as methods, which is where I spent most of my time). Explicit interface implementation is finally here with us, so many more tests are finished. I had to rework a few pieces in the compiler because of the restrictions on the use of the ret opcode. The Member Lookup code rewrite finally enabled me to implement the `base' operator. This is the last chunk of the expressions that was missing. Statements are complete as well. The pre-processor for the compiler should be done tonight hopefully before I go to see Lord of the Ring. * Class libraries: for those of you who do not watch the CVS commits list: Gaurav is making steady progress on various classes on the System.Web.UI universe. Non-development news: DDJ published an article I wrote with Brian Jepson of O'Reilly on the internals of Mono. My original draft was more detailed that what got published though. I will ask for permission to post the full details, because it talks about the internals of the JITer and the Compiler (for those interested). Microsoft is running an interview that Dare did a few months ago for Kuroshin on Mono (it is currently in: http://msdn.microsoft.com [1]). Oh, and merry Christmas/holidays to all of you. Release: Since you can get Mono in an up-to-date basis from AnonCVS or from the snapshots (which I just found out got broken on the 11th, mhm) I have been lazy and avoided making a release of Mono, but I will be doing one this week before the holidays (you really can get every bit I will be releasing from cvs though ;-). Miguel. [1] The real article is: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/Dndotnet/html/deicazainterview.asp?frame=true From miguel@ximian.com Mon Dec 31 20:58:04 2001 From: miguel@ximian.com (Miguel de Icaza) Date: 31 Dec 2001 15:58:04 -0500 Subject: [Mono-announce-list] Mono Roadmap. Message-ID: <1009832287.25573.31.camel@erandi.ximian.com> Hello guys, Various people have been asking me privately how the different pieces of the JIT engine, the compiler and the class libraries fit together, and how these relate to the recent announcements I have been posting every day on the status of Mono. * A Self Hosting Environment A Self Hosting environment means that it will be possible to develop and contribute to Mono on non-Windows platforms with the Mircrosoft .NET SDK. Given that our compiler is written in C# and that you will most likely want to use C# to build your applications, this means that the following things must happen: * The C# compiler is complete and robust enough to allow the ongoing development of the compiler itself and the Mono class libraries. * The JIT engine is available and mature enough to run and execute the C# compiler and the class libraries. * The class libraries on which the C# compiler depends have enough functionality and are robust enough to host the compiler. * The C# compiler status The C# compiler has to go through a number of phases: * The compiler parses itself (April 2001) * The compiler can compile itself (December 2001) * The compiler generates correct CIL output (work in progress, 146 out of 150 errors have been fixed, only 4 more errors remain). * The compiler generates correct code for itself. Note that there is a difference between correct CIL output and correct code. Correct CIL output means that the code is "syntactically" ok to be executed by a JIT engine. But that does not mean that the code generated is correct. That is the next phase. * The JIT status The JIT engine on Intel x86 is mature enough to run pretty much anything we throw at it. It is lacking a GC engine, but we are going to be deploying it in January. After the JIT engine becomes feature complete we will be working on optimization of the code generated, for now we will focus on making the VM complete (For example, there are still various issues that need to be addressed, like the stack waking to enable the security system, enable the GC, etc). For systems where the JIT has not been ported, we do provide an interpreter which has also been pretty robust since October this year. The interpreter is obviously slower than the JIT engine, and it is only intended to be used as a quick way of running your applications on platforms where the JIT engine does not exist. The major reason why an application would not run on Mono right now is because the class libraries that they require are either not present or are incomplete. Dietmar has a number of pending patches to go into CVS, but he could not get them into CVS before he went into vacation to give us a window to fix last minute problems, so those patches have not made it into CVS. They add full unicode support through Glib/libiconv to Mono. * The Class Libraries From the compiler perspective, the major block requires is the System.Reflection.Emit API. We have assembled enough information by constructing the compiler to know all the quirks that need to be implemented. The current implementation can be used to generate small application, but some bits are still missing. Paolo has been working on this and has done a great job, but everytime I improved the compiler, I added a new dependency (not related to Reflection necessarly ;-). So that will be taken care of in January. Anyways, there are still a lot of other classes, more simple that need to be worked on. As usual, we welcome your contributions. Nick has a few ideas on how we can move along. There are many classes that have still missing pieces or miss a test suite. And you have no idea how important is a test suite. That is what has allowed us to produce a C# compiler in such a short time. Without the test suite, we would have been lost. Anyways, I am looking forward to write my next generation set of GUI applications using Mono ;-) Best wishes and Happy New Year! Miguel.