[Mono-list] Mono 0.6 has been released

Miguel de Icaza miguel@ximian.com
22 Aug 2001 23:53:06 -0400


Hello guys!

    A new formal release of Mono has been done, this time I am
    starting to standarize on the versioning scheme for the compiler
    and the class libraries with the runtime.

    Many more small .NET programs can be now executed, look at the
    test directory to get an idea of all the stuff that works now.
    We should have the Console working in the very short future, keep
    your eyes open. 

    There are changes in 4 areas: the runtime, the compiler, the
    class libraries and the support tools. 

    Many thanks go to Alex Graveley for preparing this summary of
    changes since the Mono 0.5 release.  Look at the bottom for
    download information.  There are just too many changes, basically
    Mono is moving along very fast.

    Here is a breakdown of what is on this release.  Man, there are a
    *lot* of changes.  A *lot*.  Thanks a lot to everyone who has been
    working so hard on contributing to Mono.

    The runtime has only been tested on Linux.  The classes and
    compiler can only be compiled on Windows with the .NET Beta2 SDK.

Runtime Changes:

    * New opcodes implemented: br.*, brfalse.*, brtrue.*, beq.*,
      bge.*, bgt.*, ble.*, bne.un.*, bge.un.*, bgt.un.*, ble.un.*,
      blt.un.*, stind.i, ldflda, ldsflda, ldstr, ldelem.i8, stelem.i8,
      leave.*, rethrow, box, unbox, unaligned, volatile, tail,
      initblk, localloc opcode implementations. (Paolo, Dietmar)
      
    * Array class support with all its internalcalls.  Those funny
      .NET shapped arrays are supported and all that (Dietmar)
      
    * Mono can successfully handle mscorlib.dll fully thanks to
      metadata table fixes (Paolo)
    
    * property support in monodis (Paolo)

    * printing to terminal (Dietmar)

    * native PInvoke support (Paolo, Dietmar)
    
    * internalcall support (Dietmar)

    * String runtime class support (Dietmar)
    
    * object casts (Dietmar)
    
    * object cloning (Dietmar)
    
    * object boxing (Paolo)
    
    * internal stack handling cleanups (Paolo)
    
    * class initialization and static constructors (Paolo)
    
    * exceptions have been implemented (Paolo, Dietmar)
    
    * stack trace printing for unhandled exceptions (Paolo)

    * support for builtin math and null reference exceptions (Dietmar)
    
    * replace type references with direct pointers (Dietmar)
    
    * mono interpreter renamed to the much cuter "mint" (Miguel)
    
Compiler changes:

    * Finished the type system rewrite, now the whole type system is
      based on System.Reflection, probably the best design decision in
      the whole compiler (miguel).
    
    * Implemented Code Generation and semantic analysis for the following:
    
    	Interfaces
		Complete, with the exception of events, which require
		delegate support (need to do this).

	Type definitions (Classes and structures).

	Population of types with fields and static fields.

	Handling of constructors and static constructors.

	Method definition in classes and structures.
		Parameter definition for all of those.

	Local variable emission for blocks.

	Beginning of code generation. 
    
    * Semantic Analysis

	A lot of error checking is still missing, you could say that
        MCS accepts an `ambiguous super set of C# grammar' as of now
        ;-)

	I will be fixing this as time passes.  Man, writing a compiler
        with C# is fun and trivial.  It sort of demistifies writting
        compilers. 

    * Tokenizer/Parser

	Many fixes to the grammar, begin moving towards preserving
        lexer location information to report errors.

	New error reporting mechanism being deployed, will have to
        percolate it. 

    * General

	Many cleanups and code reorganization.

Class Library Additions:

    * System
    	MarshalByRefObject (Dietmar)
    	Math fixups        (Dietmar)
    	Array fixups       (Dietmar)
    	Attribute          (Nick Drochak, Dietmar)
    	OperatingSystem    (Jim Richardson)
    	PlatformID         (Jim Richardson)
    	Environment        (Jim Richardson)
    	Timespan           (Duco Fijma)
    	Random             (Bob Smith)
    	Uri                (Garrett Rooney, Miguel)
    	IntPtr             (Miguel)
    	RuntimeTypeHandle  (Miguel)
    	EventHandler       (Miguel)
    	IServiceProvider   (Miguel)
    	UriPartial         
    	UriHostNameType    
    	UriFormatException
    
    * System.ComponentModel 
    	Component           (Miguel)
    	ComponentCollection (Miguel)
    	Container           (Miguel)
    	IComponent          (Miguel)
    	IContainer          (Miguel)
    	ISite               (Miguel)
    	EventHandlerList    (Miguel)

    * System.Configuration 
    	ConfigurationException       (Chris Podurgiel)
    	ConfigurationSettings        (Chris Podurgiel)
    	IConfigurationSectionHandler (Chris Podurgiel)
    	IgnoreSectionHandler         (Chris Podurgiel)
    	NameValueSectionHandler      (Chris Podurgiel)
    
    * System.Cryptography 
    	FromBase64Transform       (Serge)
    	DESCryptoServiceProvider  (Serge)
    	DES                       (Serge)
    	ToBase64Transform         (Serge)
    	CipherMode                (Matthew Ford)
    	CryptoStreamMode          (Matthew Ford)
    	HashAlgorithm             (Matthew Ford)
    	ICryptoTransform          (Matthew Ford)
    	KeySizes                  (Matthew Ford)
    	MD5                       (Matthew Ford)
    	MD5CryptoServiceProvider  (Matthew Ford)
    	PaddingMode               (Matthew Ford)
    	SHA1                      (Matthew Ford)
    	SHA1CryptoServiceProvider (Matthew Ford)
    	SHA256                    (Matthew Ford)
    	SHA256Managed             (Matthew Ford)
    	SHA384                    (Matthew Ford)
    	SHA512                    (Matthew Ford)
    
    * System.Collections 
    	ArrayList              (Nick Drochak)
    	CollectionBase         (Nick Drochak)
    	ReadOnlyCollectionBase (Nick Drochak)
    	Queue                  (Ricardo Fernandez)
    
    * System.Collections.Specialized 
    	ListDictionary   (John Barnette)
    	StringDictionary (John Barnette)
    
    * System.Diagnostics 
    	DebuggableAttribute  (Nick Drochak)
    	ConditionalAttribute (Nick Drochak)
    
    * System.Drawing 
    	Point  (Mike Kestner)
    	PointF (Mike Kestner)
    	Size   (Mike Kestner)
    	SizeF  (Mike Kestner)
    
    * System.Globalization 
    	NumberFormatInfo (Derek Holden)
    
    * System.IO
    	Path       (Jim Richardson)
    	Directory  (Jim Richardson)
    	TextReader (Dietmar)
    	Stream     (Dietmar)
    	FileStream (Dietmar)
    
    * System.Runtime.Remoting 
    	ObjRef (Miguel)
    
    * System.Runtime.Serialization 
    	IObjectReference       (Miguel)
    	StreamingContext       (Miguel)
    	StreamingContextStates (Miguel)
    	
    * System.Runtime.Serialization 
    	IObjectReference       (Miguel)
    	StreamingContext       (Miguel)
    	StreamingContextStatus (Miguel)
    
    * System.Web 
    	BeginEventHandler        (Bob Smith)
    	EndEventHandler          (Bob Smith)
    	HttpCacheRevalidation    (Bob Smith)
    	HttpCacheValidateHandler (Bob Smith)
    	HttpCacheability         (Bob Smith)
    	HttpCookie               (Bob Smith)
    	HttpCookieCollection     (Bob Smith)
    	HttpValidationStatus     (Bob Smith)
    	HttpWorkerRequest        (Bob Smith)
    	HttpWorkerRequest        (Bob Smith)
    	IHttpAsyncHandler        (Bob Smith)
    	IHttpHandler             (Bob Smith)
    	IHttpHandlerFactory      (Bob Smith)
    	IHttpModule              (Bob Smith)
    	ProcessShutdownReason    (Bob Smith)
    	ProcessStatus            (Bob Smith)
    	TraceMode                (Bob Smith)
    
    * System.Web.Configuration 
    	AuthenticationMode      (Leen Toelen)
    	FormsAuthPasswordFormat (Leen Toelen)
    	FormsProtectionEnum     (Leen Toelen)
    
    * System.Web.UI 
    	Control (Bob Smith)
    
    * System.Web.UI.HtmlControls 
    	HtmlContainerControl (Bob Smith)
    	HtmlControl          (Bob Smith)
    	HtmlGenericControl   (Bob Smith)
    	
* Tools

	Sergey provided a tool to compare methods from two assemblies.
        This is being used to test the compiler generated signatures.

* Availability:

     Runtime:

	http://www.go-mono.com/archive/mono-0.6.tar.gz

     Classes:

	http://www.go-mono.com/archive/mono-compiler-classes.0.6.tar.gz

Enjoy!
Miguel.