[Mono-list] [Mono-announce-list] Mono 0.24 has been released.
Miguel de Icaza
miguel@ximian.com
Tue, 06 May 2003 23:40:27 -0400
--Boundary_(ID_pZKpX86lqPU36HHsGXcpOg)
Content-type: text/plain
Content-transfer-encoding: 7BIT
Mono 0.24 has been released
Hello everyone,
A new release of the Mono runtime and SDK is available for UNIX
and Windows. Mono 0.24 represents a significant advance in many
areas of the Mono platform, including:
1. Features
* New code generation engine: The new code generation
engine is the core of the Mono JIT, and now also
features a code pre-compiler.
* Runtime: Mono now provides the GC system with object
maps, providing better collection and improving
applications speed. Also debugging information works
across application domains.
* ASP.NET: WebForms parser has been rewritten.
* Remoting: Plenty of updates to the remoting
infrastructure.
* C# compiler: Various speed improvements, plus support
for C# 2.0 iterators.
* XML: XML deserialization, RELAX NG validating XmlReader,
improved XmlNodeReader, XmlTextReader non-UTF8 stream
support by default, plus a primitive DTD parser.
* Windows.Forms: Lots of updates, and System.Drawing
progress.
* Globalization: Data files for supporting the various
cultures are in, Chinese encoding support.
* New tools: Binding generator for C programs, security
tools, mono-xsd.
* Ongoing development: ILASM, JScript, Soap,
XmlSerialization.
* Mono Basic: Many improvements.
* Security: Uses new BigInteger, many new classes.
* 152 bugs closed, 3397 individual CVS commits.
2. Availability
Binaries for various platforms is available from our web site
from the download section:
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.24.tar.gz
* Mono package (Runtime engine, JIT compiler, pre-compiled
compiler and class libraries ):
http://www.go-mono.com/archive/mono-0.24.tar.gz
* XSP package (XSP test web server for ASP.NET webforms):
http://www.go-mono.com/archive/xsp-0.4.tar.gz
* iPAQ packages are available from:
mono::handhelds
We are alsoshipping Gtk# 0.9 packages and MonoDoc 0.4 packages
for Red Hat 9.0 and Red Hat 8.0.
3. Contributors
This release of Mono is brought to you by (in reverse order):
Zoltan Varga, Vlad Kaluzhny, Ville Palo, Tim Haynes, Tim
Coleman, Sergey Chaban, Sebastien Pouliot, Rodrigo Moya, Reggie
Burnett, Ravi Pratap, Rafael Teixeira, Piers Haken, Petr
Danecek, Per Arneng, Pedro Martinez, Patrik Torstensson, Paolo
Molaro, Nick Drochak, Mike Kestner, Miguel de Icaza, Martin
Willemoes Hansen, Martin Baulig, Mark Crichton, Marco Ridoni,
Malte Hildingson, Lluis Sanchez, Lee Mallabone, Juli Mallett,
Jonathan Pryor, Johannes Roith, Joel Basson, Jean-Marc Andre,
Jaime Anguiano, Jackson Harper, Hector E. Gomez Morales, Gonzalo
Paniagua, Gaurav Vaish, Eduardo Garcia, Duncan Mak, Dietmar
Maurer, Dick Porter, Dennis Hayes, Daniel Morgan, Daniel Lopez,
Christopher Bockner, Charles Iliya Krempeaux, Cesar Octavio
Lopez Nataren, Carlos Alberto Cortes, Ben Maurer, Atsushi
Enomoto, Alp Toker, Alexandre Pigolkine, Aleksey Ryabchuk,
Aleksey Demakov, Alejandro Sanchez, and Alan Tam.
4. Detailed Features
4.1 Runtime
Zoltan changed the way objects are allocated: heap objects are
allocated with GC descriptors which describe which fields are
holding object references and which do not. This speeds up
collections and decreases memory usage since fewer objects are
mistakenly retained.
The synchronized attribute is now supported.
4.2 ASP.NET
Gonzalo rewrote most of our ASP.NET WebForms parser.
The ASP.NET code generator uses CodeDom now so, ideally, once we
have mbas working and someone implements an ICodeCompiler and a
CodeDomProvider for VB.NET we will support VB.NET in aspx pages.
ControlBuilders are supported now. When a
ControlBuilderAttribute is applied to a control it can modify
the parsing behaviour beyond the posibilities offered by
ParseChildrenAttribute (enable/disable white space literals,
modify children as they are added, including changing their Type
and more). This is required to run some of the sample
applications released at http://www.asp.net.
Some improvements in error pages for parsing and compilation. We
even mark with red color generated source lines (MS doesn't :).
Added support for including files. This can save some typing
when headers, footers or whatever are reused in more than one
page/control.
4.3 C# Compiler
Many bugs have been fixed, and various speed improvements added.
Zoltan added a change to reduce memory consumption, which
reduced the compilation times. A cache that was underutilized
has been fully activated, and the total speedup is 40%. Now MCS
bootstraps itself in 6.3 seconds on a 1.8GHz Mobile P4.
Iterators in classes are supported now. This is a feature from
the upcoming C# 2.0 release, it has not been wildly tested. To
use iterators, pass the -v2 flag to the compiler. Notice that
code that uses iterators will not compile with the current
Microsoft compiler.
Iterators were prototyped for C# by Todd Proebsting, and they
vastly simplify the implementation of enumerators in classes.
Instead of being a tedious task, the results is that you can not
wait to add enumerable support to the simplest of your classes.
A few samples are included in mcs/tests/2*.cs, but you can also
read the article at MSDN: C# Programming Language Future
Features.
4.4 Remoting
Lluis continues to improve the Remoting infrastructure:
Implemented support for Contexts and ContextBoundObjects,
including all context message sinks.
Support for interfaces and abstract classes in proxies.
The TCP channel and the binary formatter are now compatible with
MS.NET.
OneWay methods are now working.
4.5 XML
The first implementation of XML deserialization has been done.
It's not complete but XmlSerializer has now become somewhat
symmetric.
Mono now ships Atsushi's RELAX NG validating XmlReader for XML
(namespace: Commons.Xml.Relaxng). This is also the first XML
validation engine for Mono.
Dogfooding-wise: We are using a Relax-NG schema and a simple
program to validate our documentation now.
XmlTextReader has many improvements. XmlTextReader now can parse
a supplied inline or external DTD (only infiles for now). It is
also capable of auto encoding detection for its input.
XmlNodeReader has also improved to be compatible with
XmlTextReader.
Alan added support for passing arguments to XSLT transformations
4.6 Windows.Forms
So far, Windows.Forms development has continued by using a
special version of the runtime that is linked to Wine. This is
about to change. Vlad from OpenLink has modified Wine to be used
as a library, and this new version of Wine has no interaction
problems with the Mono GC and works without making changes to
the Mono runtime. So the same runtime can be used to run any
kind of applications.
Alexandre and Aleksey have been very busy at work with
Windows.Forms, and have done a lot of progress here.
Improvements to Control/Form architecture: Layout management,
MDI implementation, menu merging, modal forms, user paint.
Implementation added to controls: Button, ComboBox,
CheckedListBox, DomainUpDown, Form, GroupBox, NumericUpDown,
Label, ListBox, Panel, ProgressBar, RadioButton, StatusBar,
StatusBarPanel, TabControl, TabPage, TextBox, TrackBar and
ToolTip.
4.7 Globalization
Alan added support for two Chinese encodings: Big5 and GB2312.
Duncan has been working on getting our CultureInfo completed.
Currently we have checked in stubs for various XML files that
describe the various characteristics of the CultureInfo.
Currently they all contain the information for English, so we
will need people to help provide translations and localization
to these files.
4.8 New Code Generation Engine
This release contains the new code generation engine that
Dietmar and Paolo have been working on for the past seven
months. This new code generator can be used both as a
just-in-time compiler or a CIL pre-compiler.
The new engine had a number of goals:
* Simplify porting the JIT engine.
* Provide a solid framework for implementing advanced
optimizations in the JIT engine.
* Support ahead-of-time compilation (precompilation).
The new code generator replaces `mono' as our JIT engine. The
old JIT engine is still distributed as `oldmono', but will be
phased out.
In JIT mode, you have to run it like this:
mono program.exe
In pre-compiler mode you first need to pre-compile your
assembly. You do that by passing the --aot flag:
mono --aot program.exe
mono --aot mylibrary.dll
That will generate program.exe.so and mylibrary.dll.so
respectively. These contain the precompiled code. Then to
execute your precompiled binary, invoke the compiler like this:
mono program.exe
The runtime will automatically pick up the precompiled binaries
as long as they are in the same directory as the original
assembly.
We are very happy with the new framework, because it is very
modular, and it allows us to cleanly replace in the future
components of it, if we choose to, or revamp components of it.
The new code generator has also an SSA representation that is
the foundation for plenty of optimizations today and in the
future.
The following optimizations are implemented:
Branch optimizations, conditional moves, constant
folding, constant propagation, copy propagation, dead
code elimination, emit per-domain code, fast x86 FP
compares, inline method calls, instruction scheduling,
intrinsic method implementations, linear scan global reg
allocation, loop related optimizations, peephole
postpass, tail recursion and tail calls
An whitepaper on the internals of the new compilation engine is
available on mono/mini/mini-doc.txt, if you are interested in
understanding the new engine, this document is a good starting
point.
The job of doing a good JIT requires a tradeoff between
compilation speed and code generation quality. Some are
computing-time expensive and some are cheap. In JIT mode, we
only turn on a few optimizations, but you might want to turn
them all on when doing pre-compilations (-O=all, see the mono ma
page for details).
The new JIT engine is closer to the spec so plenty of checks and
tests that were not implemented before, are implemented now.
We can now focus on tuning the performance of the JIT engine
4.9 New Tools
cilc: Alp Toker has provided us with cilc, a tool that can
generate C bindings to any assembly. This tool is useful if you
want to reuse managed code from your C application. This is
typically used by those who embed the Mono runtime into their
existing C code.
This is of particular interest to Gnome developers, as they can
now easily import new widgets written in C# into their
applications.
monoxsd: Duncan has started work on our XSD replacement.
Currently its limited to generating an XML schema out of an
assembly.
Security tools: Sebastien has added a few tools to use the
cryptographic support libraries in Mono, like the certificate
creation tool. You can see a screenshot of the Certificate
viewer
4.10 Ongoing Projects
Jackson continues work on our IL assembler. The IL assembler has
most of the high-level features now, and 50% of the instruction
set is handled. The next release should have a complete version.
Cesar continues work on our JScript compiler. All of the public
class contracts in the Microsoft.JScript namespace are there,
and the parser is mostly done. Work is underway to emit dynamic
assemblies.
Work has begun on making the SOAP client support in Mono
functional. To this end, we are starting to re-architect the
XmlSerialization infrastructure, which had not been maintained
for a while. We will be devoting significant effort in getting
the Web services client functional now.
4.11 Mono Basic
Marco Ridoni has been making a lot of progress in Mono Basic.
Also Rafael has added preprocessor support to it. Here is a full
list of new features:
Compound operators added
* Member access now work correctly
* A lot of array fixes/improvements
* LateIndexGet/Set calls are generated correctly
* Overloading in constructors fixed
* Array access when the array is a parameter fixed
* Invocation resolution improved
* Added readonly modifier for properties
4.12 Security
Sebastien has continued improving the security classes. Not only
we have convinced him to use Linux, but he has also wrote his
first two .NET GUI applications: one SWT, one Gtk#.
The RSA and DSA code are faster, and also the whole security
system uses Ben's updated BigInteger code. The new BigInteger
code is a lot faster.
Special Thanks
Special thanks go to Duncan Mak for helping putting together
this release.
--
Miguel de Icaza <miguel@ximian.com>
--Boundary_(ID_pZKpX86lqPU36HHsGXcpOg)
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/1.1.8">
</HEAD>
<BODY>
<H3>Mono 0.24 has been released</H3>
<BLOCKQUOTE>
Hello everyone,<BR>
<BR>
A new release of the <A HREF="http://www.go-mono.com">Mono</A> runtime and SDK is available for UNIX and Windows. Mono 0.24 represents a significant advance in many areas of the Mono platform, including:<BR>
<BR>
<BR>
<H3>1. Features</H3>
</BLOCKQUOTE>
<UL>
<BLOCKQUOTE>
<LI><A HREF="#jit">New code generation engine:</A> The new code generation engine is the core of the Mono JIT, and now also features a code pre-compiler.
<LI><A HREF="#runtime">Runtime:</A> Mono now provides the GC system with object maps, providing better collection and improving applications speed. Also debugging information works across application domains.
<LI><A HREF="#asp">ASP.NET:</A> WebForms parser has been rewritten.
<LI><A HREF="#remoting">Remoting:</A> Plenty of updates to the remoting infrastructure.
<LI><A HREF="#mcs">C# compiler:</A> Various speed improvements, plus support for C# 2.0 iterators.
<LI><A HREF="#xml">XML:</A> XML deserialization, RELAX NG validating XmlReader, improved XmlNodeReader, XmlTextReader non-UTF8 stream support by default, plus a primitive DTD parser.
<LI><A HREF="#winforms">Windows.Forms:</A> Lots of updates, and System.Drawing progress.
<LI><A HREF="#glob">Globalization:</A> Data files for supporting the various cultures are in, Chinese encoding support.
<LI><A HREF="#new">New tools:</A> Binding generator for C programs, security tools, mono-xsd.
<LI><A HREF="#ongoing">Ongoing development:</A> ILASM, JScript, Soap, XmlSerialization.
<LI><A HREF="#mbas">Mono Basic:</A> Many improvements.
<LI><A HREF="#security">Security:</A> Uses new BigInteger, many new classes.
<LI>152 bugs closed, 3397 individual CVS commits.
</BLOCKQUOTE>
</UL>
<BLOCKQUOTE>
<BR>
<H3>2. Availability</H3>
Binaries for various platforms is available from our web site from the <A HREF="http://www.go-mono.com/download.html">download</A> section:
</BLOCKQUOTE>
<UL>
<BLOCKQUOTE>
<A HREF="http://www.go-mono.com/download.html">http://www.go-mono.com/download.html</A>
</BLOCKQUOTE>
</UL>
<BLOCKQUOTE>
Source code for Mono, MCS, and XSP is also available from our web site<BR>
<BR>
</BLOCKQUOTE>
<UL>
<BLOCKQUOTE>
<LI>MCS package (Class Libraries, C# and VB.NET compiler and managed tools):<BR>
<A HREF="http://www.go-mono.com/archive/mcs-0.24.tar.gz">http://www.go-mono.com/archive/mcs-0.24.tar.gz</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.24.tar.gz">http://www.go-mono.com/archive/mono-0.24.tar.gz</A>
<LI>XSP package (XSP test web server for ASP.NET webforms):<BR>
<A HREF="http://www.go-mono.com/archive/xsp-0.4.tar.gz">http://www.go-mono.com/archive/xsp-0.4.tar.gz</A>
<LI>iPAQ packages are available from:<BR>
<A HREF="http://amy.udd.htu.se/~malte/mono/">mono::handhelds</A>
</BLOCKQUOTE>
</UL>
<BLOCKQUOTE>
We are alsoshipping Gtk# 0.9 packages and MonoDoc 0.4 packages for Red Hat 9.0 and Red Hat 8.0.<BR>
<BR>
<BR>
<H3>3. Contributors</H3>
This release of Mono is brought to you by (in reverse order):<BR>
<BR>
Zoltan Varga, Vlad Kaluzhny, Ville Palo, Tim Haynes, Tim Coleman, Sergey Chaban, Sebastien Pouliot, Rodrigo Moya, Reggie Burnett, Ravi Pratap, Rafael Teixeira, Piers Haken, Petr Danecek, Per Arneng, Pedro Martinez, Patrik Torstensson, Paolo Molaro, Nick Drochak, Mike Kestner, Miguel de Icaza, Martin Willemoes Hansen, Martin Baulig, Mark Crichton, Marco Ridoni, Malte Hildingson, Lluis Sanchez, Lee Mallabone, Juli Mallett, Jonathan Pryor, Johannes Roith, Joel Basson, Jean-Marc Andre, Jaime Anguiano, Jackson Harper, Hector E. Gomez Morales, Gonzalo Paniagua, Gaurav Vaish, Eduardo Garcia, Duncan Mak, Dietmar Maurer, Dick Porter, Dennis Hayes, Daniel Morgan, Daniel Lopez, Christopher Bockner, Charles Iliya Krempeaux, Cesar Octavio Lopez Nataren, Carlos Alberto Cortes, Ben Maurer, Atsushi Enomoto, Alp Toker, Alexandre Pigolkine, Aleksey Ryabchuk, Aleksey Demakov, Alejandro Sanchez, and Alan Tam.<BR>
<BR>
<BR>
<H3>4. Detailed Features</H3>
</BLOCKQUOTE>
<BLOCKQUOTE>
<H4>4.1 Runtime</H4>
Zoltan changed the way objects are allocated: heap objects are allocated with GC descriptors which describe which fields are holding object references and which do not. This speeds up collections and decreases memory usage since fewer objects are mistakenly retained.<BR>
<BR>
The synchronized attribute is now supported.<BR>
<BR>
<H4>4.2 ASP.NET</H4>
Gonzalo rewrote most of our ASP.NET WebForms parser. <BR>
<BR>
The ASP.NET code generator uses CodeDom now so, ideally, once we have mbas working and someone implements an ICodeCompiler and a CodeDomProvider for VB.NET we will support VB.NET in aspx pages.<BR>
<BR>
ControlBuilders are supported now. When a ControlBuilderAttribute is applied to a control it can modify the parsing behaviour beyond the posibilities offered by ParseChildrenAttribute (enable/disable white space literals, modify children as they are added, including changing their Type and more). This is required to run some of the sample applications released at <A HREF="http://www.asp.net">http://www.asp.net</A>.<BR>
<BR>
Some improvements in error pages for parsing and compilation. We even mark with red color generated source lines (MS doesn't :).<BR>
<BR>
Added support for including files. This can save some typing when headers, footers or whatever are reused in more than one page/control.<BR>
<BR>
<H4>4.3 C# Compiler</H4>
Many bugs have been fixed, and various speed improvements added. Zoltan added a change to reduce memory consumption, which reduced the compilation times. A cache that was underutilized has been fully activated, and the total speedup is 40%. Now MCS bootstraps itself in 6.3 seconds on a 1.8GHz Mobile P4.<BR>
<BR>
Iterators in classes are supported now. This is a feature from the upcoming C# 2.0 release, it has not been wildly tested. To use iterators, pass the -v2 flag to the compiler. Notice that code that uses iterators will not compile with the current Microsoft compiler.<BR>
<BR>
Iterators were prototyped for C# by Todd Proebsting, and they vastly simplify the implementation of enumerators in classes. Instead of being a tedious task, the results is that you can not wait to add enumerable support to the simplest of your classes.<BR>
<BR>
A few samples are included in mcs/tests/2*.cs, but you can also read the article at MSDN: <A HREF="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbconCProgrammingLanguageFutureFeatures.asp">C# Programming Language Future Features</A>.
<H4>4.4 Remoting</H4>
Lluis continues to improve the Remoting infrastructure:<BR>
<BR>
Implemented support for Contexts and ContextBoundObjects, including all context message sinks.<BR>
<BR>
Support for interfaces and abstract classes in proxies.<BR>
<BR>
The TCP channel and the binary formatter are now compatible with MS.NET.<BR>
<BR>
OneWay methods are now working.<BR>
<BR>
<H4>4.5 XML</H4>
The first implementation of XML deserialization has been done. It's not complete but XmlSerializer has now become somewhat symmetric.<BR>
<BR>
Mono now ships Atsushi's RELAX NG validating XmlReader for XML (namespace: Commons.Xml.Relaxng). This is also the first XML validation engine for Mono.<BR>
<BR>
Dogfooding-wise: We are using a Relax-NG schema and a simple program to validate our documentation now.<BR>
<BR>
XmlTextReader has many improvements. XmlTextReader now can parse a supplied inline or external DTD (only infiles for now). It is also capable of auto encoding detection for its input.<BR>
<BR>
XmlNodeReader has also improved to be compatible with XmlTextReader.<BR>
<BR>
Alan added support for passing arguments to XSLT transformations<BR>
<BR>
<H4>4.6 Windows.Forms</H4>
So far, Windows.Forms development has continued by using a special version of the runtime that is linked to Wine. This is about to change. Vlad from <A HREF="http://www.openlinksw.com">OpenLink</A> has modified Wine to be used as a library, and this new version of Wine has no interaction problems with the Mono GC and works without making changes to the Mono runtime. So the same runtime can be used to run any kind of applications.<BR>
<BR>
Alexandre and Aleksey have been very busy at work with Windows.Forms, and have done a lot of progress here. <BR>
<BR>
<FONT SIZE="3"><B>Improvements to Control/Form architecture:</B></FONT> Layout management, MDI implementation, menu merging, modal forms, user paint.<BR>
<BR>
<FONT SIZE="3"><B>Implementation added to controls:</B></FONT> Button, ComboBox, CheckedListBox, DomainUpDown, Form, GroupBox, NumericUpDown, Label, ListBox, Panel, ProgressBar, RadioButton, StatusBar, StatusBarPanel, TabControl, TabPage, TextBox, TrackBar and ToolTip.
<H4>4.7 Globalization</H4>
Alan added support for two Chinese encodings: Big5 and GB2312.<BR>
<BR>
Duncan has been working on getting our CultureInfo completed. Currently we have checked in stubs for various XML files that describe the various characteristics of the CultureInfo. Currently they all contain the information for English, so we will need people to help provide translations and localization to these files.<BR>
<BR>
<H4>4.8 New Code Generation Engine</H4>
This release contains the new code generation engine that Dietmar and Paolo have been working on for the past seven months. This new code generator can be used both as a just-in-time compiler or a CIL pre-compiler.<BR>
<BR>
The new engine had a number of goals:<BR>
<BR>
</BLOCKQUOTE>
<UL>
<BLOCKQUOTE>
<LI>Simplify porting the JIT engine.
<LI>Provide a solid framework for implementing advanced optimizations in the JIT engine.
<LI>Support ahead-of-time compilation (precompilation).
</BLOCKQUOTE>
</UL>
<BLOCKQUOTE>
The new code generator replaces `mono' as our JIT engine. The old JIT engine is still distributed as `oldmono', but will be phased out.<BR>
<BR>
In JIT mode, you have to run it like this:
<PRE> mono program.exe</PRE>
<BR>
In pre-compiler mode you first need to pre-compile your assembly. You do that by passing the --aot flag:<BR>
<BR>
<BR>
<PRE> mono --aot program.exe
mono --aot mylibrary.dll</PRE>
<BR>
That will generate <FONT SIZE="3"><TT>program.exe.so</TT></FONT> and <FONT SIZE="3"><TT>mylibrary.dll.so</TT></FONT> respectively. These contain the precompiled code. Then to execute your precompiled binary, invoke the compiler like this:<BR>
<BR>
<BR>
<PRE> mono program.exe</PRE>
<BR>
The runtime will automatically pick up the precompiled binaries as long as they are in the same directory as the original assembly.<BR>
<BR>
We are very happy with the new framework, because it is very modular, and it allows us to cleanly replace in the future components of it, if we choose to, or revamp components of it. The new code generator has also an SSA representation that is the foundation for plenty of optimizations today and in the future.<BR>
<BR>
The following optimizations are implemented:<BR>
<BR>
</BLOCKQUOTE>
<UL>
<BLOCKQUOTE>
Branch optimizations, conditional moves, constant folding, constant propagation, copy propagation, dead code elimination, emit per-domain code, fast x86 FP compares, inline method calls, instruction scheduling, intrinsic method implementations, linear scan global reg allocation, loop related optimizations, peephole postpass, tail recursion and tail calls
</BLOCKQUOTE>
</UL>
<BLOCKQUOTE>
An whitepaper on the internals of the new compilation engine is available on mono/mini/mini-doc.txt, if you are interested in understanding the new engine, this document is a good starting point.<BR>
<BR>
The job of doing a good JIT requires a tradeoff between compilation speed and code generation quality. Some are computing-time expensive and some are cheap. In JIT mode, we only turn on a few optimizations, but you might want to turn them all on when doing pre-compilations (-O=all, see the mono ma page for details).<BR>
<BR>
The new JIT engine is closer to the spec so plenty of checks and tests that were not implemented before, are implemented now.<BR>
<BR>
We can now focus on tuning the performance of the JIT engine<BR>
<BR>
<H4>4.9 New Tools</H4>
<FONT SIZE="3"><B>cilc:</B></FONT> Alp Toker has provided us with <FONT SIZE="3"><TT>cilc</TT></FONT>, a tool that can generate C bindings to any assembly. This tool is useful if you want to reuse managed code from your C application. This is typically used by those who <A HREF="http://www.go-mono.com/embedded-api.html">embed</A> the Mono runtime into their existing C code.<BR>
<BR>
This is of particular interest to Gnome developers, as they can now easily import new widgets written in C# into their applications.<BR>
<BR>
<FONT SIZE="3"><B>monoxsd:</B></FONT> Duncan has started work on our XSD replacement. Currently its limited to generating an XML schema out of an assembly.<BR>
<BR>
<FONT SIZE="3"><B>Security tools:</B></FONT> Sebastien has added a few tools to use the cryptographic support libraries in Mono, like the certificate creation tool. You can see a screenshot of the <A HREF="http://www.go-mono.com/images/gtk-certview.png">Certificate viewer</A>
<H4>4.10 Ongoing Projects</H4>
Jackson continues work on our IL assembler. The IL assembler has most of the high-level features now, and 50% of the instruction set is handled. The next release should have a complete version.<BR>
<BR>
Cesar continues work on our JScript compiler. All of the public class contracts in the Microsoft.JScript namespace are there, and the parser is mostly done. Work is underway to emit dynamic assemblies.<BR>
<BR>
Work has begun on making the SOAP client support in Mono functional. To this end, we are starting to re-architect the XmlSerialization infrastructure, which had not been maintained for a while. We will be devoting significant effort in getting the Web services client functional now.<BR>
<BR>
<H4>4.11 Mono Basic</H4>
Marco Ridoni has been making a lot of progress in Mono Basic. Also Rafael has added preprocessor support to it. Here is a full list of new features:
</BLOCKQUOTE>
<UL>
<BLOCKQUOTE>
Compound operators added
<LI>Member access now work correctly
<LI>A lot of array fixes/improvements
<LI>LateIndexGet/Set calls are generated correctly
<LI>Overloading in constructors fixed
<LI>Array access when the array is a parameter fixed
<LI>Invocation resolution improved
<LI>Added readonly modifier for properties
</BLOCKQUOTE>
</UL>
<BLOCKQUOTE>
<BR>
<H4>4.12 Security</H4>
Sebastien has continued improving the security classes. Not only we have convinced him to use Linux, but he has also wrote his first two .NET GUI applications: one SWT, one Gtk#.<BR>
<BR>
The RSA and DSA code are faster, and also the whole security system uses Ben's updated BigInteger code. The new BigInteger code is a lot faster.<BR>
<BR>
<BR>
<H4>Special Thanks</H4>
Special thanks go to Duncan Mak for helping putting together this release.
</BLOCKQUOTE>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
<BLOCKQUOTE>
-- <BR>
Miguel de Icaza <<A HREF="mailto:miguel@ximian.com">miguel@ximian.com</A>>
</BLOCKQUOTE>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
--Boundary_(ID_pZKpX86lqPU36HHsGXcpOg)--