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