[Gtk-sharp-list] [Mono-announce-list] Mono 0.25 and MonoDoc 0.5 released.

Miguel de Icaza miguel@ximian.com
Thu, 26 Jun 2003 21:09:55 -0400


--Boundary_(ID_crZQl/cBDIG2hVEkamFQcA)
Content-type: text/plain; charset=ISO-8859-1
Content-transfer-encoding: quoted-printable

Mono 0.25 Release
Hello everyone,

A new release of the Mono runtime and SDK is available for UNIX and
Windows. Packages for various distributions are also available from our
download page.

This is a delicious release of Mono: so many new things have been
improved, implemented, fixed, and tuned from the last release that it is
hard to not be excited about it.

Our contract with SourceGear has had a big impact in Mono. The team at
Ximian has been working on three areas to pass the rigorous tests
provided by the SourceGear team:


      * SOAP Web Services client implementation.
       =20
        This includes both the SOAP support classes as well as a
        complete rewrite of the XmlSerializer by Lluis.
       =20
      * Scalability
       =20
        The SourceGear Vault software and its regression test suite
        require a much better implementation of our HTTP client so we
        have rewritten it completely for scalability.
       =20
      * Robustness
       =20
        Plenty of changes for robustness and tests for stability were
        added. The new io-layer changes from Dick remove the handle
        limits that we had in the past.=20
       =20
       =20

With this release we are able to run their Vault command line software
out of the box.=20

The MonoDoc tool which includes API documentation for both .NET classes,
Gtk# has been updated to include the contents of the Mono tutorial
(thanks to Lee and Johannes for their work on the provider).



1. Availability

Binaries for various platforms is available from our web site from the
download section:=20

        http://www.go-mono.com/download.html

Source code for Mono, MCS, and XSP is also available from our web site


      * MCS package (Class Libraries, C# and VB.NET compiler and managed
        tools):
        http://www.go-mono.com/archive/mcs-0.25.tar.gz
      * Mono package (Runtime engine, JIT compiler, pre-compiled
        compiler and class libraries):
        http://www.go-mono.com/archive/mono-0.25.tar.gz
      * Mono Documentation Browser (GUI and command line), which
        includes also the Mono tutorial:
        http://www.go-mono.com/archive/monodoc-0.5.tar.gz



2. Contributors=20

Carlos Alberto Cortes, Jean-Marc Andr=E9, Jaime Anguiano, Joel Basson,
Martin Baulig, Tim Coleman, Mark Crichton, Miguel de Icaza, Nick
Drochak, Hector E. Gomez Morales, Atsushi Enomoto, Francisco Figueiredo,
Piers Haken, Jackson Harpe, Dennis Hayes, Rachel Hestilow, Mike Kestner,
John Luke, Duncan Mak, Lee Mallabone, Pedro Martinez, Ben Maurer,
Dietmar Maurer, Paolo Molaro, Daniel Morgan, Cesar Octavio Lopez Natare,
Ville Palo, Gonzalo Paniagua, Alexandre Pigolkine, Dick Porter,
Sebastien Pouliot, Ravi Pratap, Marco Ridoni, Johannes Roith, Aleksey
Ryabchuk, Lluis Sanchez, Joshua Tauberer, Rafael Teixeira, Gaurav Vaish,
Philip Van Hoof, Zoltan Varga Martin Willemoes Hanse, Peter Williams.=20

3. Features

This summary does not make justice to the hard work that has gone into
this release, so this is just a high-level overview.



Java

This release can run IKVM (http://www.ikvm.net) out of the box, and it
can also run Eclipse with the add-on found at:
http://www.nexus.hu/vargaz



IL Assembler

Jackson has made a tremendous amount of work on the Mono IL assembler.
All the major features in the assembler are now complete.

The big missing pieces now are: debugging support, marshalling support,
better error messages and generics support and of course bug fixing.



Security Improvements

Sebastien Pouliot reports the following changes since 0.24


      * Changed System.Random to use a better implementation (algorithm
        from Knuth) (Ben).=20
      * Updated most class definitions for framework 1.1 compatibility.=20
      * Fixed PKCS1MaskGenerationMethod to implement PKCS#1 MGF1 (MS
        implementation is broken) which corrected our support for OAEP
        padding.=20
      * More generic PKCS#1 handling so RSA can sign any hash algorithm
        (defined in machine.config) which is far more flexible than the
        current .NET (limited to SHA1 and MD5).=20
      * Implemented CRT (Chinese Remainder Theorem) for MUCH faster use
        of the RSA private key (decryption and signature) with Ben's
        help.=20
      * X509Certificate supports for CryptoAPI handles in constructor.=20
      * Released GUI certificate viewer for both SWF and GTK# (not yet
        part of the normal build).=20



System.Drawing

System.Drawing has support for multiple-backends; Alexandre Pigolkine
has added a new backend based on Xr (http://xr.xwin.org) to the
repository.

This backend is particularly interesting, because Xr implements the PDF
imaging system, which is exactly what is required to implement all the
features in System.Drawing on multiple platforms.

Today we have three implementations of System.Drawing: XrImpl, Win32Impl
and GTKImpl. XrImpl being the one we will use on UNIX systems on the
long run.=20

Codecs for BMP and JPEG were added (they use directly the underlying
system libraries).



System.Windows.Forms

Aleksey Ryabchuk continues to implement plenty of controls on the
Win32/WineLib based implementation of it as well as improving focus,
keyboard navigation, common dialog boxes and layout computation.

Joel Basson and Philip Van Hoof continued to improve the Gtk-based port
of Windows.Forms.



XmlSerializer

Lluis worked on a new implementation of the XmlSerialization classes in
record time. The XmlSerializer is the foundation for the Soap web
services and is also one of the neatest features in the .NET Framework.

It is possibly the best way of dealing with XML documents that I have
found so far, and I am kept wondering, why did I bother processing XML
in any other way before.



Web Services

The Web services classes support both RPC and Document, processing as
well as Literal and Encoded mechanisms. We have only implemented the
client side so far, but most of the infrastructure is in place for
authoring the server-side web services.=20

Erik has written the beginning of our WSDL compiler, but this compiler
has not been checked into the repository yet, so today you need to
compile your WSDL files using the Microsoft framework tools.

Gonzalo rewrote our Http client to conform to HTTP 1.1, and support all
the features in the .NET class library.



Remoting: Soap Formatter

The .NET Framework supports also a Remoting-based SOAP implementation.
Jean-Marc ANDRE has contributed a new implementation of
System.Runtime.Serialization.Formatters.Soap



XSLT Extension Objects

Joshua Tauberer has written extension object support for XSLT; these are
used extensively by the new Monodoc (which will be released shortly
after Mono 0.25).



XML Library.

Atsushi Eno continued to improve our XML support and was joined by Ben
Maurer in optimizing the XML class libraries. We now allocate about one
fifth as much memory while having a 20% speed gain.



Pluggable Profiling Interface

Paolo has made the profiling code modular.

The user can provide new modules to perform profiling-like operations on
methods at runtime (see documentation).

The existing profiler has been turned into a module on its own, and we
are also shipping a sample code-coverage instrumentation tool.

This interface will be of particular interest to anyone building
advanced tool, or who needs special tracing and debugging facilities in
the runtime.



Custom Marshallers

We now support Custom Marshallers. This allows fine-grained control over
the marshalling and de-marshalling of values during P/Invoke. If the
default marshalling schemes provided by Mono are not exactly what you
need, you can now manually tune the marshalling to be anything you can
think of.



JIT Performance and Runtime Enhancements

Plenty of exciting low-level development, but the high level overview
is: faster JITing and faster code generated.

Paolo and Dietmar added support for tail calls and thread-static
variables and faster type checking.

Many performance enhancements have been added to the JIT: faster
handling of valuetypes, faster calls to some internal helper functions,
faster access to two-dimensional arrays.

Dick reworked chunks of the IO-layer to remove the hardcoded limits, and
fixed multiple bugs on it.



Testing

Our head of testing, Nick Drochak reports that we have managed to get
our regression test suite to run fully with .NET 1.1; Ville was
responsible for getting many of our System.IO tests running on .NET,
those were previously failing.

Patrik Kalkman responded brilliantly to the teams' call for more unit
tests. He contributed some very nice SingleFormatter and DoubleFormatter
tests.

The good news in summary: we are down to 50 tests failing down from 200+
just a few weeks ago. There are plenty of tests, but we need even more,
here is the current state:


        corlib: 1855 tests=20
        Microsoft.VisualBasic: 41 tests=20
        Mono.Security.Win32: 25 tests=20
        Mono.Security: 27 tests=20
        System: 134 tests=20
        System.Configuration.Install: 1 tests=20
        System.Data: 503 tests=20
        System.Security: 101 tests=20
        System.Web.Services: 5 tests=20
        System.XML: 423 tests=20

It would be nice to use Paolo's new profiling code together with NUnit
tests to find out how much of the API we are currently exercising.



Optimizations

Nick Drochak, who typically is a C# developer has now gone into the
low-level code optimization world, and implemented the optimization to
improve the following pattern:

(long) uinta * (long) uintb=20

That pattern is used all over our cryptography classes, and has
increased the speed of them, and got a 20% performance increase on the
regression test suite for the integer code.



Mono Basic Compiler

Marco has been very busy with the compiler: Plenty of bug fixes in the
compiler: methods without arguments do not need parentheses; Various
operators fixed; Endregion fixes; Late binding support; Multi-line
statements; Redim.

Rafael fixed the Mono.GetOptions and improved some bits of the compiler.



JScript

Cesar has checked in the initial code to perform semantic analysis on
the JScript compiler



System.Data and System.Web Updates

ADO.NET and ASP.NET got fixes from Ville Palo and Gonzalo: many more
regression tests, many fixes, and many improvements. These benefit XSP
directly.



Gtk# bundle

This release from Ximian includes Gtk# packages for a couple of
distributions.



Documentation

This release also ships with MonoDoc. MonoDoc has a few new features:
Joshua has redone our ECMA provider, so the documentation is nicer, it
has more features, and all the links finally work.

Lee and Johannes worked to get us a new provider for MonoDoc: this new
provider integrates the Mono Tutorial into the documentation browser.

We need help continuing our Gtk# documentation effort, the .NET
documentation effort, and finally improving our tutorial effort as well.
If you are interested, check the mono-docs-list@ximian.com mailing list.



Bug Fixes

And of course, plenty of bug fixes everywhere: class libraries,
compilers, tools, documentation, runtime, and assembler.
--=20
Miguel de Icaza <miguel@ximian.com>

--Boundary_(ID_crZQl/cBDIG2hVEkamFQcA)
Content-type: text/html; charset=utf-8
Content-transfer-encoding: 7BIT

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.0.4">
</HEAD>
<BODY>
Mono 0.25 Release<BR>
Hello everyone,<BR>
<BR>
A new release of the <A HREF="http://www.go-mono.com"><U>Mono</U></A> runtime and SDK is available for UNIX and Windows. Packages for various distributions are also available from our download page.<BR>
<BR>
This is a delicious release of Mono: so many new things have been improved, implemented, fixed, and tuned from the last release that it is hard to not be excited about it.<BR>
<BR>
Our contract with SourceGear has had a big impact in Mono. The team at Ximian has been working on three areas to pass the rigorous tests provided by the SourceGear team:<BR>
<BR>
<UL>
    <LI><B>SOAP Web Services client implementation.</B><BR>
    <BR>
    This includes both the SOAP support classes as well as a complete rewrite of the XmlSerializer by Lluis.<BR>
    <BR>
    <LI><B>Scalability</B><BR>
    <BR>
    The SourceGear Vault software and its regression test suite require a much better implementation of our HTTP client so we have rewritten it completely for scalability.<BR>
    <BR>
    <LI><B>Robustness</B><BR>
    <BR>
    Plenty of changes for robustness and tests for stability were added. The new io-layer changes from Dick remove the handle limits that we had in the past. <BR>
    <BR>
    <BR>
</UL>
With this release we are able to run their Vault command line software out of the box. <BR>
<BR>
The MonoDoc tool which includes API documentation for both .NET classes, Gtk# has been updated to include the contents of the Mono tutorial (thanks to Lee and Johannes for their work on the provider).<BR>
<BR>
<BR>
<H3>1. Availability</H3>
Binaries for various platforms is available from our web site from the <A HREF="http://www.go-mono.com/download.html"><U>download</U></A> section: 
<UL>
    <A HREF="http://www.go-mono.com/download.html"><U>http://www.go-mono.com/download.html</U></A>
</UL>
Source code for Mono, MCS, and XSP is also available from our web site<BR>
<BR>
<UL>
    <LI>MCS package (Class Libraries, C# and VB.NET compiler and managed tools):<BR>
    <A HREF="http://www.go-mono.com/archive/mcs-0.25.tar.gz"><U>http://www.go-mono.com/archive/mcs-0.25.tar.gz</U></A>
    <LI>Mono package (Runtime engine, JIT compiler, pre-compiled compiler and class libraries):<BR>
    <A HREF="http://www.go-mono.com/archive/mono-0.25.tar.gz"><U>http://www.go-mono.com/archive/mono-0.25.tar.gz</U></A>
    <LI>Mono Documentation Browser (GUI and command line), which includes also the Mono tutorial:<BR>
    <A HREF="http://www.go-mono.com/archive/monodoc-0.5.tar.gz"><U>http://www.go-mono.com/archive/monodoc-0.5.tar.gz</U></A>
</UL>
<BR>
<H3>2. Contributors </H3>
Carlos Alberto Cortes, Jean-Marc Andr&#233;, Jaime Anguiano, Joel Basson, Martin Baulig, Tim Coleman, Mark Crichton, Miguel de Icaza, Nick Drochak, Hector E. Gomez Morales, Atsushi Enomoto, Francisco Figueiredo, Piers Haken, Jackson Harpe, Dennis Hayes, Rachel Hestilow, Mike Kestner, John Luke, Duncan Mak, Lee Mallabone, Pedro Martinez, Ben Maurer, Dietmar Maurer, Paolo Molaro, Daniel Morgan, Cesar Octavio Lopez Natare, Ville Palo, Gonzalo Paniagua, Alexandre Pigolkine, Dick Porter, Sebastien Pouliot, Ravi Pratap, Marco Ridoni, Johannes Roith, Aleksey Ryabchuk, Lluis Sanchez, Joshua Tauberer, Rafael Teixeira, Gaurav Vaish, Philip Van Hoof, Zoltan Varga Martin Willemoes Hanse, Peter Williams. 
<H3>3. Features</H3>
This summary does not make justice to the hard work that has gone into this release, so this is just a high-level overview.<BR>
<BR>
<BR>
<H4>Java</H4>
This release can run IKVM (<A HREF="http://www.ikvm.net"><U>http://www.ikvm.net</U></A>) out of the box, and it can also run Eclipse with the add-on found at: <A HREF="http://www.nexus.hu/vargaz"><U>http://www.nexus.hu/vargaz</U></A><BR>
<BR>
<BR>
<H4>IL Assembler</H4>
Jackson has made a tremendous amount of work on the Mono IL assembler. All the major features in the assembler are now complete.<BR>
<BR>
The big missing pieces now are: debugging support, marshalling support, better error messages and generics support and of course bug fixing.<BR>
<BR>
<BR>
<H4>Security Improvements</H4>
Sebastien Pouliot reports the following changes since 0.24<BR>
<BR>
<UL>
    <LI>Changed System.Random to use a better implementation (algorithm from Knuth) (Ben). 
    <LI>Updated most class definitions for framework 1.1 compatibility. 
    <LI>Fixed PKCS1MaskGenerationMethod to implement PKCS#1 MGF1 (MS implementation is broken) which corrected our support for OAEP padding. 
    <LI>More generic PKCS#1 handling so RSA can sign any hash algorithm (defined in machine.config) which is far more flexible than the current .NET (limited to SHA1 and MD5). 
    <LI>Implemented CRT (Chinese Remainder Theorem) for MUCH faster use of the RSA private key (decryption and signature) with Ben's help. 
    <LI>X509Certificate supports for CryptoAPI handles in constructor. 
    <LI>Released GUI certificate viewer for both SWF and GTK# (not yet part of the normal build). 
</UL>
<BR>
<H4>System.Drawing</H4>
System.Drawing has support for multiple-backends; Alexandre Pigolkine has added a new backend based on Xr (<A HREF="http://xr.xwin.org"><U>http://xr.xwin.org</U></A>) to the repository.<BR>
<BR>
This backend is particularly interesting, because Xr implements the PDF imaging system, which is exactly what is required to implement all the features in System.Drawing on multiple platforms.<BR>
<BR>
Today we have three implementations of System.Drawing: XrImpl, Win32Impl and GTKImpl. XrImpl being the one we will use on UNIX systems on the long run. <BR>
<BR>
Codecs for BMP and JPEG were added (they use directly the underlying system libraries).<BR>
<BR>
<BR>
<H4>System.Windows.Forms</H4>
Aleksey Ryabchuk continues to implement plenty of controls on the Win32/WineLib based implementation of it as well as improving focus, keyboard navigation, common dialog boxes and layout computation.<BR>
<BR>
Joel Basson and Philip Van Hoof continued to improve the Gtk-based port of Windows.Forms.<BR>
<BR>
<BR>
<H4>XmlSerializer</H4>
Lluis worked on a new implementation of the XmlSerialization classes in record time. The XmlSerializer is the foundation for the Soap web services and is also one of the neatest features in the .NET Framework.<BR>
<BR>
It is possibly the best way of dealing with XML documents that I have found so far, and I am kept wondering, why did I bother processing XML in any other way before.<BR>
<BR>
<BR>
<H4>Web Services</H4>
The Web services classes support both RPC and Document, processing as well as Literal and Encoded mechanisms. We have only implemented the client side so far, but most of the infrastructure is in place for authoring the server-side web services. <BR>
<BR>
Erik has written the beginning of our WSDL compiler, but this compiler has not been checked into the repository yet, so today you need to compile your WSDL files using the Microsoft framework tools.<BR>
<BR>
Gonzalo rewrote our Http client to conform to HTTP 1.1, and support all the features in the .NET class library.<BR>
<BR>
<BR>
<H4>Remoting: Soap Formatter</H4>
The .NET Framework supports also a Remoting-based SOAP implementation. Jean-Marc ANDRE has contributed a new implementation of System.Runtime.Serialization.Formatters.Soap<BR>
<BR>
<BR>
<H4>XSLT Extension Objects</H4>
Joshua Tauberer has written extension object support for XSLT; these are used extensively by the new Monodoc (which will be released shortly after Mono 0.25).<BR>
<BR>
<BR>
<H4>XML Library.</H4>
Atsushi Eno continued to improve our XML support and was joined by Ben Maurer in optimizing the XML class libraries. We now allocate about one fifth as much memory while having a 20% speed gain.<BR>
<BR>
<BR>
<H4>Pluggable Profiling Interface</H4>
Paolo has made the profiling code modular.<BR>
<BR>
The user can provide new modules to perform profiling-like operations on methods at runtime (see documentation).<BR>
<BR>
The existing profiler has been turned into a module on its own, and we are also shipping a sample code-coverage instrumentation tool.<BR>
<BR>
This interface will be of particular interest to anyone building advanced tool, or who needs special tracing and debugging facilities in the runtime.<BR>
<BR>
<BR>
<H4>Custom Marshallers</H4>
We now support Custom Marshallers. This allows fine-grained control over the marshalling and de-marshalling of values during P/Invoke. If the default marshalling schemes provided by Mono are not exactly what you need, you can now manually tune the marshalling to be anything you can think of.<BR>
<BR>
<BR>
<H4>JIT Performance and Runtime Enhancements</H4>
Plenty of exciting low-level development, but the high level overview is: faster JITing and faster code generated.<BR>
<BR>
Paolo and Dietmar added support for tail calls and thread-static variables and faster type checking.<BR>
<BR>
Many performance enhancements have been added to the JIT: faster handling of valuetypes, faster calls to some internal helper functions, faster access to two-dimensional arrays.<BR>
<BR>
Dick reworked chunks of the IO-layer to remove the hardcoded limits, and fixed multiple bugs on it.<BR>
<BR>
<BR>
<H4>Testing</H4>
Our head of testing, Nick Drochak reports that we have managed to get our regression test suite to run fully with .NET 1.1; Ville was responsible for getting many of our System.IO tests running on .NET, those were previously failing.<BR>
<BR>
Patrik Kalkman responded brilliantly to the teams' call for more unit tests. He contributed some very nice SingleFormatter and DoubleFormatter tests.<BR>
<BR>
The good news in summary: we are down to 50 tests failing down from 200+ just a few weeks ago. There are plenty of tests, but we need even more, here is the current state:<BR>
<BR>
<UL>
    corlib: 1855 tests <BR>
    Microsoft.VisualBasic: 41 tests <BR>
    Mono.Security.Win32: 25 tests <BR>
    Mono.Security: 27 tests <BR>
    System: 134 tests <BR>
    System.Configuration.Install: 1 tests <BR>
    System.Data: 503 tests <BR>
    System.Security: 101 tests <BR>
    System.Web.Services: 5 tests <BR>
    System.XML: 423 tests 
</UL>
It would be nice to use Paolo's new profiling code together with NUnit tests to find out how much of the API we are currently exercising.<BR>
<BR>
<BR>
<H4>Optimizations</H4>
Nick Drochak, who typically is a C# developer has now gone into the low-level code optimization world, and implemented the optimization to improve the following pattern:<BR>
<BR>
<TT>(long) uinta * (long) uintb </TT><BR>
<BR>
That pattern is used all over our cryptography classes, and has increased the speed of them, and got a 20% performance increase on the regression test suite for the integer code.<BR>
<BR>
<BR>
<H4>Mono Basic Compiler</H4>
Marco has been very busy with the compiler: Plenty of bug fixes in the compiler: methods without arguments do not need parentheses; Various operators fixed; Endregion fixes; Late binding support; Multi-line statements; Redim.<BR>
<BR>
Rafael fixed the Mono.GetOptions and improved some bits of the compiler.<BR>
<BR>
<BR>
<H4>JScript</H4>
Cesar has checked in the initial code to perform semantic analysis on the JScript compiler<BR>
<BR>
<BR>
<H4>System.Data and System.Web Updates</H4>
ADO.NET and ASP.NET got fixes from Ville Palo and Gonzalo: many more regression tests, many fixes, and many improvements. These benefit XSP directly.<BR>
<BR>
<BR>
<H4>Gtk# bundle</H4>
This release from Ximian includes Gtk# packages for a couple of distributions.<BR>
<BR>
<BR>
<H4>Documentation</H4>
This release also ships with MonoDoc. MonoDoc has a few new features: Joshua has redone our ECMA provider, so the documentation is nicer, it has more features, and all the links finally work.<BR>
<BR>
Lee and Johannes worked to get us a new provider for MonoDoc: this new provider integrates the <A HREF="http://www.go-mono.com/tutorial"><U>Mono Tutorial</U></A> into the documentation browser.<BR>
<BR>
We need help continuing our Gtk# documentation effort, the .NET documentation effort, and finally improving our tutorial effort as well. If you are interested, check the mono-docs-list@ximian.com mailing list.<BR>
<BR>
<BR>
<H4>Bug Fixes</H4>
And of course, plenty of bug fixes everywhere: class libraries, compilers, tools, documentation, runtime, and assembler.<BR>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
-- <BR>
Miguel de Icaza &lt;<A HREF="mailto:miguel@ximian.com"><U>miguel@ximian.com</U></A>&gt;
</TD>
</TR>
</TABLE>

</BODY>
</HTML>

--Boundary_(ID_crZQl/cBDIG2hVEkamFQcA)--