[Mono-announce-list] Mono 0.7 has been released
Miguel de Icaza
18 Sep 2001 21:28:15 -0400
Mono 0.7 has been released.
It has been a long time since the last release of Mono (almost
three weeks). We have made an incredible ammount of work in the past
* Highlights of this release:
* The monoburg: BURS-instruction selector implemented (for our
portable JIT engine).
* JIT engine works for very simple programs (Fibonacci works
for instance). It is about 30% faster running than the
equivalent code compiled with Kaffe.
The interesting part is that this was accomplished with the
a minimum register allocator, and very simple monoburg
rules, so there is a *lot* of room to improve here.
* The Interpreter has madured a lot. Value Types are fully
supported now; We dropped the FFI dependency, as we now
have our own code generator.
* The runtime has been expanded and extended as to support
real file I/O (including console I/O). So Hello World works
* The compiler can generate code for most statements now; It
also performs semantic analysis on most expressions.
Creation of new objects is supported, access to parameters,
fields and local variables works. Method invocation works.
Implicit type conversions, assignments and much more.
Operator overloading is implemented, but broken on this
release, hopefully this will be fixed soon.
Delegates and Attributes are now declared and passed around,
but no code generation for those exist yet.
* More classes (look for details). Sergey and Paolo have been
working on various classes in System.Reflection.Emit to get
the compiler self-hosting.
* NUnit is now part of the distribution, so it should be
trivial to write test cases (and if you want to help out,
this is one way to do it, we really need more tests cases).
I am going to try to switch to Nick's JB for C# this week or next
week. But the excitement of having the compiler deal with real C#
programs is too much to be contained, and I can not keep my hands of
the code generation in the compiler.
Class Library Changes:
Many enumerations have been revamped to have the same value
definitions as those in .NET as those cause problems. They were also
missing the [Flags] attributes, so we got that right too.
SerializableAttribute impl (Miguel)
String updates (Jeff)
ConfigurationSettings impl (Christopher Podurgiel)
SingleTagSectionHandler impl (Christopher Podurgiel)
DictionarySectionHandler impl (Christopher Podurgiel)
NameObjectCollectionBase impl (Nick Drochak)
StackFrame stubs (alexk)
StackTrace stubs (alexk)
File stubs (Jim Richardson)
IOException impl (Paolo)
StreamWriter impl (Dietmar)
StreamReader stubs (Dietmar)
Assembly (stubs) (Paolo)
ILGenerator (stubbed) (Paolo)
Most classes stubbed out by Dick Porter (Dick)
HttpWorkerRequest stubs (Bob Smith)
* System.Web.Hosting (Bob Smith)
AppDomainFactory stubs (Bob Smith)
ApplicationHost stubs (Bob Smith)
IAppDomainFactory stubs (Bob Smith)
IISAPIRuntime stubs (Bob Smith)
ISAPIRuntime stubs (Bob Smith)
SimpleWorkerRequest stubs (Bob Smith)
LiteralControl implemented (Bob Smith)
HtmlContainerControl bugfixes (Bob Smith)
HtmlAnchor impl (Leen Teolen)
HtmlTextArea impl (Leen Teolen)
WebControl.cs (Gaurav Vaish)
Lots of enumerations (Miguel)
(will add later)
* Add loads of enumerations throughout (Sergey)
(will add later)
* Assignment (Miguel)
* expression semantic analysis (Miguel)
* constructor creation, chaining (Miguel)
* Unified error reporting (Ravi)
* initial attribute support (Ravi)
* calling convention support (Miguel)
* loop construct code generation (Miguel)
* conditional statement code generation (Miguel)
* indexer declarations (Ravi)
* event declarations (Ravi)
* try/catch parsing fixed (Ravi)
* initial delegate support (Ravi)
* operator overload (Ravi)
* Add NUnit windows binaries to distribution (Nick Drochak, Miguel)
* First JIT implementation (Dietmar, Paolo)
* value type size calculation (Dietmar)
* full value type support (Paolo)
* frequently used types cache (Paolo)
* FileStream support (Paolo)
* Console input/output support (Dietmar)
* print arguments and exception name in stack trace (Paolo)
* beginnings of virtual call support (Paolo)
* reimplement pinvoke support (Dietmar)
* remove libffi dependency (Dietmar)
* IBURG code generator implementation (Dietmar)
* new opcodes implemented: starg.s, ldobj, isinst, (Paolo, Miguel)
ldarg, starg, ldloc, ldloca, stloc, initobj,
cpblk, sizeof, conv.i, conv.i1, conv.i2, conv.i4,
conv.i8, conv.u1, conv.u2, conv.u4, conv.r4,
conv.r8, ldelema, ceq, cgt, clt.
* This list
Parts of this list of features were compiled by Alex by following
the CVS mailing list. My deepest thanks to Alex for helping me out
with this. I want to apologize for the missing features that I did
not document here, Mono is moving too fast to keep track of all the