diff options
author | Miguel de Icaza <miguel@gnome.org> | 2004-02-24 21:05:41 +0300 |
---|---|---|
committer | Miguel de Icaza <miguel@gnome.org> | 2004-02-24 21:05:41 +0300 |
commit | 4f00a9f76fd900ec1e7069b59ab004344da2b726 (patch) | |
tree | 0edec8a7ae14db129d72b6247698f93ffc4e666f /doc | |
parent | 8cdb27ac59f273b3bf4741217e6b03c458288e51 (diff) |
Remove doc directory
svn path=/trunk/mono/; revision=23412
Diffstat (limited to 'doc')
-rw-r--r-- | doc/.cvsignore | 4 | ||||
-rwxr-xr-x | doc/ChangeLog | 35 | ||||
-rw-r--r-- | doc/Makefile.am | 37 | ||||
-rw-r--r-- | doc/MonoIcon.png | bin | 448 -> 0 bytes | |||
-rw-r--r-- | doc/README | 54 | ||||
-rw-r--r-- | doc/ado-net | 391 | ||||
-rw-r--r-- | doc/anoncvs | 73 | ||||
-rwxr-xr-x | doc/asp-net | 107 | ||||
-rw-r--r-- | doc/blogs | 38 | ||||
-rw-r--r-- | doc/books | 64 | ||||
-rw-r--r-- | doc/bugs | 76 | ||||
-rw-r--r-- | doc/c-sharp | 228 | ||||
-rw-r--r-- | doc/ccvs | 366 | ||||
-rw-r--r-- | doc/class-library | 190 | ||||
-rw-r--r-- | doc/class-status.in | 44 | ||||
-rw-r--r-- | doc/classlib-doc | 49 | ||||
-rw-r--r-- | doc/compiling | 235 | ||||
-rw-r--r-- | doc/contact | 13 | ||||
-rw-r--r-- | doc/contributing | 275 | ||||
-rw-r--r-- | doc/crypto | 380 | ||||
-rw-r--r-- | doc/devel-faq | 190 | ||||
-rw-r--r-- | doc/documentation | 255 | ||||
-rw-r--r-- | doc/download | 1331 | ||||
-rw-r--r-- | doc/drawing | 51 | ||||
-rwxr-xr-x | doc/embedded-api | 305 | ||||
-rw-r--r-- | doc/faq | 1573 | ||||
-rwxr-xr-x | doc/firebird | 138 | ||||
-rw-r--r-- | doc/forge | 72 | ||||
-rw-r--r-- | doc/gcc-frontend | 7 | ||||
-rw-r--r-- | doc/gtk-sharp | 157 | ||||
-rw-r--r-- | doc/hackers | 39 | ||||
-rwxr-xr-x | doc/ibmdb2 | 157 | ||||
-rw-r--r-- | doc/ideas | 71 | ||||
-rw-r--r-- | doc/index | 195 | ||||
-rwxr-xr-x | doc/java | 66 | ||||
-rw-r--r-- | doc/jit-debug | 78 | ||||
-rwxr-xr-x | doc/languages | 162 | ||||
-rw-r--r-- | doc/mailing-lists | 271 | ||||
-rw-r--r-- | doc/mbas | 54 | ||||
-rw-r--r-- | doc/mono-1.0.html | 91 | ||||
-rw-r--r-- | doc/mono-beginning | 34 | ||||
-rw-r--r-- | doc/mono-beginning-windows.xml | 1065 | ||||
-rw-r--r-- | doc/mono-beginning.xml | 1294 | ||||
-rwxr-xr-x | doc/mono-build-w32.sh | 201 | ||||
-rwxr-xr-x | doc/mono-build.sh | 254 | ||||
-rw-r--r-- | doc/mono-contribution-howto | 551 | ||||
-rw-r--r-- | doc/mono-hacking-roadmap.html | 271 | ||||
-rw-r--r-- | doc/mono-roadmap.html | 396 | ||||
-rw-r--r-- | doc/mono-todo | 295 | ||||
-rw-r--r-- | doc/monodoc-xml | 755 | ||||
-rwxr-xr-x | doc/mysql | 329 | ||||
-rwxr-xr-x | doc/odbc | 218 | ||||
-rw-r--r-- | doc/oldnews | 2917 | ||||
-rwxr-xr-x | doc/oledb | 153 | ||||
-rwxr-xr-x | doc/oracle | 166 | ||||
-rw-r--r-- | doc/other | 36 | ||||
-rw-r--r-- | doc/papers | 101 | ||||
-rw-r--r-- | doc/passport | 298 | ||||
-rw-r--r-- | doc/pending | 14 | ||||
-rw-r--r-- | doc/performance | 209 | ||||
-rwxr-xr-x | doc/plans | 15 | ||||
-rw-r--r-- | doc/porting | 63 | ||||
-rw-r--r-- | doc/postgresql | 604 | ||||
-rw-r--r-- | doc/ppc | 40 | ||||
-rwxr-xr-x | doc/print-stack | 15 | ||||
-rwxr-xr-x | doc/projects | 22 | ||||
-rwxr-xr-x | doc/provider-factory | 156 | ||||
-rw-r--r-- | doc/rationale | 199 | ||||
-rw-r--r-- | doc/release-notes/mono-0.3 | 46 | ||||
-rw-r--r-- | doc/release-notes/mono-0.4 | 43 | ||||
-rw-r--r-- | doc/resources | 235 | ||||
-rw-r--r-- | doc/resources-pending | 30 | ||||
-rw-r--r-- | doc/roadmap | 12 | ||||
-rw-r--r-- | doc/runtime | 203 | ||||
-rw-r--r-- | doc/screenshots | 229 | ||||
-rwxr-xr-x | doc/sqlclient | 222 | ||||
-rwxr-xr-x | doc/sqlite | 143 | ||||
-rw-r--r-- | doc/status | 40 | ||||
-rwxr-xr-x | doc/sybase | 153 | ||||
-rw-r--r-- | doc/tds-providers | 164 | ||||
-rwxr-xr-x | doc/tdsclient | 157 | ||||
-rw-r--r-- | doc/testing | 269 | ||||
-rw-r--r-- | doc/thanks | 6 | ||||
-rw-r--r-- | doc/todo | 53 | ||||
-rw-r--r-- | doc/tools | 67 | ||||
-rw-r--r-- | doc/web/.cvsignore | 2 | ||||
-rw-r--r-- | doc/web/commands | 78 | ||||
-rwxr-xr-x | doc/web/deploy/.cvsignore | 1 | ||||
-rw-r--r-- | doc/web/deploy/cm/c.gif | bin | 150 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/cormissing.css | 182 | ||||
-rw-r--r-- | doc/web/deploy/cm/cormissing.js | 395 | ||||
-rw-r--r-- | doc/web/deploy/cm/d.gif | bin | 137 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/e.gif | bin | 861 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/en.gif | bin | 111 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/f.gif | bin | 90 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/i.gif | bin | 90 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/m.gif | bin | 101 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/n.gif | bin | 65 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/p.gif | bin | 111 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/r.gif | bin | 73 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/s.gif | bin | 127 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/sc.gif | bin | 70 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/se.gif | bin | 73 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/sm.gif | bin | 76 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/st.gif | bin | 101 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/sx.gif | bin | 73 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/tb.gif | bin | 49 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/tm.gif | bin | 64 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/tp.gif | bin | 67 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/cm/y.gif | bin | 92 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/images/bgsquares.gif | bin | 4963 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/images/bgsquares.png | bin | 4643 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/images/bgsquares.xcf.gz | bin | 2775 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/images/mono.gif | bin | 3079 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/images/mono.png | bin | 4495 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/images/pixel.gif | bin | 49 -> 0 bytes | |||
-rw-r--r-- | doc/web/deploy/images/pixel.png | bin | 156 -> 0 bytes | |||
-rw-r--r-- | doc/web/htmlify | 33 | ||||
-rw-r--r-- | doc/web/icaza.pl | 76 | ||||
-rw-r--r-- | doc/web/images/bgsquares.gif | bin | 4963 -> 0 bytes | |||
-rw-r--r-- | doc/web/images/bgsquares.png | bin | 4644 -> 0 bytes | |||
-rw-r--r-- | doc/web/images/bgsquares.xcf.gz | bin | 2775 -> 0 bytes | |||
-rw-r--r-- | doc/web/images/gtk-certview.png | bin | 32425 -> 0 bytes | |||
-rwxr-xr-x | doc/web/images/mono-new.gif | bin | 6198 -> 0 bytes | |||
-rw-r--r-- | doc/web/images/mono.gif | bin | 3079 -> 0 bytes | |||
-rw-r--r-- | doc/web/images/mono.png | bin | 4496 -> 0 bytes | |||
-rw-r--r-- | doc/web/images/pixel.gif | bin | 49 -> 0 bytes | |||
-rw-r--r-- | doc/web/images/pixel.png | bin | 157 -> 0 bytes | |||
-rw-r--r-- | doc/web/images/swf-certview.png | bin | 14525 -> 0 bytes | |||
-rwxr-xr-x | doc/web/images/xml.gif | bin | 429 -> 0 bytes | |||
-rw-r--r-- | doc/web/infos/.cvsignore | 1 | ||||
-rw-r--r-- | doc/web/makefile | 206 | ||||
-rw-r--r-- | doc/web/masterinfos/.cvsignore | 1 | ||||
-rw-r--r-- | doc/web/masterinfos/Makefile | 60 | ||||
-rwxr-xr-x | doc/web/mono-rss.cs | 113 | ||||
-rwxr-xr-x | doc/web/process.pl | 89 | ||||
-rw-r--r-- | doc/web/render-team-page.cs | 352 | ||||
-rwxr-xr-x | doc/web/rss.cs | 277 | ||||
-rwxr-xr-x | doc/web/src/.cvsignore | 1 | ||||
-rw-r--r-- | doc/web/team.xml | 1593 | ||||
-rwxr-xr-x | doc/web/team.xsd | 30 | ||||
-rwxr-xr-x | doc/web/team/aleksey.png | bin | 6510 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/cesar.png | bin | 4306 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/dietmar.png | bin | 3166 -> 0 bytes | |||
-rwxr-xr-x | doc/web/team/duncan.png | bin | 1027 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/gonzalo.png | bin | 5005 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/gvaish.png | bin | 4401 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/hector.png | bin | 4494 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/jackson.png | bin | 4626 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/jluke.png | bin | 4767 -> 0 bytes | |||
-rwxr-xr-x | doc/web/team/johannes.png | bin | 6527 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/jonpryor.png | bin | 4538 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/jordi.png | bin | 4189 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/lluis.png | bin | 3425 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/miguel.png | bin | 4196 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/mwh.png | bin | 5189 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/nickd.png | bin | 5134 -> 0 bytes | |||
-rwxr-xr-x | doc/web/team/none.png | bin | 2758 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/pedro.png | bin | 5722 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/pedroas.png | bin | 4539 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/per.png | bin | 4694 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/peterw.png | bin | 3908 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/reggie.png | bin | 5811 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/rpratap.png | bin | 5158 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/spouliot.png | bin | 5485 -> 0 bytes | |||
-rwxr-xr-x | doc/web/team/tberman.png | bin | 4422 -> 0 bytes | |||
-rw-r--r-- | doc/web/team/timc.png | bin | 4579 -> 0 bytes | |||
-rw-r--r-- | doc/web/template.html.in | 125 | ||||
-rw-r--r-- | doc/web/transform.cs | 20 | ||||
-rw-r--r-- | doc/winforms | 96 | ||||
-rwxr-xr-x | doc/xml-classes | 318 |
171 files changed, 0 insertions, 24714 deletions
diff --git a/doc/.cvsignore b/doc/.cvsignore deleted file mode 100644 index 6d3ceb93234..00000000000 --- a/doc/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -Makefile.in -Makefile -all-docs -pending-classes.in diff --git a/doc/ChangeLog b/doc/ChangeLog deleted file mode 100755 index 098e025d61d..00000000000 --- a/doc/ChangeLog +++ /dev/null @@ -1,35 +0,0 @@ -2004-02-05 Aaron Weber <aaron@ximian.com> - - * README: update to describe better how to use the doc/web stuff - - * index: change layout, move old news to oldnews page, rewrite - content, add new headings, decrease size of other headings. - - * jit-debug: change link to martin's page; now it points to the - dir holding the debugger files. Fix grammar in one sentence. - - * oldnews: erase very old news, add slightly old news removed from - index - - * web/htmlify: shrink size of newsitem headings. - -2004-02-03 Atsushi Enomoto <atsushi@ximian.com> - - * xml-classes : updates - -2004-01-22 Atsushi Enomoto <atsushi@ximian.com> - - * xml-classes : status update, additional infos. - -2004-01-16 Atsushi Enomoto <atsushi@ximian.com> - - * web/commands : Added xml-classes (forgot to commit). - * mono-build-w32.sh : Added icu support as well as glib. - * ChangeLog : tiny fix - -2004-01-11 Atsushi Enomoto <atsushi@ximian.com> - - * xml-classes : added v2 info. schema status updates. - - Added ChangeLog. (There is no reason not to keep ChangeLog for - documents, at least for not a little changes ;-) diff --git a/doc/Makefile.am b/doc/Makefile.am deleted file mode 100644 index 68e822f30f7..00000000000 --- a/doc/Makefile.am +++ /dev/null @@ -1,37 +0,0 @@ -WEB_FILES= \ - ado-net anoncvs asp-net books ccvs c-sharp class-library contact contributing devel-faq documentation download \ - embedded-api faq firebird gcc-frontend hackers ideas index \ - java jit-debug languages mailing-lists monodoc-xml mysql odbc \ - oledb papers \ - passport plans porting postgresql ppc projects rationale \ - resources roadmap runtime sqlclient sqlite sybase tdsclient \ - tds-providers status testing thanks tools \ - porting anoncvs monodoc-xml winforms - -OTHERS= pending resources-pending todo mono-build.sh mono-build-w32.sh print-stack - -EXTRA_DIST = $(WEB_FILES) README $(OTHERS) - -all-docs: $(WEB_FILES) - cat rationale roadmap c-sharp tools class-library \ - runtime documentation download faq contributing \ - resources status > all-docs - -class-status: class-status.in Makefile.am - cat class-status.in > class-status - -pending-classes: - -#pending-classes: pending-classes.in Makefile.am -# echo "This is a list of pending classes, and links to their documentation on MSDN.Microsoft.com<p><p>" > pending-classes -# for i in `cat pending-classes.in`; do x=`echo $$i | sed s/\\\.//g`; link=`echo http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrf@@@ClassTopic.asp | sed "s/@@@/$$x/"`; echo " <a href=\"$$link\">$$i</a><br>" >> pending-classes; done - - -webit: dummy - (cd web; make && make push) - -push-notes: - scp release-notes/mono* www@www:/web/cvsmodules/mono/archive - -dummy: - diff --git a/doc/MonoIcon.png b/doc/MonoIcon.png Binary files differdeleted file mode 100644 index c670edb5011..00000000000 --- a/doc/MonoIcon.png +++ /dev/null diff --git a/doc/README b/doc/README deleted file mode 100644 index f10cd5d88de..00000000000 --- a/doc/README +++ /dev/null @@ -1,54 +0,0 @@ -To edit the website appearance: - -cd doc/web -edit template.html.in -make - -To edit website content: - -cd doc (this directory) -edit files carefully -cd web -make - -To publish changes: - -cd web -make push - -################ Requirements - -You must have complete and working "mono" and "mcs" checkouts from -CVS. You will probably need to bootstrap your Mono installation, -although an existing install from RPMs may permit you to build the CVS -versions more easily. - -############## Samples - - - If you want to add a new item in the left menu - you have to edit mono/doc/web/commands and add - the entry there. - - For new files you can add something as: - level,entry,path_to_the_file,file.src - - ex: 1,COBOL#,cobol.html,cobol.src - - If you just want to add a link to the menu: - 1,MyEntry,URL - - ex: 1,About Linux,http://www.linux.org - - To test the results under Linux: - 1. Edit mono/doc/web/makefile - - Delete all the references to class status - and the deploy/index.rss as well as the - mono.exe commands. - - 2. make - 3. Open your browser and point to the - file:///(YOUR PATH HERE)mono/doc/web/deploy/index.html - - diff --git a/doc/ado-net b/doc/ado-net deleted file mode 100644 index 61cd8bda102..00000000000 --- a/doc/ado-net +++ /dev/null @@ -1,391 +0,0 @@ -* ADO.NET - -** Data Access in Mono - -<ul> - <li>Today, our goal is to be compatible with .NET 1.0 and .NET 1.1. We also would like - to extend data access beyond what is included with .NET 1.0 and .NET 1.1, - such as, including access to more databases, such as, PostgreSQL and MySQL, - but also provide classes that help in creating data source-agnostic code, such as, Mono.Data.ProviderFactory.</li> - <li>In the future, we would like to be compatible with .NET 1.2. This - would include features like: - <ul> - <li><a href="http://longhorn.msdn.microsoft.com/lhsdk/ndp/daconworkingwithobjectspacesarchitecture.aspx">ObjectSpaces</a></li> - <li>provide support for hosting Mono languages (C-Sharp, MonoBASIC, etc...) - within a DBMS engine, such as, MySQL or PostgreSQL.</li> - <li>implement .net 1.2 classes, such as, those found in System.Data.ProviderBase</li> - <li>other stuff which can be brought up on the mono-list</li> - </ul></li> -</ul> - -** Bugs and Feature Requests - -<ul> - - <li>Bugs with Mono or any data provider in Mono should be reported - in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you - do not have a Bugzilla user account, it is free - and easy to create - one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> - - <li>Any requests for new features or missing functionality - can entered as a bug in Bugzilla too</li> - -</ul> - -** ADO.NET Data Providers - -<p>Mono has many ADO.NET Data Providers to get you connected: - -<ul> - <li><a href="http://www.go-mono.com/ibmdb2.html">IBM DB2 Universal Database</a></li> - <li><a href="http://www.go-mono.com/mysql.html">MySQL</a></li> - <li><a href="http://www.go-mono.com/odbc.html">ODBC</a></li> - <li><a href="http://www.go-mono.com/oracle.html">Oracle</a></li> - <li><a href="http://www.go-mono.com/oledb.html">OLE DB</a></li> - <li><a href="http://www.go-mono.com/postgresql.html">PostgreSQL</a></li> - <li><a href="http://www.go-mono.com/sqlclient.html">Microsoft SQL Server</a></li> - <li><a href="http://www.go-mono.com/sqlite.html">SQL Lite</a></li> - <li><a href="http://www.go-mono.com/sybase.html">Sybase</a></li> - <li><a href="http://www.go-mono.com/tdsclient.html">Older Microsoft SQL Server and Sybase databases</a></li> -</ul> - -<p>Providers which we do not have, but we would like to have. Currently, - some of these databases are supported via the ODBC or OLE DB providers. - -<ul> - <li><a href="http://msdn.microsoft.com/library/en-us/dnsql2k/html/sqlxml_intromanagedclasses.asp?frame=true">Managed Classes for SqlXml</a> which is - a .NET data provider for retrieving XML data from a Microsoft SQL Server 2000 database. The System.Data.SqlClient provider - in Mono can be used as a starting point at mcs/class/System.Data/System.Data.SqlClient.</li> - <li><a href="http://www.hughes.com.au/">miniSQL</a></li> - <li><a href="http://www.sleepycat.com/">BerkeleyDB (Sleepycat)</a></li> - <li><a href="http://www.sapdb.org/">SapDB</a></li> - <li><a href="http://www-3.ibm.com/software/data/informix/">Informix</a></li> - <li><a href="http://msdn.microsoft.com/vfoxpro/">Foxpro</a></li> - <li>Microsoft Access - could be done by creating C# bindings to <a href="http://mdbtools.sourceforge.net">MDB Tools</a></li> - <li>dbase or xbase type database files</li> - <li>Others are welcome</li> -</ul> - -<p>External Projects that have created ADO.NET Providers that work on Mono: - -<ul> - - <li><a href="http://www.go-mono.com/firebird.html">Firebird Interbase</a></li> is a - Firebird SQL Managed data provider. It can be used with Interbase databases too. It - is written in 100%C# and does not require a client library. Works on .NET and Mono.</a> - <li><a href="http://gborg.postgresql.org/project/npgsql/projdisplay.php">Npgsql</a> is a - PostgreSQL Managed data provider written - in 100% C#, does not require a client library, and works on .NET and Mono</li> - <li><a href="http://sourceforge.net/projects/mysqlnet/">MySQLNet</a> is a - MySQL Managed data provider written in 100% C#, does not - require a client library, and works on .NET and Mono</li> -</ul> - -** Tools - -<p>Some tools that can be used for ADO.NET and other technologies (ASP.NET, XML, etc). - -<ul> - <li><p><b>SQL# command line query tool</b> is a command-line tool to - enter and execute SQL statements or - execute a batch of SQL commands from a file. - <p>It can - be used to test connection strings, connect to various ADO.NET - providers, save output to text, html, or xml. - <p>The SQL# CLI is distributed with the - Mono runtime and class libraries as an executable assembly sqlsharp.exe. - <p>The source to SQL# CLI can be found in the mcs source at - mcs/tools/SqlSharp/SqlSharpCli.cs - </li> - - <li><p><b>SQL# For GTK#</b> - is a graphical SQL database query tool</b> allows a user - to enter SQL commands in a top panel which is a text editor. - <p>It has a toolbar and menu for various tasks, such as, executing - SQL commands one-at-a-time or in a batch. The results would appear - in a bottom panel in a grid or could be saved to a file (xml, html, csv). - <p>Also, the bottom panel would allow logging of SQL command executed. - Here is a screenshot of <a href="http://go-mono.com/images/sqlsharp.png">SQL# For GTK#</a> which - provides a GUI interface using the <a href="http://gtk-sharp.sourceforge.net">Gtk#</a> toolkit. - <p>SQL# For GTK# can be found in mono cvs as sqlsharpgtk.</li> -</ul> - -<p>Tools we would like to have, but they have not been created yet: - -<ul> - <li>Mono has an <b>XML Schema Definition tool</b> (xsd.exe).</b> - - <ul> - <li>This tool - would works like the xsd.exe tool included with - the .NET Framework. The Xsd.exe tool has the
- following uses:
- <ul>
- <li><b>XDR to XSD</b> - used to generate an XML schema from an XDR (XML Data Reduced schema) file.
- XDR was used by Microsoft prior to XSD becoming a W3C recommendation. So, this needs
- to be supported for legacy reasons</li>
- <li><b>XML to XSD</b> - used to generate an XML schema from an XML file</li>
- <li><b>XSD to DataSet</b> - used to generate DataSet classes from an XSD schema file. The
- DataSet classes created can then be used with XML data</li>
- <li><b>XSD to Classes</b> - used to generate classes from an XSD schema file. The
- classes created can be used with System.XML.Serialization.XMLSerializer
- to read and write XML code that follows the schema</li>
- <li><b>Classes to XSD</b> - used to generate an XML schema
- from type(s) in a assembly file. The
- XML schema created by the tool defines the XML format used
- by System.XML.Serialization.XMLSerializer</li>
- </ul>
- <li>Xsd.exe is used to manipulate XML schemas that
- follow the http://www.w3.org/XML/Schema">XML Schema Definition (XSD)</a> language
- recommended by the <a href="http://w3.org/">World Wide Web Consortium (W3C)</a></li>
-
- <li>How this tool could be created:
- <ul>
- <li>Write xsd.exe in C# and run on Mono</li>
- <li>Make sure we have XML Schema support in System.Xml.Schema. Currently,
- it is wrapped around libxlst</li>
- <li>XML serialization support in System.Data classes</li>
- <li>Create the TypedDataSetGenerator class in System.Data</li>
- <li>Using CodeDOM or Reflection.Emit to create code</li>
- <li>Make sure DataSet, XmlDataDocument, and related classes
- are implemented fully</li>
- </ul>
- </li>
- - </li> - </ul> - </li> - - <li><b>Application XML Configuration File Editor</b> - a tool - to create and edit an application configuration file, such as, - we have a .net application named Accouting.exe, the tool could edit - the application configuration file Accounting.exe.config so a user could - connect to the database used by the program. This tool has not - been created.</li> - - <li><b>Configuration Command-Line and GUI Tools for ADO.NET</b>. - These tools have not been started. The tools would be written in - C# and run on Mono. The - configuration tool can be used to do the following: - <ul> - <li>bebased on the Application XML Configuration File Editor</li> - <li>setup DSNs for the ODBC and OLE-DB - providers and configurations for - their underlying libraries (unixODBC and libgda)</li> - <li>setup configurations for the Mono.Data.ProviderFactory - that Brian Ritchie created</li> - <li>setup native database client library configurations too, such as, - freetds.conf for Microsoft SQL Server and Sybase</li> - </ul> - </li> - -</ul> - -** Extra Classes in Mono ADO.NET - - <p>An ADO.NET <a href="http://www.go-mono.com/provider-factory.html">Provider Factory</a> - was created by Brian Ritchie. The - Provider Factory is a way to dynamically create - connections, commands, parameters, and data adapters based on configuration - information. - -** Current Status - - <p>Various ADO.NET Providers have been created at various stages of - development including: - Firebird/Interbase, IBM DB2 Universal Database, MySQL, ODBC, OLE DB, Oracle, - PostgreSQL, SQL Lite, Sybase, Microsoft SQL Server, and TDS Generic. - See their respective web page for more information. - - <p><b>Data Relations</b> via DataRelation, DataRelationCollection, and - other classes have not been implemented - - <p><b>Constraints</b> need lots of work - - <p><b>XML Schema Definition tool</b> xsd.exe that is included - in the .NET Framework has not been created for Mono - - <p><b>TypeDataSetGenerator</b> needs to be stubbed and implemented. - - <p><b>DataSet, DataAdaptor, DataTable, DataRelation, DataRow, DataColumn, - DataColumnCollection, DataRowCollection, and others</b> need more work. There are - many classes that are just stubs and need to be implemented. Ville Palo has been - doing much testing here. - - <p><b>XML support in System.Data</b> needs work. This involves working on - the classes: DataSet, XmlDataDocument, and the method ExecuteXmlReader() that - exists in a provider's class that implements IDbCommand, and others. - Stuart Caborn has started the XML support in a DataSet. Tim Coleman started - XML support in the ExecuteXmlReader() in a SqlCommand. Ville Palo has been - heavily modifying DataSet, XmlDataDocument, and other classes for reading - and writing XML. XML Serialization support in DataSet needs to be implemented. - - <p><b>Integration with ASP.NET</b> has been created. Data binding of - a DataTable in a DataSet to a System.Web.UI.WebControls.DataGrid works. Data binding - of other types works too. - - <p><b>Database Access from ASP.NET</b>: - <ul> - <li>Take a look at xsp in cvs and look at the examples in test: dbpage1.aspx - and dbpage2.aspx: - <ul> - <li>Notice that the namespace System.Data is imported via <b>import</b></li> - <li>A NameValueCollection is gotten using ConfigurationSettings.AppSetings. These - settings are gotten from the file server.exe.config which is a XML file. The XML - file has a section appSettings. In the appSettings section, you have keys - for DBProviderAssembly, DBConnectionType, and DBConnectionString. - <ul> - <li><b>DBProviderAssembly</b> is the assembly of the ADO.NET provider. - For example: - "Mono.Data.PostgreSqlClient"</li> - <li><b>DBConnectionType</b> is the System.Type of the class that - implements System.Data.IDbConnection that is found - in the DBProviderAssembly. - For example: - "Mono.Data.PostgreSqlClient.PgConnection"</li> - <li><b>DBConnectionString</b> is the ConnectionString to set to the - IDbConnection object to use in opening a connection to a data source. - For Example: - "hostaddr=127.0.0.1;user=monotest;password=monotest;dbname=monotest"</li> - </ul> - <li>The function GetConnectionData() gets the database provider assembly, connection type, - and connection string parameters if they exist; otherwise, it uses default values. This is - done during the loading of the web page.</li> - <li>With the connection parameters, the assembly is loaded, the connection type is verified that - it implements IDbConnection and an instance of the class can be created, creates a instance - of the class, sets the connection string, and opens the connection.</li> - </ul> - </li> - </ul> - - <p><b>Integration with Windows.Forms</b> has not been started, such as, data binding - to a System.Windows.Forms.DataGrid. This may involve implementing many classes - in System.Windows.Forms and System.Data. - - <p><b>Integration with <a href="http://gtk-sharp.sourceforge.net/">GTK#</a></b> - has not been started, such as, data binding - to a GtkTreeView. This may involve creating new classes - to go between the glist data model and the ADO.NET data model. - Mike Kestner or Rachel Hestilov would be the best people to ask for help on GTK#. - - <p><b>Integration with QT#</b> has not been started. Any information on - how this can be done is appreciated. Marcus would be the best - person to ask about QT#. - - <p><b>Building System.Data</b> - - <p>The System.Data.dll gets built with the rest of the class library. - To compile the System.Data.dll assembly separately, you need: - - <b>On Unix</b> - - <ul> - * update your mono sources. Be sure you have latest mcs.exe - and .dll's, since there have been many fixes needed for - compilation on Linux. - - * compile System.Data.dll: -<pre> - cd mcs/class/System.Data<br> - mcs --target library -o \ - System.Data.dll @list -</pre> - </ul> - - <b>On Windows</b> - - <ul> - * update your mono sources. Be sure you have latest mcs.exe - and .dll's. You can use the same method as Linux, - or you can use NAnt. - - * To use NAnt: - -<pre> - cd mcs/class/System.Data - ../../nant/NAnt.exe -</pre> - - * This will automatically copy the System.Data.dll to Test. - If you need to do a clean for the System.Data.dll assembly,<br><br> - -<pre> - cd mcs/class/System.Data - ../../nant/NAnt.exe clean -</pre> - </ul> - -** Testing - -<ul> - <li>Testing connection-oriented classes are done - via the provider specific tests - found in the mcs source at mcs/class</br> - <table border=1> - <tr> - <td><b>Name</b></td> - <td><b>Assembly /</br> Namespace</b></td> - <td><b>Test</b></td> - </tr> - - <tr> - <td>Microsoft</br> SQL</br> Server</br></td> - <td>System.Data /</br> System.Data.SqlClient</td> - <td>SqlTest.cs at</br> System.Data/Test</td> - </tr> - - <tr> - <td>PostgreSQL</br> (Npgsql)</td> - <td>Npgsql /</br> Npgsql</td> - <td>*.cs at</br> Npgsql/Test</td> - </tr> - - <tr> - <td>PostgreSQL</br> (Mono)</td> - <td>Mono.Data.PostgreSqlClient /</br> Mono.Data.PostgreSqlClient</td> - <td>PostgresTest.cs at</br> System.Data/Test</td> - </tr> - - <tr> - <td>MySQL</br> (Mono)</td> - <td>Mono.Data.MySql /</br> Mono.Data.MySql</td> - <td>MySqlTest.cs at</br> Mono.Data.MySql/Test</td> - </tr> - - <tr> - <td>Oracle</br> (Mono)</td> - <td>System.Data.OracleClient /</br> System.Data.OracleClient</td> - <td>TestOracleClient.cs at</br> System.Data.OracleClient/Test</td> - </tr> - - <tr> - <td>ODBC</br> (Mono)</td> - <td>System.Data.Odbc /</br> System.Data</td> - <td>OdbcTest.cs (to connect to MS SQL Server)at</br> System.Data/Test</td> - </tr> - - </table> - - - <li><a href="http://www.go-mono.com/testing.html">Testing non-connection classes</a> are - done via mono's modified version of NUnit. - <ul> - <li>To run all the NUnit tests for Mono, you need the mcs source. cd to the root - of the mcs source. To run it: - <ul> - <li>On Linux: make -f makefile test</li> - <li>On Windows: make test</li> - </ul> - </li> - <li>If you just want to run the NUnit tests for System.Data, you would cd into - the mcs source at class/System.Data/Test and run it: - <ul> - <li>On Linux: make -f makefile test</li> - <li>On Windows: make test</li> - </ul> - </li> - </ul> - </li> - -</ul> - diff --git a/doc/anoncvs b/doc/anoncvs deleted file mode 100644 index c52d510fc53..00000000000 --- a/doc/anoncvs +++ /dev/null @@ -1,73 +0,0 @@ -* Anonymous CVS access - - Anonymous access to the Mono is available currently from three - servers (anoncvs-spain-1.go-mono.com, - anoncvs-spain-2.go-mono.com and us-anoncvs.go-mono.com). - - You can also use `anoncvs.go-mono.com', and that will pick a - server automatically for you. - - Sources are currently being updated every hour. - -** Checking out the sources - - To check out the sources for the first time from the - repository, use this command: - -<pre> - export CVSROOT=:pserver:anonymous@anoncvs.go-mono.com:/mono - cvs login - cvs -z3 co mcs mono gtk-sharp -</pre> - - That will get you the compiler and class libraries (mcs), the - interpreter and JITer (mono) and the Gtk# bindings. - - The server is located in Spain. - -** Updating the sources - - To update your sources every day, you use this command: - -<pre> - export CVSROOT=:pserver:anonymous@anoncvs.go-mono.com:/mono - cvs -z3 update -dP mcs mono gtk-sharp -</pre> - -** Thanks - - Thanks to <a href="http://www.hispalinux.es">HispaLinux</a> - for providing this Anon CVS server. The server is located in - Spain. - - Special thanks to Jesus Climent, Rodrigo Moya, Juantomás - García and Ismael Olea for making this happen. - - Thanks to Matt Liotta of MontaraSoftware for hosting our - US-based AnonCVS server. - -<a name="#mirror"> -** Becoming an AnonCVS mirror - - To become an AnonCVS mirror, you currently need about 40 - megabytes of free disk space and bandwidth that you do not - mind sharing (you probably want enough to spare). - - I need to be able to rsync to your machine from the main CVS - server. The preferred method to rsync is to setup ssh in your - machine. - - The requirements are: - <ul> - * An account where we can ssh into. - - * rsync. - - * AnonCVS setup with the same paths as the rest of the - servers. - - * Currently, about 40 megabytes of disk space, but this - will likely grow as the project evolves. - - * A sysadmin contact e-mail address. - </ul> diff --git a/doc/asp-net b/doc/asp-net deleted file mode 100755 index f22866b0b78..00000000000 --- a/doc/asp-net +++ /dev/null @@ -1,107 +0,0 @@ -* ASP.NET - - ASP.NET support is divided in two pieces: - <ul> - * Web Forms (Web Applications infrastructure). - - * Web Services (the SOAP-based rpc system). - </ul> - - Both are functional at this point, and applications like - "IBuySpy" run with Mono. - - ASP.NET works either embedded into - our XSP server test server or the mod_mono Apache module. - - We are now working on bug fixing and adding missing features - after making the whole pipeline compatible with MS. - - Tim started work on the Web Services. After that, Lluis is in - charge and has been working hard on them as part of our - <a href="http://www.ximian.com/about_us/press_center/press_releases/index.html?pr=sourcegear">SourceGear</a> contract. - - Web services are now supported and there are some samples in the - XSP set of tests. - -** Hosting - - ASP.NET provides a hosting interface. Today we ship support - for two different hosting mechanisms: - <ul> - * <a href="#xsp">XSP</a>: A light-weight C# web server. - - * <a href="#mod_mono">mod_mono</a>: An apache module - that can host the Mono runtime and the ASP.NET runtime - </ul> - -<a name="xsp"> -** XSP - - XSP is a simple web server written in C# that can be used to - run your ASP.NET applications. The code is available from our - <a href="download.html">download page</a> or from the <a - href="anoncvs.html">Anonymous CVS</a> repository (module name: - xsp)/. - - This is where initial development of the .aspx/.ascx/.asax - compiler to C# took place. That compiler is now integrated in - System.Web classes mostly under System.Web.Compilation - namespace. We added a new web server that works with mono and - MS runtime and is being used to debug our classes. It resides - in xsp/server. - - A couple of classes of this new server can be reused/extended - to make an apache module/cgi using mono (MonoWorkerRequest and - MonoApplicationHost). This server also uses a couple of - plugins distributed with Mono to support gzip HTTP transfers. - - There is also a set of .aspx pages to test the server along with - a few user controls under xsp/test. - - You can check it out from CVS and run 'make install' to test it. - -<a name="mod_mono"> -* mod_mono - - This Apache module is available from our <a - href="download.html">download page</a>. The <a href="anoncvs.html"> - cvs</a> module name is mod_mono. It works with both 1.3 and 2.0 - versions of the <a href="http://httpd.apache.org">apache server</a>. - - It allows apache to serve ASP.NET pages. - - Work is underway to improve it. - -** Controls - - A lot of work has been put in the various classes that - implement the controls (UI.HtmlControls and UI.WebControls). - They have been coded mostly in the dark, and without being - able to test them in real life: Gaurav and Leen worked very - hard on this namespace. After that, we keep fixing bugs on - them. - - We can now render all HtmlControls and all WebControls. - - Help in making the controls better is appreciated. - -** ASP.NET and free controls. - - We want to encourage developers to create open source controls - that can be used both on Mono's ASP.NET and Microsoft's ASP.NET. - -** How to Help - - Testing and fixing HtmlControls, WebControls and validators is an - easy way to help. - - In the CVS module XSP you can find a small web server used for - testing and a directory containing sample aspx pages. - - You have some documentation under doc directory and in the README - file of each directory. They explain how to test our System.Web. - Testing is really easy! - - As the server also works with MS runtime, you can use it to check - what the expected results are. - diff --git a/doc/blogs b/doc/blogs deleted file mode 100644 index 1fb66df3c07..00000000000 --- a/doc/blogs +++ /dev/null @@ -1,38 +0,0 @@ - - You can read the aggregates news from the Mono developers in - <a href="http://www.go-mono.com/monologue">Monologue</a>. You - can also download our aggregator from the <a - href="anoncvs.html">AnonCVS</a> server. - - Various Mono contributors maintain blogs, some are listed here: - - <a href="http://codeblogs.ximian.com/blogs/benm/index.rdf"><img align="center" src="images/xml.gif"></a> - <a href="http://codeblogs.ximian.com/blogs/benm/">Ben Maurer</a> - <br> - <a href="http://ada.fciencias.unam.mx/~olopez/jscript/cesar.rss2"><img align="center" src="images/xml.gif"></a> - <a href="http://ada.fciencias.unam.mx/~olopez/jscript/">Cesar Nataren</a> - <br> - <a href="http://www.jacksonh.net/jackson/blog/jackson.rss2"><img align="center" src="images/xml.gif"></a> - <a href="http://www.jacksonh.net/jackson/blog/">Jackson Harper</a> - <br> - <a href="http://primates.ximian.com/~lluis/blog/index.rdf"><img align="center" src="images/xml.gif"></a> - <a href="http://primates.ximian.com/~lluis/blog/">Lluis Sánchez</a> - <br> - <a href="http://primates.ximian.com/~martin/blog/rss.xml"><img align="center" src="images/xml.gif"></a> - <a href="http://primates.ximian.com/~martin/blog/">Martin Baulig</a> - <br> - <a href="http://primates.ximian.com/~miguel/miguel.rss2"><img align="center" src="images/xml.gif"></a> - <a href="http://primates.ximian.com/~miguel/activity-log.php">Miguel de Icaza</a> - <br> - <a href="http://primates.ximian.com/~mkestner/blog/index.rdf"><img align="center" src="images/xml.gif"></a> - <a href="http://primates.ximian.com/~mkestner/blog/">Mike Kestner</a> - <br> - <a href="http://pages.infinit.net/ctech/poupou.rss"><img align="center" src="images/xml.gif"></a> - <a href="http://pages.infinit.net/ctech/poupou.html">Sebastien Pouliot</a> - <br> - <a href="http://primates.ximian.com/~gonzalo/mono/blog/index.xml"><img align="center" src="images/xml.gif"></a> - <a href="http://primates.ximian.com/~gonzalo/mono/blog/">Gonzalo Paniagua</a> - <br> - <a href="http://codeblogs.ximian.com/blogs/ndrochak/index.rdf"><img align="center" src="images/xml.gif"></a> - <a href="http://codeblogs.ximian.com/blogs/ndrochak/">Nick Drochak</a> - diff --git a/doc/books b/doc/books deleted file mode 100644 index 00ed239bb73..00000000000 --- a/doc/books +++ /dev/null @@ -1,64 +0,0 @@ -* Mono - - <a href="http://www.amazon.de/exec/obidos/ASIN/3827264928/qid=1050051051/sr=2-1/ref=sr_2_3_1/028-2755135-1623712"> - Mono: .NET-kompatible Anwendungen mit dem Open Source-Framework - </a> - -* C# - - A Programmer's Introduction to C# - Second Edition: Eric Gunnerson - -* .NET Framework - - Avery good techincal book about .NET is Don Box's <a - href="http://service.bfast.com/bfast/click?bfmid=2181&sourceid=39391960&isbn=0201734117">Essential - .NET</a> - -* Remoting - - <a href="http://www.dotnetremoting.cc/book/AdvancedDotNetRemoting.asp">Advanced .NET Remoting: Ingo Rammer</a> - -* Threading - - .NET Multithreading: Alan L. Dennis (ISBN 1-930110-54-5) - -* Web Services - - Web Services: Architecture and Implementation with .NET: Keith Ballinger - -* ASP.NET - - Essential ASP.NET with Examples in C# by Fritz Onion - - ASP.NET in a Nutshell by G. Andrew Duthie & Matthew MacDonald - - Programming ASP.NET by Jessy Liberty & Dan Hurtwitz - -* Compiler Implementation - - Compilers - Principles, Techniques, and Tools: Alfred V. Aho, Ravi Sethi, - Jeffrey D. Ullman - - Advanced Compiler Design Implementation: Steven S. Muchnick - - Modern Compiler Implementation in C: Andrew W. Appel - - A Retargetable C Compiler - Design and Implementation: C. Fraser, David - Hanson - -* Reference Manuals - - <a - href="http://developer.intel.com/design/pentium/manuals/24319101.pdf">Intel - Architecture Software Developer's Manual, Volume 2 - Instruction Set Reference Manual</a> - - <a - href="http://www.caldera.com/developers/devspecs/abi386-4.pdf">System V ABI - - i386 Architecture Processor Supplement</a> - - <a - href="http://www.caldera.com/developers/devspecs/mipsabi.pdf">System V ABI - - MIPS Processor supplement</a> - - <a href="http://www.sparc.org/standards/V8.pdf">The SPARC Architecture - Manual Version 8</a> diff --git a/doc/bugs b/doc/bugs deleted file mode 100644 index baf2bd5d7f6..00000000000 --- a/doc/bugs +++ /dev/null @@ -1,76 +0,0 @@ -* Bug reporting - - To report bugs you need to create a <a - href="http://bugzilla.ximian.com/createaccount.cgi">Bugzilla - Account</a>. - - Here are some convenient shortcuts to browse or add bug reports. - - <ul> - * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FClass+Libraries&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&newqueryname=&form_name=query&order=bugs.priority%2C%20bugs.bug_id">[Query]</> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FClass%20Libraries">[Add]</a> Class Libraries - - * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FCompilers&component=IL+assembler&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FCompilers&component=IL%20assembler">[Add]</a> IL Assembler. - - * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FCompilers&component=C%23&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FCompilers&component=C%23">[Add]</a> C# Compiler. - - * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FRuntime&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FRuntime">[Add]</a> Runtime - - * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FDoctools&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FDoctools">[Add]</a> Documentation system. - - * <a href="http://bugzilla.ximian.com/buglist.cgi?product=gtk%23&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=gtk%23">[Add]</a> Gtk# - - * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FClass+Libraries&component=System.Web&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FClass%20Libraries&component=System.Web">[Add]</a> ASP.NET WebForms - - * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FClass+Libraries&component=System.Web.Services&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FClass%20Libraries&component=System.Web.Services">[Add]</a> ASP.NET Web Services - - * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FDebugger&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono%2FDebugger">[Add]</a> Debugger. - - * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono+Develop&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&cmdtype=doit&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> <a href="http://bugzilla.ximian.com/enter_bug.cgi?product=Mono+Develop">[Add]</a> Mono Develop. - - * <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono+Tasks&product=Mono%2FClass+Libraries&product=Mono%2FCompilers&product=Mono%2FDebugger&product=Mono%2FDoctools&product=Mono%2FRuntime&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">[Query]</a> All core components. - - </ul> - -<a name="goodbugreport"/> -** How to make good bug reports - - <ol> - * Submit a test case, the smaller it is, the better - - * Use <a href="http://bugzilla.ximian.com"> - http://bugzilla.ximian.com</a> to report the bug. - - <p>In <b>addition</b> to bugzilla, posting to the list is - fine if the bug merits larger exposure or design - discussions to solve; posting to the list twice or more - is just a way to annoy people and make them waste time, - specially when you start a new thread about it. - - * If the test involves libraries or assemblies that are - not part of mono, add info about where to download all - the dependencies, and how to compile/install them. - - * If compiling the test case requires more than: - <pre> mcs test.cs </pre> - provide the <b>full command line</b> you used to compile - the test. - - * If running the test requires more than: - <pre> mono test.exe </pre> - provide the <b>full command line</b> needed to replicate - the bug. - - * Provide info about the version of the software you're - using (both mono and the operating system or relevant - libraries). - - * Provide the output you expect the test case to produce. - - * Provide the actual output <b>you</b> get from the test case. - </ol> - - A good bug report complies with at least 6 items from the list. - If your bug report complies with 3 or less items, it is very - poor and it means it will take much more time to fix (when it's - not ignored). - diff --git a/doc/c-sharp b/doc/c-sharp deleted file mode 100644 index e94dcc6c58a..00000000000 --- a/doc/c-sharp +++ /dev/null @@ -1,228 +0,0 @@ -* MCS: The Ximian C# compiler - - The Mono C# compiler is considered feature complete at this - point and relatively mature. MCS is able to compile itself - and many more C# programs (there is a test suite included that - you can use). It is routinely used to compile Mono, roughly - half a million lines of C# code. - -** Obtaining MCS - - The Mono C# compiler is part of the `mcs' module in the Mono CVS - you can get it from our <a href="anoncvs.html">Anonymous CVS</a> server, - or you can get nightly <a href="download.html">download page</a>. - -** Running MCS - - MCS is written in C# and uses heavily the .NET APIs. MCS runs - on Linux with the Mono runtime and on Windows with both the - .NET runtime and the Mono runtime. - -** Reporting Bugs in MCS - - When you report a bug, try to provide a small test case that would - show the error so we can include this as part of the Mono C# regression - test suite. - - If the bug is an error or a warning that we do not flag, write - a sample program called `csXXXX.cs' where XXXX is the code number - that is used by the Microsoft C# compiler that illustrates the - problem. That way we can also do regression tests on the invalid - input. - -** Phases of the compiler - - The compiler has a number of phases: - - <ul> - * Lexical analyzer: hand-coded lexical analyzer that - provides tokens to the parser. - - * The Parser: the parser is implemented using Jay (A - Berkeley Yacc port to Java, that I ported to C#). - The parser does minimal work and syntax checking, - and only constructs a parsed tree. - - Each language element gets its own class. The code - convention is to use an uppercase name for the - language element. So a C# class and its associated - information is kept in a "Class" class, a "struct" - in a "Struct" class and so on. Statements derive - from the "Statement" class, and Expressions from the - Expr class. - - * Parent class resolution: before the actual code - generation, we need to resolve the parents and - interfaces for interface, classe and struct - definitions. - - * Semantic analysis: since C# can not resolve in a - top-down pass what identifiers actually mean, we - have to postpone this decision until the above steps - are finished. - - * Code generation: The code generation is done through - the System.Reflection.Emit API. - </ul> - -** CIL Optimizations. - - The compiler performs a number of simple optimizations on its input: - constant folding (this is required by the C# language spec) and - can perform dead code elimination. - - Other more interesting optimizations like hoisting are not possible - at this point since the compiler output at this point does not - generate an intermediate representation that is suitable to - perform basic block computation. - - Adding an intermediate layer to enable the basic block - computation to the compiler should be a simple task, but we - are considering having a generic CIL optimizer. Since all the - information that is required to perform basic block-based - optimizations is available at the CIL level, we might just skip - this step altogether and have just a generic IL optimizer that - would perform hoisting on arbitrary CIL programs, not only - those produced by MCS. - - If this tool is further expanded to perform constant folding - (not needed for our C# compiler, as it is already in there) - and dead code elimination, other compiler authors might be - able to use this generic CIL optimizer in their projects - reducing their time to develop a production compiler. - -* Open bugs - - See the <a href="bugs.html">bugs page</a> for more information. - - A test suite is maintained to track the progress of - the compiler and various programs are routinely compiled and - ran. - -* Slides - - Slides for the Mono C# Compiler presentation at .NET ONE are - available <a - href="http://primates.ximian.com/~miguel/slides-europe-nov-2002/Mono_C_Sharp_Overview_1007.sxi">here</a> - in StarOffice format. - -** History - - MCS was able to parse itself on April 2001, MCS compiled itself - for the first time on December 28 2001. MCS became self hosting - on January 3rd, 2002. - - The Mono Runtime and the Mono execution engine were able to make - our compiler self hosting on March 12, 2002. - -** Questions and Answers - -Q: Does the Mono C# compiler support C# 2.0? - -A: At this point the Mono C# compiler supports some of the features of - C# 2.0, but the support has not been completed. To enable 2.0 features - you must use the -2 flag to the compiler. - -Q: What features are available as of Feb 2004? - -A: Iterators have been implemented as well as method group implicit - conversion to delegates on the main compiler branch. - - We have a branch of the compiler in the module `mcs/gmcs' which is - where we are developing the Generics support for the compiler. Plenty - of tests work (see mcs/tests/gen-*.cs for a list of tests), but work - remains to be done. - -Q: Will the C# 2.0 features be part of the Mono 1.0 release? - -A: Only a few, the generic compiler will not be part of the 1.0 - stable release, but a beta preview will be distributed. - -Q: Why not write a C# front-end for GCC? - -A: I wanted to learn about C#, and this was an exercise in this - task. The resulting compiler is highly object-oriented, which has - lead to a very nice, easy to follow and simple implementation of - the compiler. - - I found that the design of this compiler is very similar to - Guavac's implementation. - - Targeting the CIL/MSIL byte codes would require to re-architecting - GCC, as GCC is mostly designed to be used for register machines. - - The GCC Java engine that generates Java byte codes cheats: it does - not use the GCC backend; it has a special backend just for Java, so - you can not really generate Java bytecodes from the other languages - supported by GCC. - -Q: If your C# compiler is written in C#, how do you plan on getting - this working on a non-Microsoft environment. - - We will do this through an implementation of the CLI Virtual - Execution System for Unix (our JIT engine). - - Our JIT engine is working for the purposes of using the compiler. - The supporting class libraries are being worked on to fully support - the compiler. - -Q: Do you use Bison? - -A: No, currently I am using Jay which is a port of Berkeley Yacc to - Java that I later ported to C#. This means that error recovery is - not as nice as I would like to, and for some reason error - productions are not being caught. - - In the future I want to port one of the Bison/Java ports to C# for - the parser. - -Q: Should someone work on a GCC front-end to C#? - -A: I would love if someone does, and we would love to help anyone that - takes on that task, but we do not have the time or expertise to - build a C# compiler with the GCC engine. I find it a lot more fun - personally to work on C# on a C# compiler, which has an intrinsic - beauty. - - We can provide help and assistance to anyone who would like to work - on this task. - -Q: Should someone make a GCC backend that will generate CIL images? - -A: I would love to see a backend to GCC that generates CIL images. It - would provide a ton of free compilers that would generate CIL - code. This is something that people would want to look into - anyways for Windows interoperation in the future. - - Again, we would love to provide help and assistance to anyone - interested in working in such a project. - -Q: What about making a front-end to GCC that takes CIL images and - generates native code? - -A: I would love to see this, specially since GCC supports this same - feature for Java Byte Codes. You could use the metadata library - from Mono to read the byte codes (ie, this would be your - "front-end") and generate the trees that get passed to the - optimizer. - - Ideally our implementation of the CLI will be available as a shared - library that could be linked with your application as its runtime - support. - - Again, we would love to provide help and assistance to anyone - interested in working in such a project. - -Q: But would this work around the GPL in the GCC compiler and allow - people to work on non-free front-ends? - -A: People can already do this by targeting the JVM byte codes (there - are about 130 compilers for various languages that target the JVM). - -Q: Why are you writing a JIT engine instead of a front-end to GCC? - -A: The JIT engine and runtime engine will be able to execute CIL - executables generated on Windows. - -You might also want to look at the <a href="faq.html#gcc">GCC</a> -section on the main FAQ diff --git a/doc/ccvs b/doc/ccvs deleted file mode 100644 index 85331cec89a..00000000000 --- a/doc/ccvs +++ /dev/null @@ -1,366 +0,0 @@ -* CVS Access - - Here we describe how one obtains commit access to the Mono CVS - repository and the responsibilities that come with that access - privilege. - - These only apply to the Mono CVS repository, and not to the <a - href="http://forge.novell.com/modules/xfmod/community/?monocomm">Mono - Community</a> repositories at Novell Forge. - -** What is CVS? - - Briefly, CVS is a system tool used to store and maintain files and - a history of their changes over time. The Mono source code and related - files are kept on a CVS server at Ximian. - -** What Access? - - We mean "commit" access. This is the privilege to make permanent - changes to the Mono source code and related files. You need an account - created by the CVS server administrator in order to commit changes to - the files on that server. - -** How Does One Obtain Access? - - Any active Mono developer can get a CVS account. Normally one is - considered an 'active' developer after sending several patches to the - mailing lists and/or bugzilla for review. - - If you are not a developer, but want to access the latest sources, - please see the <a href="anoncvs.html">AnonCVS</a> - instructions. If you are not a direct contributor to Mono, - but want to host your .NET or Mono-based project, you can use - <a href="forge.html">Novell Forge</a>. - - - If you feel you are ready for a CVS account send an e-mail to - <a href="mailto:miguel@ximian.com">miguel</a> with your public OpenSSH - key for this purpose. Please specify if the key was generated with SSH - version 1 or version 2. Detailed instructions are below. - -* Policies - - It is necessary that everyone with CVS commit access respect and - adhere to the following rules. If you ask for and are granted CVS - access, you are agreeing to follow these policies. - -** Code License - - If you are about to commit code to a module, the code that is - being committed should be released under the same license as - the code that the module has. - - Check the license if you are unsure, but it is basically: - class libraries X11; compiler and tools: GPL; runtime: LGPL. - - If in doubt, check with the maintainers of the module, or send - mail to mono-hackers-list@ximian.com. - -** Changing code - - Even if you have CVS commit access, that doesn't mean you can change - code at will in any directory or module. Directories and Namespaces - have a sort of unofficial ownership. If you are not the owner of a - piece of code and you want to make changes/fixes to it, there are two - cases. - 1) The change is a typo fix or a one-liner build or trivial fix. In - this case almost anyone can commit (always remembering to add the - proper changelog entry to explain the change). We say "almost anyone", - because changes to certain directories almost always should be reviewed - first. Such as changes to core stuff: corlib/System, System.Collections, - mini/, metadata/, System.IO. - - 2) The change is larger. In this case the patch *must* be sent to - mono-devel-list for review by the owner of the code and by the other - hackers. Always submit such patches to the list or bugzilla, although - you may put the owner of the code in the CC header. Hackers come and go. - Mailing a patch to only a personal address is a good way to get the - patch forgotten and missed. Plus, getting the patches reviewed as well - as reviewing them, is a good thing, so try to get used to it. - - Note: If the patch is an addition of code and doesn't change any of the - existing code, the rules are slightly relaxed: there is more freedom - in committing such changes, if they don't interfere with the existing - codebase. - -** Owning Code - - Now, how do you get to be the owner of a chunk of code? The answer is - simple. You wrote the code, so you're the unofficial owner. There is - also another way. After sending a few patches for the code, the - owner (or the core developers of mono, if the owner somehow disappeared) - trusts you and tells you you're free to commit without getting his - review first. - - - Here is a (partial) list of namespaces/directories with their owners: - <ul> - <li>Debugger module and debug code in mono: martin - <li>mcs compiler: miguel, martin, ravi - <li>Reflection/Reflection.Emit: lupus, zoltan - <li>IO-layer: dick - <li>mini: lupus, dietmar - <li>test suite: nickd (though anyone should feel free to add test cases) - <li>System.IO: dick, ville - <li>security stuff: spouliot - <li>ilasm: jackson - <li>System.Web and related: gonzalo - <li>System.Xml: eno, piers - <li>Remoting: dietmar, lluis - <li>interop/marshal: dietmar - <li>threads: dick - </ul> - - If you are the owner of a piece of code, feel free to commit code, and - delegate the work to others. - - But, if you're not the owner of the code, committing a rewrite without - getting a review first is not good cvsitizenship (especially when the - rewrite claimed to fix bugs, but not a single regression test has been - added to the suite). - -** Commit Rules - - Once you know you can commit a patch (because of the rules above) there - are a few other small rules to follow: - <ul> - <li>Always add a changelog entry with a meaningful explanation - <li>If you fix a bug, add a regression test for it in the regression - suite - <li>Don't commit unrelated changes together with a fix: do fine-grained - commits - <li>Always check what you're committing: make sure you're only committing - what you need and make sure you don't change line endings and - whitespace. Do a 'cvs diff -u' of the files you're going to commit and - check the changes. - <li>Don't do reformatting commits, unless you're the original author of - the code - <li>When fixing bugs, don't follow the documentation blindly, it may - well be wrong. Test the behavior on the MS runtime or ask on the list - for discussion if unsure. Don't be afraid of having your changes - reviewed. - <li>Never remove copyright notices from the code - <li>Never remove licensing info from code - <li>Never commit code you didn't write yourself or code that doesn't - have a suitable license - <li>Follow the style conventions - <li>Keep an eye on performance considerations, especially for code in - core classes, ask on the list for guidance - <li>Do a regression test run and a bootstrapping build if making changes - to core functionality before committing. Do not commit code that would - break the compile, because that wastes everybody's time. Two things - are important in this step: trying to build your sources and making - sure that you add all the new files before you do a commit. - </ul> - - Also, remember to pat yourself on the back after the commit, smile and - think we're a step closer to a better free software world. - - -* Using CVS. - - This is a small tutorial for using CVS. - -** Generating an SSH key - - If you are using SSH version 2, please generate your key using: - -<pre> - ssh-keygen -t rsa -</pre> - - And mail <a href="mailto:miguel@ximian.com">miguel</a> the - id_rsa.pub file. - - If you are using SSH version 1, run: -<pre> - ssh-keygen -</pre> - - And mail <a href="mailto:miguel@ximian.com">miguel</a> your - identity.pub file. - - If you are using SSH from SSH Communications Security (they offer - a free SSH client for personal use), you have to use OpenSSH to - convert your public key to the required format. You have to use - OpenSSH's ssh-keygen program and write the following: - -<pre> - ssh-keygen -i -f id_XXX.pub > my_public_key.pub -</pre> - - where the file id_XXX.pub is your public key file, - normally located under ~/.ssh/ or ~/.ssh2/. - Send to <a href="mailto:miguel@ximian.com">miguel</a> the - my_public_key.pub file. - - The *exact* format for this file must be: - -<pre> - ssh-rsa XXXXX.... -</pre> - - You will need CVS and SSH. Windows users can get both by - installing Cygwin (<a - href="http://www.cygwin.com">http://www.cygwin.com</a>) - - Unix users will probably have those tools installed already. - -** Checking out the sources - - To check out the sources for the first time from the - repository, use this command: - -<pre> - export CVS_RSH=ssh - export CVSROOT=username@mono-cvs.ximian.com:/cvs/public - cvs -z3 co mcs mono -</pre> - -** Updating your sources - - Every day people will be making changes, to get your latest - updated sources, use: - -<pre> - cvs -z3 update -Pd mcs mono -</pre> - - Note: The '-z3' enables compression for the whole cvs action. - The '-Pd' makes the update operation (P)rune directories that - have been deleted and get new (d)irectories added to the - repository. - -** Making patches - - Usually you will want to make a patch to contribute, and let - other people review it before committing it. To obtain such a - "patch", you type: - -<pre> - cd directory-you-want-to-diff - cvs -z3 diff -u > file.diff - mail mono-list@ximian.com < file.diff -</pre> - -** Committing your work - - Once you get approval to commit to the CVS, or if you are - committing code that you are the maintainer of, you will want - to commit your code to CVS. - - To do this, you have to "add" any new files that you created: - -<pre> - cvs add new-file.cs -</pre> - - And then commit your changes to the repository: - -<pre> - cvs commit file-1.cs file-2.cs -</pre> - -* Using SVN - - This is a small tutorial for using SVN (subversion). - For a more complete tutorial on subversion, look at - <a href="http://svnbook.red-bean.com/">the svn book</a> - or <a href="http://subversion.tigris.org">the svn homepage</a> - -** Generating a key - - Follow the cvs instructions above. - -** Checking out the sources - - To checkout the sources for the first time use the command: - - Note: You should be running 0.35.1 (latest) of svn before attempting - anything here. - -<pre> - svn co svn+ssh://mono-cvs.ximian.com/svn/monodevelop/trunk/MonoDevelop -</pre> - - If you have a different username on mono-cvs and the local computer - you can do the following: - -<pre> - svn co svn+ssh://username@mono-cvs.ximian.com/svn/monodevelop/trunk/MonoDevelop -</pre> - - before checking out. - -** Updating your sources - - You can update your repository to the latest copy of MonoDevelop by - running the following command: - -<pre> - svn up -</pre> - - from inside your repository. - -** Committing your work - - Before you commit anything, you should first update to the latest - sources by following the updating directions. After you are up to date - you need to run a: - -<pre> - svn add filename -</pre> - - for every file that you have created. You can get a list of these files - by running: - -<pre> - svn status -</pre> - - After all the files are added, run: - -<pre> - svn commit -</pre> - - to commit your changes. - -** For more information - - Look at the MonoDevelop website (coming soon) - -* Keeping track of changes. - - We provide two e-mail based mechanisms to keep track of - changes to the code base: - - <ul> - * <a href="mailto:mono-patches-request@ximian.com"> - mono-patches@ximian.com</a>: This mailing list receives - in patch form all the changes that are being made to the - CVS. - - * <a href="mailto:mono-cvs-list-request@ximian.com"> - mono-cvs-list@ximian.com</a>: This mailing list only - receives the CVS commit logs with a list of files - modified. - </ul> - - We hope to offer LXR and Bonsai in the future as well. - - To subscribe, send an email message to - mono-cvs-list-request@ximian.com and in the body of the - message put `subscribe'. - - This will send you an email message every time a change is - made to the CVS repository, together with the information that - the author of the changes submitted. - - You might also want to track the live changes, subscribe to - the <a - href="mailto:mono-patches-request@ximian.com">mono-patches@ximian.com</a> - to receive the patches as they are checked into CVS. diff --git a/doc/class-library b/doc/class-library deleted file mode 100644 index 95b56cacf9d..00000000000 --- a/doc/class-library +++ /dev/null @@ -1,190 +0,0 @@ -* The Class Library - - The Class Library should be compatible with Microsoft's .NET - implementation. - - Please see the <a href="class-status.html">Class Status</a> - page for a status of who is working on which classes. - - We will write as much code as possible in C#. We may need to - interface with code written in C to gain access to the - functionality of libraries like libart, Gtk+, and libc. - -** Contributing - - We welcome contributions to the the Class Library. To get - started, check the status page for information about which - APIs are being worked on, and how to get in touch with - individual maintainers. - - If you want to work on a class, first check the <a - href="download.html">Classes Distribution</a> to see if it is - not implemented yet, if not, check the <a - href="class-status.html">Class Status</a> to see if someone is - already working on it, and maybe contact them. - - If nobody is working on it, mail <a - href="mailto:mono-list@ximian.com">mono-list@ximian.com</a> - with the class you want to implement and CC <a - href="mailto:miguel@ximian.com">miguel@ximian.com</a>. - - You can also track live the activities of the Mono CVS module - by subscribing to the <a - href="http://lists.ximian.com/mailman/listinfo/mono-cvs-list">mono-cvs-list</a> - - -** Missing features - - Our class libraries miss some features, for example, most classes - do not implement the serialization bits at all, it would be a good - contribution to add this to each class. - - This is a simple task, but it needs to be done in a compatible way - with the Microsoft.NET classes: using the same arguments to serialize - and reincarnate data. - -** Layout - - The Class Library resides in the `mcs' module in the directoy - `class'. - - Each directory in the directory represents the assembly where - the code belongs to, and inside each directory we divide the - code based on the namespace they implement. - - There are two cases when we should consider portability: when - we are dealing with a couple of classes only that differ from - system to system (Consider System.Net and System.IO for Win32 - and Unix). In those cases we will just place the files for - example on <t>corlib/System/System.IO/Unix-Console.cs</t> and - <t>corlib/System/System.IO/Win32-Console.cs</t>. - - For classes that might differ more (for example, the - implementation of Windows.Forms), we might have different - directories altogether: <t>System.Windows.Forms/Win32</t>, - <t>System.Windows.Forms/Gtk+</t> and - <t>System.Windows.Forms/Cocoa</t>. - -** Using existing components from GNOME. - - Our current plan is to implement the GUI tools on top of - Gtk+. The only obstacle here is that applications from Windows - might expect to be able to pull the HWND property from the - widgets and use PInvoke to call Windows functions. - -** Class Library and Win32 dependencies. - - There are a few spots where the Win32 foundation is exposed to - the class library (for example, the HDC and HWND properties in - the GDI+). Casual inspection suggests that these can be - safely mapped to Gdk's GC and GdkWindow pointers without - breaking anything. - - The only drawback is that support for PInvoke of Win32 code - won't be available. An alternate solution would be to use - portions of Wine, or even to use Wine as our toolkit. - -*** Initial GDI+ and WinForms implementation - - The initial implementation will use Gtk+ as the underlying - toolkit. Since GTK+ has already been ported to many windowing - systems other than X (including frame buffer, Win32, and BeOS) - its use should cover most applications for most users. - -*** Database access - - We will implement ADO.NET functionality by reusing <a - href="http://www.gnome-db.org">GNOME-DB</a>. This is an ideal - choice, since GNOME-DB was implemented precisely to provide an - ADO-like system for GNOME. - -*** Component Integration - - We will provide a new namespace to use GNOME specific features - as well as a namespace to host Bonobo interfaces and classes - in Mono. - -** Licensing - - The class library is being licensed under the terms of the - <a - href="http://www.opensource.org/licenses/mit-license.html">MIT - license.</a> This is the same license used by the X11 window - system. - -** Class Library testing - - We need to write regression tests that will verify - the correctness of the class library, compiler, and JIT - engine. - - Please write your regression tests using <a - href="http://nunit.sourceforge.net">NUnit</a> - -** Coding conventions - - Please follow the conventions on the ECMA specification (On - the Annex Partition) for your coding your libraries. - - Use 8 space tabs for writing your code (hopefully we can keep - this consistent). If you are modifying someone else's code, try - to keep the coding style similar. - - For a rationale on 8 space tabs, read Linus Torvald's Coding - Style guidelines in the Linux kernel source for a rationale. - -*** Missing implementation bits - - If you implement a class and you are missing implementation bits, - please put in the code the word "TODO" and a description of what - is missing to be implemented. - -*** Tagging buggy code - - If there is a bug in your implementation tag the problem by using - the word "FIXME" in the code, together with a description of the - problem. - - Do not use XXX or obscure descriptions, because otherwise people - will not be able to understand what you mean. - -*** Tagging Lame specs - - Sometimes the specification will be lame (consider Version.ToString (fieldCount) - where there is no way of knowing how many fields are available, making the API - not only stupid, but leading to unreliable code). - - In those cases, use the keyword "LAMESPEC". - -** Namespaces - - We are using a number of namespaces in the class libraries for - private classes when we need them, you are encouraged to use these: - -<pre> -Mono - .Languages // General Compiler classes - .CSharp // Specific C# parsing/tokenizing classes - .MonoBASIC // Specific VB.NET/MonoBASIC parsing/tokenizing classes - .Python // Specific Python parsing/tokenizing classes - .Runtime - .LateBind // General latebinding-support for MonoBASIC/Python - .MonoBASIC // Specific runtime classes for MonoBASIC programs - .Python // Specific runtime classes for Python programs - .Web - .UI - .Utils // Gaurav utility classes -</pre> - -** FAQ - -Frequently asked questions about the class library: - -Q: I am writing a new class that overrides one of the system classes, - and I am getting a 1595 warning from the compiler. Should we use a - different namespace? - -A: There is a quick solution to the problem, you can pass the command - line argument /nowarn:1595 and this will effectively let you use - your implementation of the code, while overriding the ones from the - system assemblies.
\ No newline at end of file diff --git a/doc/class-status.in b/doc/class-status.in deleted file mode 100644 index 9aa5311698d..00000000000 --- a/doc/class-status.in +++ /dev/null @@ -1,44 +0,0 @@ -* Status of the various pieces of the class library - - Classes in Mono are organized by the assembly that they belong to. - - Here is the status of the different assemblies: - <ul> - <li><a href="http://www.go-mono.com/class-status-corlib.html">corlib</a>: The core library. - <li><a href="http://www.go-mono.com/class-status-System.html">System</a>: Extra modules - <li><a href="http://www.go-mono.com/class-status-System.Xml.html">System.Xml</a>. - <li><a - href="http://www.go-mono.com/class-status-System.Data.html">System.Data</a>: - Database access functionality (also check the <a href="ado-net.html">Mono ADO.NET status</a> pages). - <li><a href="http://www.go-mono.com/class-status-System.Drawing.html">System.Drawing</a>. - <li><a - href="http://www.go-mono.com/class-status-System.Web.html">System.Web</a>: - ASP.NET classes, also check the <a href="asp-net.html">Mono ASP.NET status pages</a> - <li><a href="http://www.go-mono.com/class-status-System.Web.Services.html">System.Web.Services</a>. - <li><a - href="http://www.go-mono.com/class-status-Microsoft.VisualBasic.html">Microsoft.VisualBasic</a>: - Support runtime for Visual Basic applications - <li><a - href="http://www.go-mono.com/class-status-System.Windows.Forms.html">Windows.Forms</a>: - there is also a <a - href="http://lists.ximian.com/mailman/listinfo/mono-winforms-list">mailing - list available</a> - <li><a - href="http://www.go-mono.com/class-status-System.Runtime.Serialization.Formatters.Soap.html">System.Runtime.Serialization.Formatters.Soap</a>. - <li><a - href="http://www.go-mono.com/class-status-System.Security.html">System.Security</a>: - Xml Signature Security classes, also check the <a href="crypto.html">Cryptography status pages</a> - - </ul> - -* List of not-implemented classes - - Pick from the list of assemblies in the menu on the left to - view the current status of that assembly. - - The tree shows items that are either missing or that have TODO - attributes associated with them. - You can use the checkboxes to show only missing or only TODO items. - - Clicking on a name will take you to the <a href="http://msdn.microsoft.com/">MSDN documentation</a> for that item. - CTRL-Clicking will take you to the <a href="http://cvs.hispalinux.es/cgi-bin/cvsweb/?cvsroot=Mono">mono CVS tree</a>. diff --git a/doc/classlib-doc b/doc/classlib-doc deleted file mode 100644 index 872b92c4ec1..00000000000 --- a/doc/classlib-doc +++ /dev/null @@ -1,49 +0,0 @@ -* Class Library Documentation - -** Summary - - While using inline XML tags to document classes is certainly - convenient, properly verbose documentation quickly overwhelms - the code, making the source quite difficult to read. Furthermore, - multilingual documentation makes for significant additional text. - - With these considerations in mind, Mono is using external XML files - for class documentation, rather than documenting the source - inline. The XML file format used is inspired by the XML format used - to document the ECMA APIs. - - Several tools exist for managing, verifying, generating, - and updating class library documentation. - - The documentation infrastructure is part of the `Monodoc' - module. Monodoc includes a graphical GUI browser and tools to - generate the initial stubbed XML document out of an assembly. - - Download `monodoc' to start producing documentation for your - application. - - For instructions, read the monodoc/README file. - -** Documentation Tools - -*** <a name="monodoc">MonoDoc</a> - - The MonoDoc system offers both a GUI client as well as a <a - href="http://www.go-mono.com:8080">Web-based interface</a> to - the documentation. - - The GUI edition uses <a - href="http://gtk-sharp.sf.net">Gtk#</a> and the Web edition - uses Mono's ASP.NET implementation. - - <img src="images/Screenshot-Monodoc.png"> - -** Get Involved - - Help us develop Mono's documentation tools! Subscribe to - <a href="http://lists.ximian.com/mailman/listinfo/mono-docs-list">mono-docs-list</a> - and wade right in. - - Monodoc today also supports a GUI-based collaborative editing - system. You can now edit the documentation from the browser - and upload your contributions directly to the Mono site. diff --git a/doc/compiling b/doc/compiling deleted file mode 100644 index 521945434f1..00000000000 --- a/doc/compiling +++ /dev/null @@ -1,235 +0,0 @@ -* Compiling Mono - - This document describes how to compile and install Mono from - its source code. If you are only interested in running Mono, - you might want to install Mono from packages, which have been - tested. - - The core of Mono is split in two components: - - <ul> - * C components (available in the mono package) - - * C# components (available in the mcs package). - </ul> - - Mono is also available in various forms: - - <dl> - <dt>Officially <a href="download.html">released</a> packages.</dt> - <dd> - <p>This is the format of choice for people to use, since these - have been tested and are known to build and work. - </dd> - <dt><a href="daily">Daily</a> packages.</dt> - <dd> - <p>This is a service offered for people who want to try out the - daily changes. Baked daily.</dd> - <dt>CVS source code.</dt> - <dd> - <p>These are available to Mono <a href="ccvs.html">developers</a> and - also for enthusiasts through <a href="anoncvs.html">anonymous CVS</a>. - </dd> - <dt>CVS snapshots.</dt> - <dd> - <p>Available for curious developers which do not necessarily want to - install the CVS source. Baked daily. - </dd> - </dl> - -* Compiling the code - - There are a number of ways of compiling Mono - - <ul> - <li>From the <a href="#scripts">scripts</A> - - <LI><a href="#install">Manually</a> for the first time. - - <li>Manually, <a href="#upgrade">while upgrading</a> to CVS - </ul> - - (which is an easy way to get the latest CVS information) - -<a name="scripts"> -* Compiling with scripts - - These scripts should be used for installing from packages, specially - on Windows, where dependencies have not always been installed. - - There are scripts to help build mono for both Unix and Windows. Get - <a href="mono-build.sh">mono-build.sh</a> for Unix, or <a - href="mono-build-w32.sh">mono-build-w32.sh</a> for Windows. - These scripts automate the installation of GLIB and pkgconfig - (building from source on Unix, and using binary packages - provided by the GIMP for Windows project on Windows.) To use - the script, follow these simple steps: - - <ul> - * Save the script for your platform somewhere (e.g. /usr/local/bin) - * Make the script executable (i.e chmod 755 /usr/local/bin/mono-build.sh) - * Create a directory to hold the mono source, and the compiled binaries (e.g. mkdir ~/mono) - * Change to the new directory (i.e. cd ~/mono) - * run the script (i.e. /usr/local/bin/mono-build.sh) - </ul> - - The script requires wget on either platform, and building the - software requires make, gcc, automake, autoconf, and libtool. - You should install these packages from your distribution or - with the cygwin installer. You should also take care of setting - the right environment variables as the PKG_CONFIG_FLAGS, etc. - - The script will download required packages from - www.go-mono.com and do a cvs checkout of mono in the current - directory. <b>IMPORTANT!:</b> The cvs server chosen defaults to - anonymous cvs; - set your CVSROOT environment variable before running the script to - select a particular cvs server. - -<a name="install"> - -** Building the software manually - - You will need to obtain the Mono dependencies first: <a - href="http://www.gtk.org">glib 2.x</a> and - <a href="http://www.freedesktop.org/software/pkgconfig">pkg-config</a>. - -*** Building From Packages - - This applies to both the officially released packages, as well as the - daily tarball packages. - - <ul> - Unpack the Mono runtime distribution: - <pre class="shell"> - tar xzvf mono-X.XX.tar.gz - cd mono-X.XX</pre> - <p> - - Then configure, compile and install: - - <pre class="shell"> - ./configure --prefix=/usr/local - make - make install</pre> - - This will give you a runtime, C# compiler and runtime - libraries. - - If you want to recompile the runtime and the compiler, - follow these steps, first unpack the MCS package: - - <pre class="shell"> - tar xzvf mcs-X.XX.tar.gz</pre> - - Then use the following command to compile and install: - - <pre class="shell"> - ./configure --profile=atomic - make</pre> - - You can change /usr/local to something else if you want. - </ul> - -*** Building from CVS - - To upgrade your Mono installation from CVS, it is very - important that you update your Mono and MCS modules from CVS - at the same time. Failure to do so might result in a - problematic installation as the runtime and the class - libraries will be out of sync. - - Run the following commands to update your CVS tree (more - details in <a href="ccvs.html">Cvs and Mono</a> and the <A - href="anoncvs.html">AnonCVS and Mono</a> pages). - - <pre> - (cd mono; cvs update -dP .) - (cd mcs; cvs update -dP .) - </pre> - - Then you can run: - - <pre> - (cd mono; make fullbuild) - </pre> - - Now you can install the result: - - <pre> - (cd mono; make install) - </pre> - - Notice that following the above procedure does not require you - to manually install the software in the `mcs' directory, as - the relevant files will be copied by the `mono' makefiles. - -* Software resources and notes - - The required and additional software can be downloaded here: - - * Microsoft's .NET Framework SDK from - <a href="http://msdn.microsoft.com/downloads"> - msdn.microsoft.com/downloads</a>. - - * Cygwin and the GNU Make tools from - <a href="http://www.cygwin.com">www.cygwin.com</a>. - Some people observed problems with autoconf 2.52. Installing - autoconf 2.13 helped in those cases. - - * Precompiled GLIB 2.0 and pkg-config packages (and - their dependencies) by the <a href="http://www.gimp.org/~tml/gimp/win32//index.html">GIMP for Windows</a> project from - <a href="http://www.go-mono.com/archive/pkgconfig-0.11-20020310.zip">http://www.go-mono.com/archive/pkgconfig-0.11-20020310.zip</a><br> - <a href="http://www.go-mono.com/archive/glib-2.0.4-20020703.zip">http://www.go-mono.com/archive/glib-2.0.4-20020703.zip</a> <br> - <a href="http://www.go-mono.com/archive/glib-dev-2.0.4-20020703.zip">http://www.go-mono.com/archive/glib-dev-2.0.4-20020703.zip</a> <br> - <a href="http://www.go-mono.com/archive/libiconv-1.7.zip">http://www.go-mono.com/archive/libiconv-1.7.zip</a> <br> - <a href="http://www.go-mono.com/archive/libiconv-dev-1.7.zip">http://www.go-mono.com/archive/libiconv-dev-1.7-20020101.zip</a> <br> - <a href="http://www.go-mono.com/archive/libintl-0.10.40-20020101.zip">http://www.go-mono.com/archive/libintl-0.10.40-20020101.zip</a><br> - - - * Download the Mono source code from the - <a href="download.html">packaged versions</a> or - the <a href="http://www.go-mono.com/snapshots"> - nightly snapshots</a> or the <a href="anoncvs.html"> - Anonymous CVS</a>. The nightly snapshots are done every - night at 10pm EST (Boston Time). The nightly snapshots are - not guaranteed to build, but most of the time they should. - </ul> - - -*** Notes on compiling GLIB 2.0 and pkg-config from source: - - - <ul> - - * Some people observed problems with autoconf 2.52. Installing - autoconf 2.13 helped in those cases (don't forget to do a - `make maintainer-clean' after the update). - - * Download, compile and install <a href="http://www.freedesktop.org/software/pkgconfig">pkg-config</a> from source. - (I had to change line 674 of - <nobr><tt>pkg-config-0.8.0/glib-1.2.8/gstrfuncs.c</tt></nobr> from - <nobr><tt>extern char *strsignal (int sig);</tt></nobr> to - <nobr><tt>extern const char *strsignal (int sig);</tt></nobr>. - -<pre class="shell"> -tar xzvf pkg-config-0.8.0.tar.gz -cd pkg-config-0.8.0 -./configure --prefix=/usr -make -make install -</pre> - - * Download, compile and install <a href="ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.7.tar.gz">libiconv</a> from source.<br> - If you dont have MS Visual C/C++ 4.0 or 5.0 or 6.0 you can also try - the binary package available at <a - href="http://www.gimp.org/~tml/gimp/win32/libiconv-1.9.1.bin.woe32.zip"> - http://www.gimp.org/~tml/gimp/win32/libiconv-1.9.1.bin.woe32.zip</a> - - - * Download, compile and install the - <a href="ftp://ftp.gtk.org/pub/gtk/v2.0/glib-2.0.6.tar.gz"> - glib 2.0</a> from source. - - </ul> - diff --git a/doc/contact b/doc/contact deleted file mode 100644 index d9bbda12540..00000000000 --- a/doc/contact +++ /dev/null @@ -1,13 +0,0 @@ -* Contacting the Mono team. - - You can contact the general forum of discussion by sending - e-mail to <a href="mailto:mono-list@ximian.com">mono-list@ximian.com</a> - - You can contact me (Miguel de Icaza) by sending e-mail to <a - href="mailto:miguel@ximian.com">miguel@ximian.com</a>. My web - page is <a - href="http://primates.ximian.com/~miguel">http://primates.ximian.com/~miguel"</a> - - You can also <a - href="http://www.ximian.com/about_us/contact/">reach Ximian.</a> - diff --git a/doc/contributing b/doc/contributing deleted file mode 100644 index 0a80bcb91b1..00000000000 --- a/doc/contributing +++ /dev/null @@ -1,275 +0,0 @@ -* Contributing to the Mono project - - Mono has not been completed yet. It is a project under - active development and with a vibrant community. If you are - looking at ways of helping the project, you have come to the - right web page. - - There are three different philosophical approaches to helping - the Mono project, the selfish way, the altruistic or the - educational way. - - The <b>selfish</b> way is packed with adventure. You start by - building your own software, and start using the compiler and - tools that come with Mono. Eventually you will run into - missing features, or a bug in the software. Since we ship all - the source code for Mono, you can start tracking down the - problem. Depending on how much time you have to devote to the - problem you could: <a href="http://bugzilla.ximian.com">File a - bug report</a> (read <a href="#goodbugreport">this</a>); track - down the problem and provide a better - <a href="http://bugzilla.ximian.com">bug report</a>; fix the - bug and provide a patch (you can <a - href="mailto:mono-list@ximian.com">post it</a> to the <a - href="http://lists.ximian.com/mailman/listinfo/mono-list">mono - mailing list</a>; or discuss the solution on the mailing - list. Ideally you will also write a <a - href="testing.html">regression test</a> so the bug does not - get re-introduced in the future. - - The <b>altruistic</b> is probably the easiest because you get - to pick a piece of Mono that you might want to work on. You - can pick an unfinished <a href="class-library.html">class</a> (from our <a - href="class-status.html">class status page</a>); help with the - <a href="documentation.html">documentation effort</a> (<a - href="http://lists.ximian.com/mailman/listinfo/mono-docs-list">mailing - list for the documentation effort</a>); fix existing <a - href=http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FClass+Libraries&product=Mono%2FRuntime&component=CORLIB&component=misc&component=System&component=System.Web&component=System.XML&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">runtime - bugs</a>; <a - href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FMCS&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query">compiler - bugs</a>; help with the <a href="tools.html">tools</a> or - writing <a href="testing.html">tests</a> that help make Mono - more robust or help with the <a - href="http://www.go-mono.com/winforms.html">Winforms - effort</a>. - - The <b>educational</b> way is an interesting one, because you - pick a technology you are interested in, and work on that - technology to learn the technology. - - Those are just broad things that need to be worked on, but - something that would help tremendously would be to help with - small duties in the project that need to be addressed. - - You can see what needs to be done in the class libraries <a href="class-status.html">here</a> - -* IRC Channel - - Many developers get together on the <b>#mono</b> irc channel - on the <b>irc.gnome.org</b> server. - -** To start contributing - - As a programmer, you can contribute in three different scenarios to Mono: - - <ul> - * If you only have Linux/Unix. - * If you only have Windows. - - * If you have both Linux and Windows. - </ul> - - You might also want to check our <a href="#setup">common - setups</a> section that describes some common setups that people - use while working on Mono. - -*** Contributing to the class library, regression tests or the compiler - - This only requires Windows currently. - - To start developing classes or to contribute to the compiler, - you only need Windows and the .NET Framework 1.0 SDK. Please notice - that you do not need Visual Studio (although you can use it if - you want). The .NET Framework SDK requires some version of - Windows XP or Windows NT. If you are running Windows 98, 95 - or Me, you could use instead the <a - href="http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/829/msdncompositedoc.xml">.NET Redist package</a>, but it - lacks the documentation browser and the ildasm program (C#, VB, JScript and IL - assembler are included). - - You can get it <a href="http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/000/976/msdncompositedoc.xml&frame=true">here</a> - - If you are new to .NET, writing regression tests is a good way - of starting to contribute: it will help you get used to C# as - well as getting comfortable with the .NET APIs. - - This helps because at this point you might be the best - qualified person to fix a problem found by the regression - test, or you might have a new class to implement in the .NET - world that only has a test suite. - - To get started writing tests see the <a href="testing.html">Test Suite</a> - section. <a href="mono-contribution-howto.html">Here</a> there is a good All-In-One introduction to the art of writing tests. - - -*** Contributing to the runtime engine - - This only requires Linux, currently some tasks are easier if you - have access to Windows as well. - - Here are a few things you can do: - <ul> - * Port the runtime to other architectures. - * Port the runtime to other operating systems. - * Finish the IL code verifier in the runtime. - * Hack the JIT, improve the code generator, add new - pattern rules, improve the register allocator. - * Implement the debugging interfaaces - </ul> - -** Bug reporting - - If you find bugs in Mono, please make sure you enter a bug - report so we can keep track of problems in Mono. - - To enter bug reports go to <a href="http://bugzilla.ximian.com"> - http://bugzilla.ximian.com</a> and enter bug reports against - your favorite component (Mono, Runtime, C# compiler). - - You can review the list of current bugs by going <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FClass+Libraries&product=Mono%2FMCS&product=Mono%2FRuntime&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&order=%27Importance%27&form_name=query">here</a> - - Check our <a href="bugs.html">Bugs</a> that contains links to - easily add a bug report, or to query the existing bugs. - -<a name="goodbugreport"/> -** How to make good bug reports - - A mail from Paolo to mono-devel-list contained this check list: - <ol> - * Submit a test case, the smaller it is, the better - - * Use <a href="http://bugzilla.ximian.com"> - http://bugzilla.ximian.com</a> to report the bug. - - <p>In <b>addition</b> to bugzilla, posting to the list is - fine if the bug merits larger exposure or design - discussions to solve; posting to the list twice or more - is just a way to annoy people and make them waste time, - specially when you start a new thread about it. - - * If the test involves libraries or assemblies that are - not part of mono, add info about where to download all - the dependencies, and how to compile/install them. - - * If compiling the test case requires more than: - <pre> mcs test.cs </pre> - provide the <b>full command line</b> you used to compile - the test. - - * If running the test requires more than: - <pre> mono test.exe </pre> - provide the <b>full command line</b> needed to replicate - the bug. - - * Provide info about the version of the software you're - using (both mono and the operating system or relevant - libraries). - - * Provide the output you expect the test case to produce. - - * Provide the actual output <b>you</b> get from the test case. - </ol> - - A good bug report complies with at least 6 items from the list. - If your bug report complies with 3 or less items, it is very - poor and it means it will take much more time to fix (when it's - not ignored). - -** Small tasks - - A few smaller tasks are here, dropped in no particular order: - <ul> - * <b>Mono/doc and web site:</b> They need to be - packaged up in the official `distribution' - - * Adding serialization support to all the classes. - - We have many classes, but we have not implemented in - many cases the serialization and re-incarnation support in - them (this is pretty straight forward code, and simple, - but there is a lot to be done here). - </ul> - -* Emacs support - - Brad Merryl's C# mode for Emacs is available: <a - href="http://www.cybercom.net/~zbrad/DotNet/Emacs/">http://www.cybercom.net/~zbrad/DotNet/Emacs/</a> - -* Books on C# and DotNet. - - <ul> - * Dotnet Books (<a href="http://www.dotnetbooks.com">http://www.dotnetbooks.com</a>) - - * Dotnet Resources (<a href="http://www.dotnetexperts.com/resources/"> - http://www.dotnetexperts.com/resources</a>) - - * O'Reilly C# Essentials (<a href="http://www.oreilly.com/catalog/csharpess/"> - http://www.oreally.com/catalog/csharpess</a>) - - * O'Really .NET Essentials (<a href="http://www.oreilly.com/catalog/dotnetfrmess/"> - http://www.oreally.com/catalog/dotnetfrmess</a>) - </ul> - -<a name="setup"> -* Common Setups - - People running both Linux and Windows while contributing to - Mono use a number of tricks to increase their productivity. - - Scenarios: - - <ul> - * <b>Linux host and Windows host</b> - - The Windows file system is shared (right click on - your hard drive icon, and select sharing, allow this - to be shared). - - The Windows machine has the required build tools - (cygwin, and the .NET framework). On the Windows - machine, you want to setup the ssh server (run the - ssh-host-config program to configure your ssh) and - run it (from a cygwin terminal, type: /usr/sbin/sshd). - - From the Linux side, you want to mount the Windows - file system, using something like this: - -<tt><pre> - mount -t smbfs -o uid=miguel,username="Miguel de Icaza" "//quack/c$" /mnt -</pre></tt> - - In the above example, my Linux user name is - `miguel', and this will allow this user to have - read/write access to the share. - - The host name is `quack', and the name of the share - is `c$' (that is the C: partition). - - The file system is accessible on /mnt. - - You can perform your cvs update and cvs commits from - the /mnt directory, and run Emacs or your favorite - Linux text editor on the Unix side in this way. - - Then from another terminal, you can ssh into your - Windows box using ssh, like this: ssh "Miguel de Icaza@quack" - </ul> - -* Special Note - - If you have looked at Microsoft's implementation of .NET or - their shared source code, you may not be able to contribute - to Mono. Details will follow when we know more about this. - - In general be careful when you are implementing free software - and you have access to proprietary code. We need to make sure - that we are not using someone else's copyrighted code - accidentally. - - Please do not use the <b>ildasm</b> program to disassemble - proprietary code when you are planning to reimplement a class - for Mono. If you have done this, we might not be able to use - your code. - - Please stick to published documentation for implementing any - classes. diff --git a/doc/crypto b/doc/crypto deleted file mode 100644 index aca4750470d..00000000000 --- a/doc/crypto +++ /dev/null @@ -1,380 +0,0 @@ -* Cryptography - - In the .NET framework cryptography can be found under a number of - namespaces in several assemblies. - -** Assembly: corlib - -*** Namespace: <b>System.Security.Cryptography</b> - - Thanks to the work of many people this namespace is almost complete. - -**** Status - <ul> - * All classes are present. - - * Most classes have their unit tests. Some tests like <code> - SymmetricAlgorithmTest</code> are generated by external - tools. - </ul> - -**** TODO - <ul> - * Keypair persistance for RSA and DSA. This persistance must - somehow be linked with X509 certificate stores (in planning). - - * <code>PasswordDeriveBytes.CryptDeriveKey</code> is included - in MS BCL to provide compatibility with existing Windows - applications. The main problem is that the key derivation - algorithm can be different for every CSP (Crypto Service - Provider). However for compatibility we should provide an - implementation compatible with the MS CSP (most likely used). - </ul> - -**** Notes - <ul> - * All cryptographic algorithms are entirely managed, including - classes named <code>*CryptoServiceProvider</code>, with the - exception of <code>RNGCryptoServiceProvider</code> for which - parts of the implementation resides in the runtime. - - * There is a bug in the <code>PKCS1MaskGenerationMethod</code> - class (in both framework 1.0 and 1.1). This means our - implementation isn't compatible with MS (but is compatible with - PKCS#1 v.2.1). However we get OAEP padding for every platform! - - * Look at assembly Mono.Security.Win32 if you require more - compatiblity with the Microsoft implementation (like accessing - a particuliar keypair container inside a specific CSP). - </ul> - - -*** Namespace: <b>System.Security.Cryptography.X509Certificates</b> - -**** Status - <ul> - * X.509 certificates are parsed using 100% managed code - (using the Mono.Security.ASN1 class). - - * Software Publisher Certificates (SPC) used by Authenticode - (tm) to sign assemblies are supported and <b>minimally</b> - validated. - - * Unit tests are generated from a set of existing certificates - (about a dozen) each having different properties. Another - set of certificates (more than 700) are used for a more - complete test (but isn't part of the standard test suite for - size and time consideration, i.e. a 7.5Mb C# source file). - </ul> - -**** Notes - <ul> - * Except for their structure <b>there are no validation of the - certificates</b> done by this class (this is by design and - isn't a restriction of Mono!). This means that certificate - signatures and validity dates are <b>never</b> checked - (except when used for Authenticode, i.e. - <code>CreateFromSignedFile</code>). - - * The newer X509Certificate class included in Microsoft's Web - Service Enhancement (WSE) is a little better (as it includes - CryptoAPI's validation) when <code>IsCurrent</code> is called. - See assembly <b>Microsoft.Web.Services</b> for more details. - - * The class Mono.Security.X509.X509Certificate (in Mono.Security - assembly) is becoming a much better alternative - and will - continue to evolve to support the security tools. - - * Microsoft implementation of <code>X509Certificate</code> is - done by using CryptoAPI (unmanaged code). Based on the - exceptions thrown, Authenticode(tm) support is done via COM. - </ul> - -<hr> -** Assembly: System.Security - -*** Namespace: <b>System.Security.Cryptography.Xml</b> - - This namespace implements the <a href="http://www.w3.org/TR/xmldsig-core/"> - XML Digital Signature</a> specification from - <a href="http://www.w3.org/">W3C</a>. - -**** Status - <ul> - * All classes are present but some Transforms are only stubbed. - - * We now have a fully managed C14N implementation. - - * Most classes have their unit tests. - </ul> - -**** TODO - <ul> - * Complete all Transform derived classes. - </ul> - -<hr> -** Assembly: Mono.Security - - <b>Rational: </b> - This assembly provides the missing pieces to .NET security. On Windows - CryptoAPI is often used to provide much needed functionalities (like - some cryptographic algorithms, code signing, X.509 certificates). Mono, - for platform independance, implements these functionalities in 100% - managed code. - -*** Namespace: Mono.Security - <ul> - * Structures (ASN1, PKCS7) and primitives (PKCS1). - </ul> -*** Namespace: Mono.Security.Authenticode - <ul> - * Code signing and verification. - * Support for SPC (Software Publisher Certificate) files and - PVK (Private Key) files. - </ul> -*** Namespace: Mono.Security.Cryptography - <ul> - * Additional algorithms: MD2, MD4, ARCFOUR (required for SSL) - * Convertion helpers - </ul> -*** Namespace: Mono.Security.Protocol.* - <ul> - * Tls: An 100% managed TLS implementation from Carlos Guzman - Alvarez. - * Ntlm: NTLM authentication (used for HTTP and SQL Server). - </ul> -*** Namespace: Mono.Security.X509 - <ul> - * X.509 structures (certificate, CRL...) building and decoding. - * PKCS#12 decoding. - </ul> -*** Namespace: Mono.Security.X509.Extensions - <ul> - * X.509 extensions (from public X.509 to private PKIX, Netsapce, - Microsoft, Entrust...). - </ul> - -**** Status - <ul> - * A big part of this assembly is also included inside Mono's - corlib. The classes are duplicated in this assembly so the - functionalities can be used without a dependency on Mono's - corlib (which depends on Mono's runtime). - - * Unit test coverage isn't (yet) complete. - </ul> - -<hr> -** Assembly: Mono.Security.Win32 - - <b>Rational: </b> - This assembly goal is to provide maximum compatibility with CryptoAPI - to application running with Mono's runtime on the Windows operating - system. - - <b>This assembly should NEVER be used directly by any application</b> - (e.g. referecing the assembly from a project). - The classes should only be used by modifying the <code>machine.config - </code> configuration file (and then only if this increased - compatibility is required by an application). - - See the file <code><a href="http://cvs.hispalinux.es/cgi-bin/cvsweb/~checkout~/mcs/class/Mono.Security.Win32/README?rev=1.1&content-type=text/plain&cvsroot=mono">/mcs/class/Mono.Security.Win32/README</a></code> - for complete instructions. - -*** Namespace: Mono.Security.Cryptography - -**** Status - <ul> - * A RNGCryptoServiceProvider built on top of CryptoAPI. This - allows Windows users to get around the limitation of the - runtime RNG (which requires <code>/dev/[u]random/</code>). - - * Wrapper classes for unmanaged versions of hash algorithms: - MD2, MD4, MD5 and SHA1 are supported. <b>note</b>: some - algorithms shouldn't be used in new design (MD4 is broken, - MD2 and MD5 aren't considered safe for some usage). They are - included to preserve interoperability with older applications - (e.g. some old, but still valid, X.509 certificates use MD2, - MD4 is required for NTLM authentication ...). - </ul> - -**** TODO - <ul> - * Wrapper classes for unmanaged versions of symmetric - encryption algorithms (like DES, TripleDES, RC2 and others - present in default CSP). - - * Wrapper classes for unmanaged versions of asymmetric - algorithms (like DSA and RSA) which persist their keypair - into the specified CSP. - </ul> - -**** Ideas - <ul> - * Similar assemblies (e.g. <code>Mono.Security.XXX</code>) - could be created for <a href="http://www.openssl.org">OpenSSL</a>, - <a href="http://www.mozilla.org/projects/security/pki/nss/">NSS</a>, - <a href="http://www.eskimo.com/~weidai/cryptlib.html">crypto++</a>, - <a href="http://www.cryptlib.orion.co.nz/">cryptlib</a> ... for - improved performance and/or HSM (Hardware Security Module) support - under Linux and/or Windows. - </ul> -<hr> -** Assembly: Microsoft.Web.Services - - Microsoft Web Service Enhancement (WSE), known as Web Service - Development Kit (WSDK) in it's beta days, is an add-on the .NET - framework that implements WS-Security (and other WS-* specifications). - It also includes improved support for XML Signature (replacing and/or - extending <code>System.Security.Cryptography.Xml</code>) and X.509 - certificates classes. - - Note: WSE is distributed as an add-on because some specifications, - like WS-Security, aren't yet completed by - <a href="http://www.oasis-open.org/committees/wss/">OASIS</a> or - other committees. - -*** Namespace: Microsoft.Web.Services.Security - -**** Status - <ul> - * Most WSE 1.0 classes are implemented. - </ul> - -**** TODO - <ul> - * Some classes from System.Security assembly need to be - duplicated (and somewhat fixed) in WSE for XMLDSIG. - - * There are still missing classes and <b>many</b> missing - unit tests. - </ul> - - -*** Namespace: Microsoft.Web.Services.Timestamp - -**** Status - <ul> - * This seems complete for WSE 1.0 but some new classes were - introduced in WSE 2.0. - </ul> - -*** Namespace: Microsoft.Web.Services.Security.X509 - -**** Status - <ul> - * X509Certificate support is complete for both WSE 1.0 and 2.0. - </ul> - -**** TODO - <ul> - * We need to define certificate stores (for both users and - machines). These sames stores must be linked with asymmetric - keypairs. This could also be used to store the SPC roots. - </ul> - -*** Notes - <ul> - * Microsoft has <a href="http://microsoft.com/downloads/details.aspx?FamilyId=21FB9B9A-C5F6-4C95-87B7-FC7AB49B3EDD&displaylang=en">released</a> - a technical preview of WSE 2. <b>Note that WSDK (the technical - preview of WSE) had A LOT of changes before it's initial - release!</b> - </ul> - -<hr> -** Tools - - There are many tools in the .NET framework that indirectly interacts - with some cryptographic classes. Mono will eventually need these tools. - Unless noted the tools should work on any CLR (tested with both Mono - and Microsoft). - -**** Status - - The following tools are complete (or mostly complete): - <ul> - * <code>secutil</code> is a tool to extract certificates and - strongnames from assemblies in a format that can be easily - re-used in source code (C# or VB.NET syntax). - - * <code>cert2spc</code> is a tool to transform multiple X.509 - certificates and CRLs into a Software Publisher Certificate - (SPC) file - which is a long name for a simple PKCS#7 file. - - * <code>makecert</code> to create X.509 test certificates that - can be used (once transformed in SPC) to sign assemblies. It's - now possible to generate SSL certificates for web servers. - - * <code>sn</code> is a clone of the <code>sn</code> to manage - strongnames. Current version can create, convert, sign and - verify strongnames signatures. Some configuration options - are still missing. - - * <code>signcode</code> and <code>chktrust</code> for signing - and validating Authenticode(tm) signatures on assemblies (or - any PE file) are now working (signature and timestamps) but - some options aren't yet supported. - </ul> - - Somewhat usable, somewhat incomplete: - <ul> - * <code>certview</code> is a certificate viewer for - <code>System.Windows.Forms</code> (right now only working on - Windows), while <code>gcertview</code> is the same viewer - implemented for GTK# (working on both Windows and Linux). - - * <code>monosn</code> is a clone of the <code>sn</code> to manage - strongnames. This tools is part of the runtime (not the class - library) and as such is written in C and won't run without Mono. - </ul> - - -**** TODO - The following tools are still missing or largely incomplete: - <ul> - * Other tools like a, GUI-based, certificate manager... - </ul> - - Note that many of the tools requires the class library and/or the - runtime to be ready for them. E.g. StrongName and Authenticode signatures - tools are of limited use until supported by the runtime. - -<hr> -** References - - <ul> - * RSA Laboratories' <a href="http://www.rsasecurity.com/rsalabs/faq/index.html"> - Frequently Asked Questions</a> About Today's Cryptography, Version 4.1 - - * Public-Key Cryptography Standards (<a href="http://www.rsasecurity.com/rsalabs/pkcs/index.html"> - PKCS</a>) - - * National Institute of Standards and Technology - Federal - Information Processing Standards <a href="http://csrc.nist.gov/publications/fips/index.html"> - NIST FIPS</a> - </ul> - -<hr> -** How to Help - - <ul> - * Complete any of the TODO (and feel good about it ;-). - - * Analyse the current coverage of the unit tests on the - cryptographic classes and complete the unit tests. <b><code> - monocov</code> does a great job at this! Now we just need to - complete the missing unit tests.</b> - - * Optimization can also be done on most algorithms as crypto - is never fast enough. Some have been done using the - Community Edition of BoundChecker (a free VisualStudio - addon) - recommanded! Just be sure to test every optimization - (using the unit tests) carefully - it's so fast to break an - algorithm ;-). - - * Write some documentation on the cryptographic classes for - <b>monodoc</b>. - </ul> -<hr> -Last reviewed: February 2, 2004 (mono 0.30) diff --git a/doc/devel-faq b/doc/devel-faq deleted file mode 100644 index 9ca89285219..00000000000 --- a/doc/devel-faq +++ /dev/null @@ -1,190 +0,0 @@ -* Developer FAQ - -** New classes - -Q: Should we write classes which are not part of the .NET or ECMA specs? - -A: Yes. The ECMA and .NET specifications are far from complete, and - to produce a complete platform we will need a number of other - classes and components. - - Any new classes that are not part of .NET or ECMA should be - designed to be reusable on anyone's CLI implementation. So that - Windows developers can also use any new classes that we come up - with. - - We have a few existing <a href="ideas.html">Ideas on missing - classes</a> - -** Language Compatibility - -Q: What is the magic that allow multiple languages to co-exist? - -A: From Fergus Henderson: - -<i><blockquote> -There are different levels of interoperability. -The ECMA spec defines different categories of -CLS (Common Language Specification) conformance. -There are also some useful categories that don't -correspond to any of the levels defined in the ECMA spec. -In increasing degree of difficulty, your language implementation -can - - <ul> - * (a) just generate IL - - * (b) be a CLS "consumer", which means that it can read in - meta-data describing component interfaces, - and that it provides a way to declare variables of - CLS-complaint types and to call CLS-complaint methods. - - * (c) be a CLS "extender", which means that it can in addition - derive from CLS-compliant classes - and implement CLS-compliant interfaces - - * (d) be able to produce components with *any* CLS-compliant - component interface. - </ul> - -Supporting some of these may require extending your language. However, -you can get quite a lot of interoperability by just putting appropriate -functionality in your compiler, without extending your language. - -For some things, e.g. ASP.NET, your language implementation also needs to be -able to - - <ul> - * (e) consume CodeDom trees. CodeDom trees are an abstract - representation of programs in a form similar to a C# parse - tree, with embedded code snippets (unparsed strings). - Given a CodeDom tree, with the snippets in your language, - your language implementation needs to generate a (i) .NET - assembly and possibly also (ii) a source file in your language. - - * (f) produce CodeDom trees. For some applications, - your language implementation also needs to be able to - round-trip from CodeDom -> your language -> CodeDom. - </ul> - -and for some things it needs to - - <ul> - * (g) generate *verifiable* IL - </ul> - -So when you hear all the hype about how language XYZ is a -".NET language", make sure you ask which of these different -things are supported. - -[For the record, Mercury currently supports (a). We're working on -(b) and (g), and on parts of (c) and (e). We're never going to do (f), I very -strongly doubt we'll ever do (d), and for (c) we might only ever support -implementing interfaces, not deriving from classes.] - -</blockquote></i> - -** PInvoke - -Q: What are the two major initiatives to implement PInvoke? - -A: Fergus Henderson answers: - -<i><blockquote> -Many of the .NET APIs will need to be implemented using code that calls C/Unix -APIs, such as stat(). The standard way of interfacing with native code from -.NET code is to use "PInvoke". However, there is a difficulty: many of -these APIs are defined in terms of types such as C's `long' or `size_t' -or the Posix `struct stat' whose representation varies depending on the -platform (architecture/OS/C compiler). There's no *portable* way of -accessing those from .NET managed code. - -So, there are a couple of different approaches. -One possibility is to access such routines by writing a wrapper, e.g. in C, -that provides the same functionality without using types with a system-dependent -representation. The wrapper can then be directly accessed from portable -.NET code. The .NET code remains both source- and binary-portable; -the wrapper code is source-portable, but needs to be compiled -seperately for each target platform. The drawback of this approach is -that you have to write a lot of cumbersome wrapper code. - -Another possibility is to extend the .NET VM with support for an -additional custom attribute, e.g. "[PosixType]". The VM would then -represent types tagged with this attribute in the same way that the -underlying system represents those types. With this approach, no -wrapper code would be needed. A drawback of this approach is that it -pushes quite a bit of complexity into the VM; the VM would have to know -the native representation of all types annotated with this attribute. -Another drawback is that code using this extension might not work on -different VMs. - -There have also been some other suggestions, but those are the two that -I think are the best. -</blockquote></i> - -Q: What is the problem implementing PInvoke? - -A: Again, from Fergus Henderson: - -<i><blockquote> -There's no problem implementing PInvoke as specified in the ECMA -specs and/or MS documentation. It's just that PInvoke by itself -doesn't solve all of the problems; in particular it doesn't solve -the problem of C types whose representation is different on different -systems. -</blockquote></i> - -** CVS use - -Q: Why do we keep ChangeLogs and make the CVS commit messages be the - same? One could be generated from the other - -A: There are a number of reasons for keeping ChangeLog files as well as - CVS commit files: - - <ul> - * Offline programming: when people are traveling, CVS logs are - not available. - - * Slow CVS access: Many people work over modem lines (very - typical for contributors in Europe, Asia, Latin America) - using CVS is slow and might not be available to you (cvs - server down, no anoncvs server available). - - * ChangeLogs travel in a released tarball package, so it is - possible to study the rationale of changes even after a - project is long "released", or you only have the sources for - the code. - - * ChangeLog are not metadata for each file, they are live - files that you can browse in the package that is being - distributed. - </ul> - -Making the CVS commit message be the same as the ChangeLog has other -benefits: - - <ul> - * You can track down with `cvs log' what things were changed, - and match those to meaningful reports on the intentions of - the commit. - - * When reading the commits-list, you can get a glimpse of the - changes without having to diff out or cvs update your tree. - - * You can read off-line the changes that are being made - (asyncrouns operation). - </ul> - -This mechanism works very well for GNOME and other projects. - -Q: Should I use any of the special RCS keywords like $Id: devel-faq,v 1.1 2001/07/31 21:13:05 miguel Exp $, $Author: miguel $, - $Date: 2001/07/31 21:13:05 $, or $Revision: 1.1 $? - -A: Please avoid using those in the source code in the CVS. They - are not really useful, and they cause a lot of conflicts when - people have separate CVS trees. - - It was a nightmare with the Linux kernel when two people had their - private CVS trees and were submitting patches to the core. - diff --git a/doc/documentation b/doc/documentation deleted file mode 100644 index 10a838acbc3..00000000000 --- a/doc/documentation +++ /dev/null @@ -1,255 +0,0 @@ -* Documentation - - Although most of the concepts from Microsoft.NET can - be applied to the completed Mono platform, we do need to - have a complete set of free documentation written specifically - for Mono. - - The documentation license we have chosen is the GNU Free - Documentation License (FDL), the standard for most documents - in the free software world. - - We need documentation on a number of topics: - - <ul> - - * The development tools (compilers, assembler tools, - language reference, design time features): these - live in the `monodoc' CVS module. - - * Frequently Asked Question compilations. - - * HOWTO documents. - - * The Class Libraries (Both the original .NET class - libraries as well as the class libraries produced by - the project). - - * Tutorials on Mono and the specifics of running it - (The <a href="http://www.monohispano.org">Mono - Hispano</a> team has produced lots of <a - href="http://www.monohispano.org/tutoriales.php">tutorials - in spanish</a> - - * A guide to Mono as compared to the Microsoft.NET - Framework SDK - - </ul> - -* Class Library documentation - - We are moving to a new setup for documenting the class libraries, - and you can read about it <a href="classlib-doc.html">here</a>. - - There are two classes of documentation: free documentation for - existing .NET classes and documentation for the classes that - we have developed on top of .NET. - - There is a large body of documentation that came from the ECMA - standarization effort that has been checked into CVS. It does - not contain everything Mono and .NET have, so they need to be - updated and augmented. - -** Gtk# documentation - - We also have a large body of class libraries that are specific - to Mono, for example the documentation for Gtk#. - - We have checked in stub documentation for Gtk# into the CVS - repository (on gtk-sharp/doc) and we need volunteers to help - populate the documentation for it. Since Gtk# is a wrapper - for Gtk, plenty of documentation exists in the <a - href="http://developer.gnome.org/doc/API">Gnome developer - site</a>. - - To get started: - - You need to download Gtk# from the CVS repository. The module - name is `gtk-sharp'. You can obtain a copy from both the CVS - repository or the anonymous CVS repository. - - To pull your copy type: - -<pre> - cvs co gtk-sharp -</pre> - Documentation lives in gtk-sharp/doc/en. The "en" indicates the - English language, the first one we are targeting. We can later - do translations, but for now we are focusing on a single - language. - - In that directory you will find the documentation organized by - namespaces. One directory per namespace. In the directories - you will find one XML file per class that needs to be - documented. The mission is to fill in the data with useful - information. Feel free to grab liberally information from the - Gtk documentation from: - - <a href="http://developer.gnome.org/doc/API/">http://developer.gnome.org/doc/API/</a> - - Of course, the API does not apply directly. It only applies at - a foundational level, so you can not really just copy and - paste. Summaries, and remarks sections can probably be lifted - with little or no effort. - - Gtk# uses properties to represent get/set operations in the C - API, so you can also use some bits from there. - - Most of the documentation contains already place holders for - text, we use the internationally approved phrase for this - purpose, `To be added'. So the quest is to remove all of the - "To be added" strings with information with resembles as closely - as possible the toolkit reality. - -*** The pieces to be filled. - - Summaries are one or two line descriptions of the element - (class, struct, interface, method, field, event, delegate), and - its used to render summary pages. So it has to be short. - - The "remarks" section is used to describe in detail the element. - -**** Tags. - - As you document Gtk# you will have a number of tags that you can - use inside the summary and remarks sections, these are: - -<pre> -<para> </para> -</pre> - Used to separate paragraphs. - -<pre> -<paramref name="param_name"/> -</pre> - Used to reference a formal parameter to a function. - -<pre> -<see cref="T:SomeTypeName"/> -</pre> - Use this to reference a type, this will include an hyper - link to the page for type SomeTypeName. - - For example, to reference "System.Enum", do: - -<pre> - <see cref="T:System.Enum"/> -</pre> - -<pre> -<see cref="P:SomeTypeName.Property"/> -</pre> - Use this to reference a property, this will include an hyper - link to the page for the property `Property' of type `SomeTypeName'. - - For example, to reference the BaseType property in System.Type, do: - -<pre> - <see cref="P:System.Type.BaseType"/> -</pre> - -<pre> -<see cref="M:SomeTypeName.Method(type,type)"/> -</pre> - Use this to reference a method, this will include an hyper - link to the page for the method `Method' of type `SomeTypeName'. - - For example, to reference the ToString method in System.Object, do: - -<pre> - <see cref="M:System.Object.ToString()"/> -</pre> - -<pre> -<see langword="keyword"/> -</pre> - Use this to link to a keyword in the C# language, for - example to link to `true', do: - -<pre> - <see langword="true"/> -</pre> - -<pre> -<example> ... </example> -</pre> - Use example to insert an example. The example can - contain explanatory text and code. - -<pre> -<code lang="C#">.. </code> -</pre> - - Use this to provide a sample C# program, typically used - within the <example> tags. - - When providing examples, try to provide a full example, - we would like to be able to have a button to compile and - run samples embedded into the documentation, or pop up - an editor to let the user play with the sample. - - You can link to an example like this: - -<pre> - <code lang="C#" source="file.cs"> </code> -</pre> - -<pre> -<item> -</pre> - -<pre> -<list type="bullet"> </list> -</pre> - - Use this to create lists. Lists contains <item> - elements which have to contain <term> containers. - -<pre> -<list type="table"> </lits> - <listheader> - <term>YOUR FIRST COLUMN</term> - <description>YOUR DESCRIPTION</description> - </listheader> -</pre> - For two-column tables. Inside use: - -<pre> -<item> - <term>First</term> - <description>First descritpion</description> -</item> -<item> - <term>Second</term> - <description>Second descirption</description> -</item> -</pre> - -** Words of warning. - - A few words of warning and advice for class documentors: - - A well-documented API can ease hours of frustration; as Mono - matures, robust and complete class library documentation will - become increasingly important. As you write API documentation, - whether it is embedded in source files or in external Monodoc XML, - please keep the following in mind: - - Plagarism, even if it's unintentional, is a Bad Thing(TM). - Microsoft's .NET Framework Class Library documentation is an - excellent resource for understanding the behavior and properties of - a type, and a lot of hard work went in to creating this (copyrighted) - resource. Please don't copy from Microsoft's reference when - documenting a type. - - To avoid this, I (<a href="mailto:jbarn@httcb.net">jbarn@httcb.net</a>) - suggest that you read the complete Microsoft documentation for a type, - ponder it for a while, and write the Mono documentation in your own - words. While it's certainly okay to refer to the Microsoft - documentation to clarify your understanding of behavior or properties, - please don't open the Microsoft docs and refer to them for each member - you document. - - There's a lot of domain expertise among the class library contributors; - let's put the same personal stamp on the class library documentation - that we have on the class libraries themselves.
\ No newline at end of file diff --git a/doc/download b/doc/download deleted file mode 100644 index e8d9ebef84f..00000000000 --- a/doc/download +++ /dev/null @@ -1,1331 +0,0 @@ -* Software Availability - - The Virtual Execution System is available in package `mono'. - Currently this contains a metadata library and the - disassembler. Please refer to our <a - href="runtime.html">Runtime</a> description for more details - on this part of the project. - - The software is also available on the `Mono' channel in <a href="http://www.ximian.com/products/redcarpet/">Red Carpet</a>. - - Some useful links: <a - href="http://www.go-mono.org/mono-beginning.html">Resources/Beginning - section</a>, the <a - href="http://www.go-mono.org/faq.html">FAQ</a>. - - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.30.1</b><br> - <a href="archive/mono-0.30.1.html">Release notes</a><br> - Feb 13th, 2004 - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.30.1.tar.gz">Mono Class Libraries and C# Compiler 0.30.</a> - <li><a href="archive/mono-0.30.1.tar.gz">Mono Runtime 0.30</a> - <li><a href="archive/xsp-0.9.tar.gz">XSP web server 0.9</a> - <li><a href="archive/mod_mono-0.7.tar.gz">Apache Mono module 0.7</a> - <li><a href="archive/monodoc-0.10.tar.gz">MonoDoc 0.10</a> - <li><a href="archive/libgdiplus-0.1.tar.gz">libgdiplus 0.1</a> - </ul> - </td> - </tr> - <tr bgcolor="#bbbbbb"> - <td bgcolor="#999999"> - <img src="images/redhat-36.gif"><b>Red Hat 9.0/x86</b><br> - </td> - <td> - <a href="archive/0.30.1/redhat-9-i386">Packages</a> - </td> - </tr> - <tr bgcolor="#bbbbbb"> - <td bgcolor="#999999"> - <img src="images/redhat-36.gif"><b>Fedora Core 1/x86</b><br> - </td> - <td> - <a href="archive/0.30.1/fedora-1-i386">Packages</a> - </td> - </tr> - <tr bgcolor="#bbbbbb"> - <td bgcolor="#999999"> - <img src="images/suse-36.gif"><b>SUSE 9/x86</b><br> - </td> - <td> - <a href="archive/0.30.1/suse-90-i586/">Packages</a> - </td> - </tr> - <tr bgcolor="#bbbbbb"> - <td bgcolor="#999999"> - <img src="images/debian-36.gif"><b>Debian Packages</b><br> - </td> - <td> - <a href="http://pkg-mono.alioth.debian.org/">Packages (third party provider)</a> - </td> - </tr> - <tr> - <td bgcolor="#999999"> - <img src="images/windows-36.gif"><b>Windows installer</b> - </td> - <td> - No Windows Installer for 0.30.1 exist yet, you can download - version 0.30.0 for now: - - <a href="archive/0.30/windows/mono-0.30-win32-2.exe">Mono Setup</a> - <a href="archive/0.30/windows/mono-0.30-gtksharp-0.15-win32-1.exe">Gtk# Setup</a> - </td> - </tr> - </table> - </td> - </table> - - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.30</b><br> - <a href="archive/mono-0.30.html">Release notes</a><br> - Feb 2nd, 2004 - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.30.tar.gz">Mono Class Libraries and C# Compiler 0.30.</a> - <li><a href="archive/mono-0.30.tar.gz">Mono Runtime 0.30</a> - <li><a href="archive/xsp-0.9.tar.gz">XSP web server 0.9</a> - <li><a href="archive/mod_mono-0.7.tar.gz">Apache Mono module 0.7</a> - <li><a href="archive/monodoc-0.10.tar.gz">MonoDoc 0.10</a> - </ul> - </td> - </tr> - <tr bgcolor="#bbbbbb"> - <td bgcolor="#999999"> - <img src="images/redhat-36.gif"><b>Red Hat 9.0/x86</b><br> - </td> - <td> - <a href="archive/0.30/redhat-9-i386">Packages</a> - </td> - </tr> - <tr bgcolor="#bbbbbb"> - <td bgcolor="#999999"> - <img src="images/redhat-36.gif"><b>Fedora Core 1/x86</b><br> - </td> - <td> - <a href="archive/0.30/fedora-1-i386">Packages</a> - </td> - </tr> - <tr bgcolor="#bbbbbb"> - <td bgcolor="#999999"> - <img src="images/suse-36.gif"><b>SUSE 9/x86</b><br> - </td> - <td> - <a href="archive/0.30/suse-90-i586/">Packages</a> - </td> - </tr> - <tr bgcolor="#bbbbbb"> - <td bgcolor="#999999"> - <img src="images/debian-36.gif"><b>Debian Packages</b><br> - </td> - <td> - <a href="http://pkg-mono.alioth.debian.org/">Packages (third party provider)</a> - </td> - </tr> - <tr> - <td bgcolor="#999999"> - <img src="images/windows-36.gif"><b>Windows installer</b> - </td> - <td> - <a href="archive/0.30/windows/mono-0.30-win32-2.exe">Mono Setup</a> - <a href="archive/0.30/windows/mono-0.30-gtksharp-0.15-win32-1.exe">Gtk# Setup</a> - </td> - </tr> - </table> - </td> - </table> - - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.29</b><br> - <a href="archive/mono-0.29.html">Release notes</a><br> - Dec 2nd, 2003 - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.29.tar.gz">Mono Class Libraries and C# Compiler.</a> - <li><a href="archive/mono-0.29.tar.gz">Mono Runtime</a> - <li><a href="archive/xsp-0.8.tar.gz">XSP web server (0.8)</a> - <li><a href="archive/mod_mono-0.6.tar.gz">Apache Mono module 0.6 (mod_mono)</a> - <li><a href="archive/monodoc-0.9.tar.gz">MonoDoc 0.9</a> - </ul> - </td> - </tr> - <tr bgcolor="#bbbbbb"> - <td bgcolor="#999999"> - <img src="images/redhat-36.gif"><b>Red Hat 8.0, Red Hat 9.0/x86</b><br> - <img src="images/mandrake-36.gif"><b>Mandrake 9.1/x86</b><br> - <img src="images/suse-36.gif"><b>SuSE 8.2</b><br> - </td> - <td> - Packages are available on <a - href="http://www.ximian.com/products/redcarpet/download.html">Red - Carpet's</a> Mono channel. - - </td> - </tr> - <tr> - <td bgcolor="#999999"> - <img src="images/windows-36.gif"><b>Windows installer</b> - </td> - <td> - <a href="archive/mono-0.29-win32-1.exe">mono-0.29-win32-1.exe</a> - </td> - </tr> - </table> - </td> - </table> - - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.28</b><br> - <a href="archive/mono-0.28.html">Release notes</a><br> - Oct 1st, 2003 - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.28.tar.gz">Mono Class Libraries and C# Compiler.</a> - <li><a href="archive/mono-0.28.tar.gz">Mono Runtime</a> - <li><a href="archive/xsp-0.6.tar.gz">XSP web server (0.6)</a> - <li><a href="archive/mod_mono-0.5.tar.gz">Apache Mono module (mod_mono)</a> - <li><a href="archive/monodoc-0.7.tar.gz">MonoDoc 0.7</a> - </ul> - </td> - </tr> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source RPMs</b><br> - (No RPMS for XSP). - </td> - <td> - <ul> - <li><a href="archive/redhat-90-i386/mono-0.28-1.ximian.6.1.src.rpm">mono-0.28-1.src.rpm (RH9)</a> - <li><a href="archive/redhat-90-i386/mono-0.28-1.ximian.6.1.src.rpm">mono-0.28-1.src.rpm (RH8)</a> - </ul> - </td> - </tr> - <tr> - <td></td> - </tr> - <tr> - <td bgcolor="#999999"> - <img src="images/redhat-36.gif"><b>Red Hat 9.0/x86</b> - <ul> - <li><a href="archive/redhat-90-i386/mono-0.28-1.ximian.6.1.i386.rpm">mono-0.28-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/mono-devel-0.28-1.ximian.6.1.i386.rpm">mono-devel-0.28-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/mono-debuginfo-0.28-1.ximian.6.1.i386.rpm">mono-debuginfo-0.28-1.i386.rpm</a> - <br> - <li><a href="archive/redhat-90-i386/mono-wine-20030318-1.ximian.6.4.i386.rpm">mono-wine-20030318-1.ximian.6.4.i386.rpm</a> - <li><a href="archive/redhat-90-i386/mono-wine-debuginfo-20030318-1.ximian.6.4.i386.rpm">mono-wine-debuginfo-20030318-1.ximian.6.4.i386.rpm</a> - </ul> - </td> - <td bgcolor="#999999"> - <img src="images/redhat-36.gif"><b>Red Hat 8.0/x86</b> - <ul> - <li><a href="archive/redhat-80-i386/mono-0.28-1.ximian.5.1.i386.rpm">mono-0.28-1.ximian.5.1.i386.rpm</a> - <li><a href="archive/redhat-80-i386/mono-devel-0.28-1.ximian.5.1.i386.rpm">mono-devel-0.28-1.ximian.5.1.i386.rpm</a> - <br> - <li><a href="archive/redhat-80-i386/mono-wine-20030318-1.ximian.5.3.i386.rpm">mono-wine-20030318-1.ximian.5.3.i386.rpm</a> - </ul> - </td> - </tr> - - <tr> - <td bgcolor="#999999"> - <img src="images/mandrake-36.gif"><b>Mandrake 9.1/x86</b> - <ul> - <li><a href="archive/mandrake-91-i586/mono-0.28-1.ximian.6.1.i586.rpm">mono-0.28-1.ximian.6.1.i586.rpm</a> - <li><a href="archive/mandrake-91-i586/mono-devel-0.28-1.ximian.6.1.i586.rpm">mono-devel-0.28-1.ximian.6.1.i586.rpm</a> - </ul> - </td> - <td bgcolor="#999999"> - <b>Linux s390</b> - <ul> - <li><a href="archive/s390/libgc-6.1-1.s390.rpm">libgc-6.1-1.s390.rpm</a> - <li><a href="archive/s390/libgc-devel-6.1-1.s390.rpm">libgc-devel-6.1-1.s390.rpm</a> - <li><a href="archive/s390/mono-0.28-1.s390.rpm">mono-0.28-1.s390.rpm</a> - <li><a href="archive/s390/mono-devel-0.28-1.s390.rpm">mono-devel-0.28-1.s390.rpm</a> - </ul> - </td> - </tr> - <tr> - <td bgcolor="#999999"> - <img src="images/suse-36.gif"><b>SuSE 8.2</b> - <ul> - <li><a href="archive/suse-82-i586/mono-0.28-1.ximian.7.1.i586.rpm">mono-0.28-1.ximian.7.1.i586.rpm</a> - <li><a href="archive/suse-82-i586/mono-devel-0.28-1.ximian.7.1.i586.rpm">mono-devel-0.28-1.ximian.7.1.i586.rpm</a> - </ul> - </td> - <td bgcolor="#999999"> - <img src="images/windows-36.gif"><b>Windows installer</b> - <ul> - <li><a href="archive/mono-0.28-win32-1.exe">mono-0.28-win32-1.exe</a> - </ul> - </td> - </tr> - </table> - </td> - </table> - - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.26</b><br> - <a href="archive/mono-0.26.html">Release notes</a><br> - Aug 14, 2003 - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.26.tar.gz">Mono Class Libraries and C# Compiler.</a> - <li><a href="archive/mono-0.26.tar.gz">Mono Runtime</a> - <li><a href="archive/xsp-0.5.tar.gz">XSP web server (0.5)</a> - <li><a href="archive/mod_mono-0.4.tar.gz">Apache Mono module (mod_mono)</a> - <li><a href="archive/monodoc-0.6.tar.gz">MonoDoc 0.6</a> - </ul> - </td> - </tr> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source RPMs</b><br> - (No RPMS for XSP). - </td> - <td> - <ul> - <li><a href="archive/redhat-90-i386/mono-0.26-1.ximian.6.1.src.rpm">mono-0.26-1.src.rpm (RH9)</a> - <li><a href="archive/redhat-90-i386/mono-0.26-1.ximian.6.1.src.rpm">mono-0.26-1.src.rpm (RH8)</a> - </ul> - </td> - </tr> - <tr> - <td></td> - </tr> - <tr> - <td bgcolor="#999999"> - <img src="images/redhat-36.gif"><b>Red Hat 9.0/x86</b> - <ul> - <li><a href="archive/redhat-90-i386/mono-0.26-1.ximian.6.1.i386.rpm">mono-0.26-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/mono-devel-0.26-1.ximian.6.1.i386.rpm">mono-devel-0.26-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/mono-debuginfo-0.26-1.ximian.6.1.i386.rpm">mono-debuginfo-0.26-1.i386.rpm</a> - <br> - <li><a href="archive/redhat-90-i386/libpixregion-0.1.0-1.ximian.6.1.i386.rpm">libpixregion-0.1.0-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/libpixregion-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">libpixregion-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/libic-0.1.0-1.ximian.6.1.i386.rpm">libic-0.1.0-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/libic-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">libic-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/xc-0.1.0-1.ximian.6.1.i386.rpm">xc-0.1.0-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/xc-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">xc-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/xr-0.1.0-1.ximian.6.1.i386.rpm">xr-0.1.0-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/xr-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">xr-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a> - <br> - <li><a href="archive/redhat-90-i386/monodoc-0.6-1.ximian.6.1.i386.rpm">monodoc-0.6-1.ximian.6.1.i386.rpm</a> (To be used only with CVS gtk-sharp) - <li><a href="archive/redhat-90-i386/monodoc-debuginfo-0.5-1.ximian.6.1.i386.rpm">monodoc-debuginfo-0.5-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/mono-wine-20030318-1.ximian.6.3.i386.rpm">mono-wine-20030318-1.ximian.6.3.i386.rpm</a> - <li><a href="archive/redhat-90-i386/mono-wine-debuginfo-20030318-1.ximian.6.3.i386.rpm">mono-wine-debuginfo-20030318-1.ximian.6.3.i386.rpm</a> - </ul> - </td> - <td bgcolor="#999999"> - <img src="images/redhat-36.gif"><b>Red Hat 8.0/x86</b> - <ul> - <li><a href="archive/redhat-80-i386/mono-0.26-2.ximian.5.1.i386.rpm">mono-0.26-2.ximian.5.1.i386.rpm</a> - <li><a href="archive/redhat-80-i386/mono-devel-0.26-2.ximian.5.1.i386.rpm">mono-devel-0.26-2.ximian.5.1.i386.rpm</a> - <br> - <li><a href="archive/redhat-80-i386/monodoc-0.5-1.ximian.5.1.i386.rpm">monodoc-0.5-1.ximian.5.1.i386.rpm</a> (To be used only with CVS gtk-sharp) - <li><a href="archive/redhat-80-i386/mono-wine-20030318-1.ximian.5.3.i386.rpm">mono-wine-20030318-1.ximian.5.3.i386.rpm</a> - </ul> - </td> - </tr> - - <tr> - <td bgcolor="#999999"> - <img src="images/debian-36.gif"><b>Debian</b> - <ul> - <li><a href="http://www.debianplanet.com/mono/">Debian Packages here.</a> - </ul> - </td> - <td bgcolor="#999999"> - <img src="images/mandrake-36.gif"><b>Mandrake 9.1/x86</b> - <ul> - <li><a href="archive/mandrake-91-i586/mono-0.26-1.ximian.6.1.i586.rpm">mono-0.26-1.ximian.6.1.i586.rpm</a> - <li><a href="archive/mandrake-91-i586/mono-devel-0.26-1.ximian.6.1.i586.rpm">mono-devel-0.26-1.ximian.6.1.i586.rpm</a> -<!-- <li><a href="archive/mandrake-91-i586/monodoc-0.5-1.ximian.6.1.i586.rpm">monodoc-0.5-1.ximian.6.1.i586.rpm</a> --> - </ul> - </td> - </tr> - <tr> - <td bgcolor="#999999"> - <img src="images/suse-36.gif"><b>SuSE 8.2</b> - <ul> - <li><a href="archive/suse-82-i586/mono-0.26-2.ximian.7.1.i586.rpm">mono-0.26-2.ximian.7.1.i586.rpm</a> - <li><a href="archive/suse-82-i586/mono-devel-0.26-2.ximian.7.1.i586.rpm">mono-devel-0.26-2.ximian.7.1.i586.rpm</a> - </ul> - </td> - <td bgcolor="#999999"> - <img src="images/windows-36.gif"><b>Windows installer</b> - <ul> - <li><a href="archive/mono-0.26-win32-2.exe">mono-0.26-win32-2.exe</a> - </ul> - </td> - </tr> - </table> - </td> - </table> - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.25</b><br> - <a href="archive/mono-0.25.html">Release notes</a><br> - Jun 26, 2003 - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.25.tar.gz">Mono Class Libraries and C# Compiler.</a> - <li><a href="archive/mono-0.25.tar.gz">Mono Runtime</a> - <li><a href="archive/xsp-0.4.tar.gz">XSP web server (0.4)</a> - <li><a href="archive/monodoc-0.5.tar.gz">MonoDoc 0.5</a> - <li><a href="archive/gtk-sharp-0.11.tar.gz">Gtk# 0.11</a> - </ul> - </td> - </tr> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source RPMs</b><br> - (No RPMS for XSP). - </td> - <td> - <ul> - <li><a href="archive/redhat-80-i386/mono-0.25-1.ximian.5.1.src.rpm">mono-0.25-1.src.rpm</a> - </ul> - </td> - </tr> - <tr> - <td></td> - </tr> - - <tr> - <td bgcolor="#999999"> - <img src="images/redhat-36.gif"><b>Red Hat 9.0/x86</b> - <ul> - <li><a href="archive/redhat-90-i386/mono-0.25-1.ximian.6.1.i386.rpm">mono-0.25-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/mono-devel-0.25-1.ximian.6.1.i386.rpm">mono-devel-0.25-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/mono-debuginfo-0.25-1.ximian.6.1.i386.rpm">mono-debuginfo-0.25-1.i386.rpm</a> - <br> - <li><a href="archive/redhat-90-i386/libpixregion-0.1.0-1.ximian.6.1.i386.rpm">libpixregion-0.1.0-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/libpixregion-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">libpixregion-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/libic-0.1.0-1.ximian.6.1.i386.rpm">libic-0.1.0-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/libic-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">libic-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/xc-0.1.0-1.ximian.6.1.i386.rpm">xc-0.1.0-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/xc-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">xc-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/xr-0.1.0-1.ximian.6.1.i386.rpm">xr-0.1.0-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/xr-debuginfo-0.1.0-1.ximian.6.1.i386.rpm">xr-debuginfo-0.1.0-1.ximian.6.1.i386.rpm</a> - <br> - <li><a href="archive/redhat-90-i386/gtk-sharp-0.10-1.ximian.6.1.i386.rpm">gtk-sharp-0.10-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/gtk-sharp-gapi-0.10-1.ximian.6.1.i386.rpm">gtk-sharp-gapi-0.10-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/gtk-sharp-debuginfo-0.10-1.ximian.6.1.i386.rpm">gtk-sharp-debuginfo-0.10-1.ximian.6.1.i386.rpm</a> - <br> - <li><a href="archive/redhat-90-i386/monodoc-0.5-1.ximian.6.1.i386.rpm">monodoc-0.5-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/monodoc-debuginfo-0.5-1.ximian.6.1.i386.rpm">monodoc-debuginfo-0.5-1.ximian.6.1.i386.rpm</a> - <li><a href="archive/mono-wine-20030318-1.ximian.6.2.i386.rpm">mono-wine-20030318-1.ximian.6.2.i386.rpm</a> - <li><a href="archive/mono-wine-debuginfo-20030318-1.ximian.6.2.i386.rpm">mono-wine-debuginfo-20030318-1.ximian.6.2.i386.rpm</a> - </ul> - </td> - <td bgcolor="#999999"> - <img src="images/redhat-36.gif"><b>Red Hat 8.0/x86</b> - <ul> - <li><a href="archive/redhat-80-i386/mono-0.25-1.ximian.5.1.i386.rpm">mono-0.25-1.ximian.5.1.i386.rpm</a> - <li><a href="archive/redhat-80-i386/mono-devel-0.25-1.ximian.5.1.i386.rpm">mono-devel-0.25-1.ximian.5.1.i386.rpm</a> - <br> - <li><a href="archive/redhat-80-i386/gtk-sharp-0.10-1.ximian.5.1.i386.rpm">gtk-sharp-0.10-1.ximian.5.1.i386.rpm</a> - <li><a href="archive/redhat-80-i386/gtk-sharp-gapi-0.10-1.ximian.5.1.i386.rpm">gtk-sharp-gapi-0.10-1.ximian.5.1.i386.rpm</a> - <li><a href="archive/redhat-80-i386/monodoc-0.5-1.ximian.5.1.i386.rpm">monodoc-0.5-1.ximian.5.1.i386.rpm</a> - <li><a href="archive/mono-wine-20030318-1.ximian.5.2.i386.rpm">mono-wine-20030318-1.ximian.5.2.i386.rpm</a> - </ul> - </td> - </tr> - - <tr> - <td bgcolor="#999999"> - <img src="images/debian-36.gif"><b>Debian</b> - <ul> - <li><a href="http://www.debianplanet.com/mono/">Debian Packages here.</a> - </ul> - </td> - <td bgcolor="#999999"> - <img src="images/windows-36.gif"><b>Windows Setup Wizard (XP, 2000, NT)</b> - <ul> - <li><a href="archive/mono-0.25-win32-1.exe">Setup program.</a> - </ul> - </td> - </tr> - - <tr> - <td bgcolor="#999999"> - <img src="images/redhat-36.gif"><b>Red Hat 7.3/x86</b> - <ul> - <li><a href="archive/redhat-73-i386/mono-0.25-1.ximian.4.1.i386.rpm">mono-0.25-1.ximian.4.1.i386.rpm</a> - <li><a href="archive/redhat-73-i386/mono-devel-0.25-1.ximian.4.1.i386.rpm">mono-devel-0.25-1.ximian.4.1.i386.rpm</a> - </ul> - </td> - <td bgcolor="#999999"> - <img src="images/mandrake-36.gif"><b>Mandrake 9.1/x86</b> - <ul> - <li><a href="archive/mandrake-91-i586/mono-0.25-1.ximian.6.1.i586.rpm">mono-0.25-1.ximian.6.1.i586.rpm</a> - <li><a href="archive/mandrake-91-i586/mono-devel-0.25-1.ximian.6.1.i586.rpm">mono-devel-0.25-1.ximian.6.1.i586.rpm</a> - <li><a href="archive/mandrake-91-i586/gtk-sharp-0.10-1.ximian.6.1.i586.rpm">gtk-sharp-0.10-1.ximian.6.1.i586.rpm</a> - <li><a href="archive/mandrake-91-i586/gtk-sharp-gapi-0.10-1.ximian.6.1.i586.rpm">gtk-sharp-gapi-0.10-1.ximian.6.1.i586.rpm</a> - <li><a href="archive/mandrake-91-i586/monodoc-0.5-1.ximian.6.1.i586.rpm">monodoc-0.5-1.ximian.6.1.i586.rpm</a> - </ul> - </td> - </tr> - - <!-- - We don't have SuSE packages right now - --> -<!-- <tr> --> -<!-- <td bgcolor="#999999"> --> -<!-- <img src="images/suse-36.gif"><b>SuSE 8.2/x86</b> --> -<!-- <ul> --> -<!-- <li><a href="archive/suse-80-i386/mono-0.25-1.i386.rpm">mono-0.25-1.i386.rpm</a> --> -<!-- <li><a href="archive/suse-80-i386/mono-devel-0.25-1.i386.rpm">mono-devel-0.25-1.i386.rpm</a> --> -<!-- </ul> --> -<!-- </td> --> -<!-- </tr> --> - </table> - </td> - </tr> - <tr> - <tr bgcolor="#CCCCC"> - <td> - <b>Regression Tests</b><br> - </td> - <td> - You can get binaries for the Mono Regression Test - Suite <a href="archive/mono-tests.tar.gz">here</a> - </td> - </tr> - </tr> - </tbody> - </table> - - -* Older Releases: - - We provide binaries for older releases until we have packages for the new release. - - - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.24</b><br> - <a href="archive/mono-0.24.html">Release notes</a><br> - May 6, 2003 - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.24.tar.gz">Mono Class Libraries and C# Compiler.</a> - <li><a href="archive/mono-0.24.tar.gz">Mono Runtime</a> - <li><a href="archive/gc6.1.tar.gz">Boehm GC 6.1</a> - <li><a href="archive/xsp-0.4.tar.gz">XSP web server (0.4)</a> - <li><a href="archive/monodoc-0.4.tar.gz">MonoDoc 0.4</a> - <li><a href="archive/gtk-sharp-0.9.tar.gz">Gtk# 0.9</a> - </ul> - </td> - </tr> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source RPMs</b><br> - (No RPMS for XSP). - </td> - <td> - <ul> - <li><a href="archive/libgc-6.1-1.src.rpm">libgc-6.1-1.src.rpm</a> - <li><a href="archive/mono-0.24-1.src.rpm">mono-0.24-1.src.rpm</a> - </ul> - </td> - </tr> - <tr> - <td></td> - </tr> - - <tr> - <td bgcolor="#999999"> - <img src="images/redhat-36.gif"><b>Red Hat 9.0/x86</b> - <ul> - <li><a href="archive/redhat-90-i386/libgc-6.1-1.i386.rpm">libgc-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/libgc-devel-6.1-1.i386.rpm">libgc-devel-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/mono-0.24-1.i386.rpm">mono-0.24-1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/mono-devel-0.24-1.i386.rpm">mono-devel-0.24-1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/mono-debuginfo-0.24-1.i386.rpm">mono-debuginfo-0.24-1.i386.rpm</a> - <br> - <li><a href="archive/redhat-90-i386/gtk-sharp-0.9-1.i386.rpm">gtk-sharp-0.9-1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/gtk-sharp-debuginfo-0.9-1.i386.rpm">gtk-sharp-debuginfo-0.9-1.i386.rpm</a> - <li><a href="archive/redhat-90-i386/monodoc-0.4-1.i386.rpm">monodoc-0.4-1.i386.rpm</a> - </ul> - </td> - <td bgcolor="#999999"> - <img src="images/redhat-36.gif"><b>Red Hat 8.0/x86</b> - <ul> - <li><a href="archive/redhat-80-i386/libgc-6.1-1.i386.rpm">libgc-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-80-i386/libgc-devel-6.1-1.i386.rpm">libgc-devel-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-80-i386/mono-0.24-2.i386.rpm">mono-0.24-2.i386.rpm</a> - <li><a href="archive/redhat-80-i386/mono-devel-0.24-2.i386.rpm">mono-devel-0.24-2.i386.rpm</a> - <br> - <li><a href="archive/redhat-80-i386/gtk-sharp-0.9-1.i386.rpm">gtk-sharp-0.9-1.i386.rpm</a> - <li><a href="archive/redhat-80-i386/monodoc-0.4-1.i386.rpm">monodoc-0.4-1.i386.rpm</a> - </ul> - </td> - </tr> - - <tr> - <td bgcolor="#999999"> - <img src="images/debian-36.gif"><b>Debian</b> - <ul> - <li><a href="http://www.debianplanet.com/mono/">Debian Packages here.</a> - </ul> - </td> - <td bgcolor="#999999"> - <img src="images/windows-36.gif"><b>Windows Setup Wizard (XP, 2000, NT)</b> - <ul> - <li><a href="archive/mono-0.24-win32-1.exe">Setup program.</a> - </ul> - </td> - </tr> - - <tr> - <td bgcolor="#999999"> - <img src="images/redhat-36.gif"><b>Red Hat 7.3/x86</b> - <ul> - <li><a href="archive/redhat-73-i386/libgc-6.1-1.i386.rpm">libgc-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-73-i386/libgc-devel-6.1-1.i386.rpm">libgc-devel-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-73-i386/mono-0.24-1.i386.rpm">mono-0.24-1.i386.rpm</a> - <li><a href="archive/redhat-73-i386/mono-devel-0.24-1.i386.rpm">mono-devel-0.24-1.i386.rpm</a> - </ul> - </td> - <td bgcolor="#999999"> - <img src="images/mandrake-36.gif"><b>Mandrake 8.2/x86</b> - <ul> - <li><a href="archive/mandrake-82-i386/libgc-6.1-1.i586.rpm">libgc-6.1-1.i586.rpm</a> - <li><a href="archive/mandrake-82-i386/libgc-devel-6.1-1.i586.rpm">libgc-devel-6.1-1.i586.rpm</a> - <li><a href="archive/mandrake-82-i386/mono-0.24-1.i586.rpm">mono-0.24-1.i586.rpm</a> - <li><a href="archive/mandrake-82-i386/mono-devel-0.24-1.i586.rpm">mono-devel-0.24-1.i586.rpm</a> - </ul> - </td> - </tr> - - <tr> - <td bgcolor="#999999"> - <img src="images/suse-36.gif"><b>SuSE 8.0/x86</b> - <ul> - <li><a href="archive/suse-80-i386/libgc-6.1-1.i386.rpm">libgc-6.1-1.i386.rpm</a> - <li><a href="archive/suse-80-i386/libgc-devel-6.1-1.i386.rpm">libgc-devel-6.1-1.i386.rpm</a> - <li><a href="archive/suse-80-i386/mono-0.24-1.i386.rpm">mono-0.24-1.i386.rpm</a> - <li><a href="archive/suse-80-i386/mono-devel-0.24-1.i386.rpm">mono-devel-0.24-1.i386.rpm</a> - </ul> - </td> - <td bgcolor="#999999"> - <b>Linux s/390</b> - <ul> - <li><a href="archive/s390/libgc-6.1-1.s390.rpm">libgc-6.1-1.s390.rpm</a> - <li><a href="archive/s390/libgc-devel-6.1-1.s390.rpm">libgc-devel-6.1-1.s390.rpm</a> - <li><a href="archive/s390/mono-0.24-1.s390.rpm">mono-0.24-1.s390.rpm</a> - <li><a href="archive/s390/mono-devel-0.24-1.s390.rpm">mono-devel-0.24-1.s390.rpm</a> - </ul> - </td> - </tr> - - </table> - </td> - </tr> - <tr> - <tr bgcolor="#CCCCC"> - <td> - <b>Regression Tests</b><br> - </td> - <td> - You can get binaries for the Mono Regression Test - Suite <a href="archive/mono-tests.tar.gz">here</a> - </td> - </tr> - </tr> - </tbody> - </table> - - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.23</b><br> - <a href="archive/mono-0.23">Release notes</a><br> - March 5, 2003 - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.23.tar.gz">Mono Class Libraries and C# Compiler.</a> - <li><a href="archive/mono-0.23.tar.gz">Mono Runtime</a> - <li><a href="archive/gc6.1.tar.gz">Boehm GC 6.1</a> - <li><a href="archive/xsp-0.3.tar.gz">XSP web server (0.3)</a> - <li><a href="archive/mono-debugger-0.2.2.tar.gz">Mono Debugger 0.2.2</a> - </ul> - </td> - </tr> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source RPMs</b><br> - (No RPMS for XSP). - </td> - <td> - <ul> - <li><a href="archive/libgc-6.1-1.src.rpm">libgc-6.1-1.src.rpm</a> - <li><a href="archive/mono-0.23-1.src.rpm">mono-0.23-1.src.rpm</a> - </ul> - </td> - </tr> - <tr> - <td></td> - </tr> - <tr> - <td bgcolor="#999999"> - <b>Red Hat 7.3/x86</b> - <ul> - <li><a href="archive/redhat-73-i386/libgc-6.1-1.i386.rpm">libgc-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-73-i386/libgc-devel-6.1-1.i386.rpm">libgc-devel-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-73-i386/mono-0.23-1.i386.rpm">mono-0.23-1.i386.rpm</a> - <li><a href="archive/redhat-73-i386/mono-devel-0.23-1.i386.rpm">mono-devel-0.23-1.i386.rpm</a> - </ul> - </td> - <td bgcolor="#999999"> - <b>Red Hat 7.2/x86</b> - <ul> - <li><a href="archive/redhat-72-i386/libgc-6.1-1.i386.rpm">libgc-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-72-i386/libgc-devel-6.1-1.i386.rpm">libgc-devel-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-72-i386/mono-0.23-1.i386.rpm">mono-0.23-1.i386.rpm</a> - <li><a href="archive/redhat-72-i386/mono-devel-0.23-1.i386.rpm">mono-devel-0.23-1.i386.rpm</a> - </ul> - </td> - </tr> - <tr> - <td bgcolor="#999999"> - <b>Red Hat 7.1/x86</b> - <ul> - <li><a href="archive/redhat-71-i386/libgc-6.1-1.i386.rpm">libgc-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-71-i386/libgc-devel-6.1-1.i386.rpm">libgc-devel-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-71-i386/mono-0.23-1.i386.rpm">mono-0.23-1.i386.rpm</a> - <li><a href="archive/redhat-71-i386/mono-devel-0.23-1.i386.rpm">mono-devel-0.23-1.i386.rpm</a> - </ul> - </td> - <td bgcolor="#999999"> - <b>Mandrake 8.2/x86</b> - <ul> - <li><a href="archive/mandrake-82-i386/libgc-6.1-1.i586.rpm">libgc-6.1-1.i586.rpm</a> - <li><a href="archive/mandrake-82-i386/libgc-devel-6.1-1.i586.rpm">libgc-devel-6.1-1.i586.rpm</a> - <li><a href="archive/mandrake-82-i386/mono-0.23-1.i586.rpm">mono-0.23-1.i586.rpm</a> - <li><a href="archive/mandrake-82-i386/mono-devel-0.23-1.i586.rpm">mono-devel-0.23-1.i586.rpm</a> - </ul> - </td> - </tr> - <tr> - <td bgcolor="#999999"> - <b>SuSE 8.0/x86</b> - <ul> - <li><a href="archive/suse-80-i386/libgc-6.1-1.i386.rpm">libgc-6.1-1.i386.rpm</a> - <li><a href="archive/suse-80-i386/libgc-devel-6.1-1.i386.rpm">libgc-devel-6.1-1.i386.rpm</a> - <li><a href="archive/suse-80-i386/mono-0.23-1.i386.rpm">mono-0.23-1.i386.rpm</a> - <li><a href="archive/suse-80-i386/mono-devel-0.23-1.i386.rpm">mono-devel-0.23-1.i386.rpm</a> - </ul> - </td> - <td bgcolor="#999999"> - <b>Red Hat 8.0/x86</b> - <ul> - <li><a href="archive/redhat-80-i386/libgc-6.1-1.i386.rpm">libgc-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-80-i386/libgc-devel-6.1-1.i386.rpm">libgc-devel-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-80-i386/mono-0.23-1.i386.rpm">mono-0.23-1.i386.rpm</a> - <li><a href="archive/redhat-80-i386/mono-devel-0.23-1.i386.rpm">mono-devel-0.23-1.i386.rpm</a> - </ul> - </td> - </tr> - <tr> - <td bgcolor="#999999"> - <b>Windows Setup Wizard (NT/2000/XP)</b> - <ul> - <li><a href="archive/mono-0.23-win32-2.exe">Mono-Setup</a> - </ul> - </td> - <td bgcolor="#999999"> - <b>Linux S/390</b> - <ul> - <li><a href="archive/s390/libgc-6.1-1.s390.rpm">libgc-6.1-1.s390.rpm</a> - <li><a href="archive/s390/libgc-devel-6.1-1.s390.rpm">libgc-devel-6.1-1.s390.rpm</a> - <li><a href="archive/s390/mono-0.23-1.s390.rpm">mono-0.23-1.s390.rpm</a> - <li><a href="archive/s390/mono-devel-0.23-1.s390.rpm">mono-devel-0.23-1.s390.rpm</a> - </ul> - </td> - </tr> - </table> - </td> - </tr> - <tr> - <tr bgcolor="#CCCCC"> - <td> - <b>Regression Tests</b><br> - </td> - <td> - You can get binaries for the Mono Regression Test - Suite <a href="archive/mono-tests.tar.gz">here</a> - </td> - </tr> - </tr> - </tbody> - </table> - - - - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.22</b><br> - <a href="archive/mono-0.22">Release notes</a><br> - March 5, 2003 - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.22.tar.gz">Mono Class Libraries and C# Compiler.</a> - <li><a href="archive/mono-0.22.tar.gz">Mono Runtime</a> - <li><a href="archive/gc6.1.tar.gz">Boehm GC 6.1</a> - <li><a href="archive/xsp-0.3.tar.gz">XSP web server (0.3)</a> - </ul> - </td> - </tr> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source RPMs</b><br> - (No RPMS for XSP). - </td> - <td> - <ul> - <li><a href="archive/libgc-6.1-1.src.rpm">libgc-6.1-1.src.rpm</a> - <li><a href="archive/mono-0.22-1.src.rpm">mono-0.22-1.src.rpm</a> - </ul> - </td> - </tr> - <tr> - <td></td> - </tr> - <tr> - <td bgcolor="#999999"> - <b>Windows Setup Wizard (NT/2000/XP)</b> - <ul> - <li><a href="archive/mono-0.22-win32-1.exe">Mono-Setup</a> - </ul> - </td> - </tr> - </table> - </td> - </tr> - <tr> - <tr bgcolor="#CCCCC"> - <td> - <b>Regression Tests</b><br> - </td> - <td> - You can get binaries for the Mono Regression Test - Suite <a href="archive/mono-tests.tar.gz">here</a> - </td> - </tr> - </tr> - </tbody> - </table> - - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.21</b><br> - <a href="archive/mono-0.21">Release notes</a><br> - Feb 27th, 2003 - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.21.tar.gz">Mono Class Libraries and C# Compiler.</a> - <li><a href="archive/mono-0.21.tar.gz">Mono Runtime</a> - <li><a href="archive/gc6.1.tar.gz">Boehm GC 6.1</a> - <li><a href="archive/xsp-0.3.tar.gz">XSP web server (0.3)</a> - </ul> - </td> - </tr> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source RPMs</b><br> - (No RPMS for XSP). - </td> - <td> - <ul> - <li><a href="archive/libgc-6.1-1.src.rpm">libgc-6.1-1.src.rpm</a> - <li><a href="archive/mono-0.21-1.src.rpm">mono-0.21-1.src.rpm</a> - </ul> - </td> - </tr> - <tr> - <td></td> - </tr> - <tr> - <td bgcolor="#999999"> - <b>Debian packages</b> - <ul> - <li><a href="http://www.atoker.com/mono/">Alp's web site</a> - </ul> - </td> - </tr> - </table> - </td> - </tr> - <tr> - <tr bgcolor="#CCCCC"> - <td> - <b>Regression Tests</b><br> - </td> - <td> - You can get binaries for the Mono Regression Test - Suite <a href="archive/mono-tests.tar.gz">here</a> - </td> - </tr> - </tr> - </tbody> - </table> - - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.20</b><br> - <a href="archive/mono-0.20">Release notes</a><br> - Feb 20th, 2003 - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.20.tar.gz">Mono Class Libraries and C# Compiler.</a> - <li><a href="archive/mono-0.20.tar.gz">Mono Runtime</a> - <li><a href="archive/gc6.1.tar.gz">Boehm GC 6.1</a> - <li><a href="archive/xsp-0.3.tar.gz">XSP web server (0.3)</a> - </ul> - </td> - </tr> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source RPMs</b><br> - (No RPMS for XSP). - </td> - <td> - <ul> - <li><a href="archive/libgc-6.1-1.src.rpm">libgc-6.1-1.src.rpm</a> - <li><a href="archive/redhat-73-i386/mono-0.20-1.src.rpm">mono-0.20-1.src.rpm</a> - </ul> - </td> - </tr> - <tr> - <td></td> - </tr> - <tr> - <td bgcolor="#999999"> - <b>Red Hat 8.0/x86</b> - <ul> - <li><a href="archive/redhat-80-i386/libgc-6.1-1.i386.rpm">libgc-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-80-i386/libgc-devel-6.1-1.i386.rpm">libgc-devel-6.1-1.i386.rpm</a> - <li><a href="archive/redhat-80-i386/mono-0.20-1.i386.rpm">mono-0.20-1.i386.rpm</a> - <li><a href="archive/redhat-80-i386/mono-devel-0.20-1.i386.rpm">mono-devel-0.20-1.i386.rpm</a> - </ul> - </td> - <td bgcolor="#999999"> - <b>Debian packages</b> - <ul> - <li><a href="http://www.atoker.com/mono/">Alp's web site</a> - </ul> - </td> - </tr> - <tr> - <td bgcolor="#999999"> - <b>Windows Setup Wizard (NT/2000/XP)</b> - <ul> - <li><a href="archive/mono-0.20-stable-win32-2.exe">Mono-Setup</a> - </ul> - </td> - </tr> - </table> - </td> - </tr> - <tr> - <tr bgcolor="#CCCCC"> - <td> - <b>Regression Tests</b><br> - </td> - <td> - You can get binaries for the Mono Regression Test - Suite <a href="archive/mono-tests.tar.gz">here</a> - </td> - </tr> - </tr> - </tbody> - </table> - - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.19</b><br> - <a href="archive/mono-0.19">Release notes</a><br> - Jan 20th, 2003 - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.19.tar.gz">Mono Class Libraries and C# Compiler.</a> - <li><a href="archive/mono-0.19.tar.gz">Mono Runtime</a> - </ul> - </td> - </tr> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source RPMs</b><br> - (No RPMS for XSP). - </td> - <td> - <ul> - <li><a href="archive/libgc-6.1-1.src.rpm">libgc-6.1-1.src.rpm</a> - <li><a href="archive/mono-0.19-1.src.rpm">mono-0.19-1.src.rpm</a> - </ul> - </td> - </tr> - <tr> - <td></td> - </tr> - </table> - </td> - </tr> - </tbody> - </table> - - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.18</b><br> - <a href="archive/mono-0.18">Release notes</a><br> - Jan 12th, 2003 - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.18.tar.gz">Mono Class Libraries and C# Compiler.</a> - <li><a href="archive/mono-0.18.tar.gz">Mono Runtime</a> - <li><a href="archive/gc6.1.tar.gz">Boehm GC 6.1</a> - <li><a href="archive/xsp-0.2.tar.gz">XSP web server</a> <b><font color="#dd0000">New!</font></b> - </ul> - </td> - </tr> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source RPMs</b><br> - (No RPMS for XSP). - </td> - <td> - <ul> - <li><a href="archive/libgc-6.1-1.src.rpm">libgc-6.1-1.src.rpm</a> - <li><a href="archive/mono-0.18-1.src.rpm">mono-0.18-1.src.rpm</a> - </ul> - </td> - </tr> - <tr> - <td></td> - </tr> - </table> - </td> - </tr> - </tbody> - </table> - - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.17</b><br> - <a href="archive/mono-0.17">Release notes</a><br> - Dec 9th, 2002. - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.17.tar.gz">Mono Class Libraries and C# Compiler.</a> - <li><a href="archive/mono-0.17.tar.gz">Mono Runtime</a> - <li><a href="archive/gc6.1.tar.gz">Boehm GC 6.1</a> - </ul> - </td> - </tr> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source RPMs</b><br> - (No RPMS for XSP). - </td> - <td> - <ul> - <li><a href="archive/libgc-6.1-1.src.rpm">libgc-6.1-1.src.rpm</a> - <li><a href="archive/mono-0.17-2.src.rpm">mono-0.17-2.src.rpm</a> - </ul> - </td> - </tr> - <tr> - <td bgcolor="#999999">
- <b>Windows Setup Wizard (NT/2000/XP)</b>
- <ul>
- <li><a href="archive/mono-0.17-stable.exe">Mono-Setup</a>
- </ul>
- </td>
- <td bgcolor="#999999">
- <b>Debian packages</b>
- <ul>
- <li><a href="http://www.atoker.com/mono/">Alp's web site</a> - </ul>
- </td>
- </tr> - </table> - </td> - </tr> - </tr> - </tbody> - </table> - - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.16</b><br> - <a href="archive/mono-0.16">Release notes</a><br> - Oct 1st, 2002. - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.16.tar.gz">Mono Class Libraries and C# Compiler.</a> - <li><a href="archive/mono-0.16.tar.gz">Mono Runtime</a> - <li><a href="archive/gc6.1.tar.gz">Boehm GC 6.1</a> - </ul> - </td> - </tr> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source RPMs</b> - </td> - <td> - <ul> - <li><a href="archive/libgc-6.1-1.src.rpm">libgc-6.1-1.src.rpm</a> - <li><a href="archive/mono-0.16-1.src.rpm">mono-0.16-1.src.rpm</a> - </ul> - </td> - </tr> - <tr> - <td></td> - </tr> - <tr> - <td bgcolor="#999999"> - <b>Linux s390</b> - <ul> - <li><a href="archive/s390/glib2-2.0.6-13.s390.rpm">glib2-2.0.6-13.s390.rpm</a> - <li><a href="archive/s390/glib2-devel-2.0.6-13.s390.rpm">glib2-devel-2.0.6-13.s390.rpm</a> - <li><a href="archive/s390/libgc-6.1alpha5-1.s390.rpm">libgc-6.1alpha5-1.s390.rpm</a> - <li><a href="archive/s390/libgc-devel-6.1alpha5-1.s390.rpm">libgc-devel-6.1alpha5-1.s390.rpm</a> - <li><a href="archive/s390/mono-0.16-1.s390.rpm">mono-0.16-1.s390.rpm</a> - <li><a href="archive/s390/mono-devel-0.16-1.s390.rpm">mono-devel-0.16-1.s390.rpm</a> - </ul> - </td> - </tr> - </table> - </td> - </tr> - <tr> - </tr> - </tr> - </tbody> - </table> - - <table> - <tbody> - <tr bgcolor="#DDDDDD"> - <td> - <b>Release 0.15</b><br> - <a href="archive/mono-0.15">Release notes</a><br> - Aug 23rd, 2002. - </td> - <td> - <table cellspacing="1" cellpadding="3"> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source Code</b> - </td> - <td> - <ul> - <li><a href="archive/mcs-0.15.tar.gz">Mono Class Libraries and C# Compiler.</a> - <li><a href="archive/mono-0.15.tar.gz">Mono Runtime</a> - <li><a href="archive/gc6.1alpha5.tar.gz">Boehm GC 6.1alpha5</a> - </ul> - </td> - </tr> - <tr bgcolor="#BBBBBB"> - <td> - <b>Source RPMs</b> - </td> - <td> - <ul> - <li><a href="archive/libgc-6.1alpha5-1.src.rpm">libgc-6.1alpha5-1.src.rpm</a> - <li><a href="archive/mono-0.15-1.src.rpm">mono-0.15-1.src.rpm</a> - </ul> - </td> - </tr> - <tr> - <td></td> - </tr> -
- <tr bgcolor="#999999">
- <td>
- <b>Windows (win95 friendly)</b>
- <ul>
- <li><a href="archive/mono-w32-Aug_28_2002.zip">Mono-w32</a>
- </ul>
- </td>
- <td bgcolor="#999999">
- <b>Red Hat null-8.0/x86</b>
- <ul>
- <li><a href="archive/redhat-null-i386/libgc-6.1alpha5-1.i386.rpm">libgc-6.1alpha5-1.i386.rpm</a>
- <li><a href="archive/redhat-null-i386/libgc-devel-6.1alpha5-1.i386.rpm">libgc-devel-6.1alpha5-1.i386.rpm</a>
- <li><a href="archive/redhat-null-i386/mono-0.15-1.i386.rpm">mono-0.15-1.i386.rpm</a>
- <li><a href="archive/redhat-null-i386/mono-devel-0.15-1.i386.rpm">mono-devel-0.15-1.i386.rpm</a>
- </ul>
- </td>
- </tr>
- </table> - </td> - </tr> - </tbody> - </table> - -* Binaries for other platforms. - - Already daily volunteer's made binaries: - - <ul> - * <a href="http://pkg-mono.alioth.debian.org/">http://pkg-mono.alioth.debian.org/</a> - </ul> - -* Snapshots - -<a name="snapshots"> - - <a href="http://www.go-mono.com/snapshots">Nightly snapshots</a> of - the CVS repository are made every day at 10pm EST (Boston - Time). These are not guaranteed to build, they are just a - snapshot of the tree. - - The <a href="anoncvs.html">anoncvs</a> mirrors provided by - Hispalinux are updated every six hours. - -* Compilation - - For instructions on how to build Mono, please refer to the - <a href="compiling.html">compiling</a> page.
\ No newline at end of file diff --git a/doc/drawing b/doc/drawing deleted file mode 100644 index eb152415655..00000000000 --- a/doc/drawing +++ /dev/null @@ -1,51 +0,0 @@ -* Drawing - - Mono provides two mechanism to draw. The first exposes the - Microsoft System.Drawing API and the second exposes the <a - href="http://www.cairographics.org">Cairo</a> API. - -* System.Drawing - - The System.Drawing implementation in Mono is designed to be - compatible with the Microsoft API. The imaging model is very - similar to the PDF 1.4 composition-based imaging model. - - Our implementation is a C# wrapper around the GDI+ C API (also - called the <a - href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlusReference.asp">"GDI+ - Flat API"</a>). - - This means that the C# code is the same for Windows and Unix - systems. The following graph explains the situation: - - <center> - <img src="images/system-drawing.png"> - </center> - - In Windows Mono uses the GDI+ library that is included with - the operating system (<tt>GDIPLUS.DLL</tt>, while in Unix we - provide an implementation of this API in the - <tt>libgdiplus.so</tt> shared library. Our - <tt>libgdiplus.so</tt> has the same C Flat API as the - <tt>GDIPLUS.DLL</tt>. Our implementation uses Cairo to do - the heavy lifting. - - The implementation of GDI+ lives in mcs/class/System.Drawing - in the gdiplus directory and requires <a - href="http://www.cairographics.org">Cairo</a> to be installed - to get the package built. - - The C# code that implement System.Drawing is the same for - Windows and Unix builds. - - Since this is an implementation of an existing Microsoft API - no architectural changes go here. - -* Mono.Cairo - - The Mono.Cairo.dll assembly exposes the Cairo API to managed - applications. The mapping is a pretty straightforward one, - and the programming model is very close to the C API. - - This API is still unstable due to the nature of the underlying - API being used and will be revisited as Cairo evolves. diff --git a/doc/embedded-api b/doc/embedded-api deleted file mode 100755 index 3b405c98ddd..00000000000 --- a/doc/embedded-api +++ /dev/null @@ -1,305 +0,0 @@ -* Embedding the Mono runtime, preliminary version - - This document describes how to embed the Mono runtime in your - application, and how to invoke CIL methods from C, and how to - invoke C code from CIL - - Slides for Paolo's presentation at .NET ONE on the embedding - API are available here: <a - href="http://primates.ximian.com/~lupus/slides/embed">Hosting the Mono - Runtime</a>. You can also get his <a - href="http://primates.ximian.com/~lupus/slides/embed/Mono-0.01.tar.gz">sample - Mono module for Perl</a> - - Authors: Paolo Molaro, Miguel de Icaza. - -* Embedding the runtime. - - Embedding the runtime consists of various steps: - - <ul> - * Compiling and linking the Mono runtime - - * Initializing the Mono runtime - - * Optionally expose C code to the C#/CIL universe. - - </ul> - - These are discussed in detail next. - -** Compiling and Linking - - To embed the runtime, you have to link your code against the - Mono runtime libraries. To do this, you want to pass the - flags returned by pkg-config to your compiler: - - <pre> - pkg-config --cflags --libs mono - </pre> - - Like this: - - <pre> - gcc sample.c `pkg-config --cflags --libs mono` - </pre> - - You can separate the compilation flags from the linking flags, for - instance, you can use the following macros in your makefile: - - <pre> - CFLAGS=`pkg-config --cflags mono` - LDFLAGS=`pkg-config --libs mono` - </pre> - -** Initializing the Mono runtime - - To initialize the runtime, call mono_jit_init, like this: - - <pre> - MonoDomain *domain; - - domain = mono_jit_init ("domain-name"); - </pre> - - That will return a MonoDomain where your code will be - executed. You can create multiple domains. Each domain is - isolated from the other domains and code in one domain will - not interfere with code in other domains. This is useful if - you want to host different applications in your program. - - Now, it is necessary to transfer control to Mono, and setup - the threading infrastructure, you do this like this: - - <pre> - void *user_data = NULL; - - mono_runtime_exec_managed_code (domain, main_thread_handler, user_data); - </pre> - - Where your main_thread_handler can load your assembly and execute it: - - <pre> - static void main_thread_handler (gpointer user_data) - { - MonoAssembly *assembly; - - assembly = mono_domain_assembly_open (domain, "file.dll"); - if (!assembly) - error (); - </pre> - - In the above example, the contents of `file.dll' will be - loaded into the domain. This only loads the code, but it will - not execute anything yet. You can replace `file.dll' with - another transport file, like `file.exe' - - To start executing code, you must invoke a method in the - assembly, or if you have provided a static Main method (an - entry point), you can use the convenience function: - - <pre> - retval = mono_jit_exec (domain, assembly, argc - 1, argv + 1); - </pre> - - If you want to invoke a different method, look at the - `Invoking Methods in the CIL universe' section later on. - -** Shutting down the runtime - - To shutdown the Mono runtime, you have to clean up all the - domains that were created, use this function: - - <pre> - mono_jit_cleanup (domain); - </pre> - -** Applications that use threads. - - The Boehm GC system needs to catch your calls to the pthreads - layer, so in each file where you use pthread.h you should - include the <gc/gc.h> file. - - If you can not do this for any reasons, just remember that you - can not store pointers to Mono Objects on the stack, you can - store them safely in the heap, or in global variables though - -* Exposing C code to the CIL universe - - The Mono runtime provides two mechanisms to expose C code to - the CIL universe: internal calls and native C code. Internal - calls are tightly integrated with the runtime, and have the - least overhead, as they use the same data types that the - runtime uses. - - The other option is to use the Platform Invoke (P/Invoke) to - call C code from the CIL universe, using the standard P/Invoke - mechanisms. - - To register an internal call, use this call in the C code: - - <pre> - mono_add_internal_call ("Hello::Sample", sample); - </pre> - - Now, you need to declare this on the C# side: - - <pre> - using System; - using System.Runtime.CompilerServices; - </pre> - - - <pre> - class Hello { - [MethodImplAttribute(MethodImplOptions.InternalCall)] - extern static string Sample (); - } - </pre> - - Since this routine returns a string, here is the C definition: - - <pre> - static MonoString* - Sample () - { - return mono_string_new (mono_domain_get (), "Hello!"); - } - </pre> - - Notice that we have to return a `MonoString', and we use the - `mono_string_new' API call to obtain this from a string. - -* Invoking Methods in the CIL universe - - Calling a method in the CIL universe from C requires a number of steps: - - <ul> - * Obtaining the MonoMethod handle to the method. - - * The method invocation. - </ul> - -** Obtaining a MonoMethod - - To get a MonoMethod there are several ways. - - You can get a MonoClass (the structure representing a type) - using: - - <pre> - MonoClass * - mono_class_from_name (MonoImage *image, const char* name_space, const char *name); - </pre> - - and then loop in the returned class method array until you get - the one you're looking for. There are examples of such - searches as static functions in several C files in - metadata/*.c: we need to expose one through the API and remove - the duplicates. - - The other, simpler, way is to use the functions in - debug-helpers.h: there are examples of their use in monograph, - mint and the jit as well. You basically use a string - description of the method, like: - - <pre> - "System.Object:GetHashCode()" - </pre> - - and create a MonoMethodDesc out of it with: - - <pre> - MonoMethodDesc* mono_method_desc_new (const char *name, gboolean include_namespace); - </pre> - - You can then use: - - <pre> - MonoMethod* mono_method_desc_search_in_class (MonoMethodDesc *desc, MonoClass *klass); - MonoMethod* mono_method_desc_search_in_image (MonoMethodDesc *desc, MonoImage *image); - </pre> - - to search for the method in a class or in an image. You would - tipically do this just once at the start of the program and - store the result for reuse somewhere. - -** Invoking a Method - - There are two functions to call a managed method: - - <pre> - MonoObject* - mono_runtime_invoke (MonoMethod *method, void *obj, void **params, - MonoObject **exc); - and - MonoObject* - mono_runtime_invoke_array (MonoMethod *method, void *obj, MonoArray *params, - MonoObject **exc); - </pre> - - obj is the 'this' pointer, it should be NULL for static - methods, a MonoObject* for object instances and a pointer to - the value type for value types. - - The params array contains the arguments to the method with the - same convention: MonoObject* pointers for object instances and - pointers to the value type otherwise. The _invoke_array - variant takes a C# object[] as the params argument (MonoArray - *params): in this case the value types are boxed inside the - respective reference representation. - - From unmanaged code you'll usually use the - mono_runtime_invoke() variant. - - Note that this function doesn't handle virtual methods for - you, it will exec the exact method you pass: we still need to - expose a function to lookup the derived class implementation - of a virtual method (there are examples of this in the code, - though). - - You can pass NULL as the exc argument if you don't want to - catch exceptions, otherwise, *exc will be set to the exception - thrown, if any. if an exception is thrown, you can't use the - MonoObject* result from the function. - - If the method returns a value type, it is boxed in an object - reference. - - We have plans for providing an additional method that returns - an unmanaged->managed thunk like this: - - <pre> - void* mono_method_get_unmanaged_thunk (MonoMethod *method); - </pre> - - You'll be able to store the returned pointer in a function - pointer with the proper signature and call that directly from - C: - - <pre> - typedef gint32 (*GetHashCode) (MonoObject *obj); - - GetHashCode func = mono_method_get_unmanaged_thunk (System_Object_GetHashCode_method); - - gint32 hashvalue = func (myobject); - </pre> - - It may not be possible to manage exceptions in that case, - though. I need to think more about it. - -** Threading issues - - If your application creates threads on its own, and you want them to - be able to call code into the CIL universe with Mono, you have to - register the thread with Mono before issuing the call. - - To do so, call the mono_thread_attach() function before you execute - any managed code from the thread - -* Samples - - See the sample programs in mono/sample/embed for examples of - embedding the Mono runtime in your application. - - diff --git a/doc/faq b/doc/faq deleted file mode 100644 index 92f91929da2..00000000000 --- a/doc/faq +++ /dev/null @@ -1,1573 +0,0 @@ -<a href="#basics">Basics</a><br> -<a href="#novell">The Novell Role in the Mono project</a><br> -<a href="#gnome">Mono and GNOME</a><br> -<a href="#gui">Building GUI applications with Mono</a><br> -<a href="#msft">Mono and Microsoft</a><br> -<a href="#platforms">Mono platforms</a><br> -<a href="#compatibility">Compatibility</a></br> -<a href="#pnpproject">Mono and the Portable.NET Project</a><br> -<a href="#webservices">Web Services</a><br> -<a href="#asp">Mono and ASP.NET</a><br> -<a href="#ado">Mono and ADO.NET</a><br> -<a href="#monodoc">MonoDoc</a><br> -<a href="#devel">Development Tools and Issues</a><br> -<a href="#java">Mono and Java</a><br> -<a href="#extending">Extending Mono</a><br> -<a href="#portability">Portability</a><br> -<a href="#reuse">Reusing Existing Code</a><br> -<a href="#gcc">Mono and GCC</a><br> -<a href="#performance">Performance</a><br> -<a href="#licensing">Licensing</a><br> -<a href="#patents">Patents</a><br> -<a href="#etc">Miscellaneous Questions</a><br> -<a href="#obfuscation">Obfuscation</a></br> -<a href="#problems">Mono Common Problems</a><br> - -A <a -href="http://www.monohispano.org/tutoriales/mono-puf//">Spanish -translation</a> is also available (it is outdated though) - -<a name="basics"></a> -** Basics - -Q: What is Mono exactly? - -A: The Mono Project is an open development initiative sponsored by - Ximian that is working to develop an open source, Unix - version of the Microsoft .NET development platform. Its objective - is to enable Unix developers to build and - deploy cross-platform .NET Applications. The project will - implement various technologies developed by Microsoft that have now - been submitted to the ECMA for standardization. - - The Mono project has also sparked a lot of interest in developing - C#-based components, libraries and frameworks. Today Mono is not - limited to implement the .NET Framework, but also contains other - components. Some of the components of the Mono platform were - developed by the Mono team, and some others we have incorporated - from other open source efforts, the most important ones: - - <ul> - <li><a - href="http://remoting-corba.sourceforge.net/">Remoting.CORBA</a>: A - CORBA implementation for Mono. - - <li>Ginzu: An implementation on top of Remoting for the <a - href="http://www.zeroc.com">ICE</a> stack - - <li><a href="http://gtk-sharp.sf.net">Gtk#</a>: Bindings for - the popular Gtk+ GUI toolkit for Unix and Windows systems. - Other bindings are available: Diacanvas-Sharp and MrProject. - - <li><a - href="http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx">#ZipLib</a>: - A library to manipulate various kinds of compressed files and - archives (Zip and tar). - - <li>GlGen (available from the Mono CVS): Bindings for OpenGL. - - <li>Mono.LDAP: LDAP access for .NET apps. - - <li>Mono.Data: We ship support for Postgress, MySql, Sybase, - DB2, SqlLite, Tds (SQL server protocol) and Oracle databases. - - <li>Mono.Cairo: Bindings for the <a - href="http://www.cairographics.org">Cairo</a> rendering - engine (Our System.Drawing is implemented on top of this). - - <li>Mono.Posix: Bindings for building POSIX applications using - C#. - - <li>Mono.Http: Support for creating custom, embedded HTTP - servers and common HTTP handlers for your applications. - </ul> - -Q: What is the difference between Mono and the .NET Initiative? - -A: The ".NET Initiative" is a somewhat nebulous company-wide effort by - Microsoft, one part of which is a cross-platform development - framework. Mono is an implementation of the development framework, - but not an implementation of anything else related to the .NET - Initiative, such as Passport or software-as-a-service. - -Q: What technologies are included in Mono? - -A: Mono contains a number of components useful for building new - software: - - <ul> - * A Common Language Infrastructure (CLI) virtual - machine that contains a class loader, Just-in-time - compiler, and a garbage collecting runtime. - - * A class library that can work with any language - which works on the CLR. Both .NET compatible class - libraries as well as Mono-provided class libraries - are included. - - * A compiler for the C# language. In the future we - might work on other compilers that target the Common - Language Runtime. - </ul> - - - Windows has compilers that target the virtual machine from <a - href="http://msdn.microsoft.com/net/thirdparty/default.asp#lang">a - number of languages:</a> Managed C++, Java Script, Eiffel, - Component Pascal, APL, Cobol, Perl, Python, Scheme, - Smalltalk, Standard ML, Haskell, Mercury and Oberon. - - The CLR and the Common Type System (CTS) enables applications and - libraries to be written in a collection of different languages that - target the byte code - - This means for example that if you define a class to do algebraic - manipulation in C#, that class can be reused from any other - language that supports the CLI. You could create a class in C#, - subclass it in C++ and instantiate it in an Eiffel program. - - A single object system, threading system, class libraries, and - garbage collection system can be shared across all these languages. - -Q: Where can I find the specification for these technologies? - -A: You can find the information here: - - - C# <a href="http://www.ecma.ch/ecma1/STAND/ecma-334.htm">http://www.ecma.ch/ecma1/STAND/ecma-334.htm</a> - - CLI <a href="http://www.ecma.ch/ecma1/STAND/ecma-335.htm">http://www.ecma.ch/ecma1/STAND/ecma-335.htm</a> - -Q: Will you implement the .NET Framework SDK class libraries? - -A: Yes, we will be implementing the APIs of the .NET Framework SDK - class libraries. - -Q: Will you offer an ECMA-compliant set of class libraries? - -A: Eventually we will. Our current focus is on inter-operating - with the Microsoft SDK, but we will also offer an ECMA compliant - subset of the libraries. - -Q: What does the name "Mono" mean? - -A: Mono is the word for `monkey' in Spanish. We like monkeys. - -Q: Does Mono work today? - -A: The execution engine works on various platforms, we support - Just-in-Time and Ahead-of-Time compilations on Intel x86 machines - (and soon PowerPC). - - The class libraries are mature enough to run various real - applications: our C# compiler, ASP.NET, and Gtk#-based - applications. - -Q: When will you ship Mono? - -A: Please see the <a href="mono-roadmap.html">Mono Roadmap</a> for - more details on the release plans. - -Q: How can I contribute? - -A: Check the <a href="contributing.html">contributing</a> section. - -Q: Aren't you just copying someone else's work? - -A: We are interested in providing the best tools for programmers to - develop applications for Free Operating Systems. We also want to help - provide the interoperability that will allow those systems to fit in - with other standards. - - For more background, read the <a href="http://www.go-mono.com/rationale.html">Mono - Project white paper</a>. - the project. - -Q: Miguel said once that Mono was being implemented in COBOL. Is that true?. - -A: No. It was a joke. - - -<a name="novell"></a> - -** The Novell Role in the Mono Project - -Q: Why is Novell working on .NET? - -A: Novell is interested in providing the best tools for programmers to - develop applications for Free Operating Systems. - - For more information, read the project <a - href="rationale.html">rationale</a> page. - -Q: Will Novell be able to take on a project of this size? - -A: Of course not. Novell is a supporter of the Mono project, but the only way - to implement something of this size is for the entire free software - community to get involved. Visit the <a href="contributing.html">contributing</a> - page if you'd like to help out. - -Q: What pieces Novell be working on? - -A: We will devote most of our resources to work on the pieces which are - on the critical path to release a development and execution - environment. Once the project is at a stage where it is useful in - the real world, it will achieve a critical mass of developers to - improve it further. - -Q: Will Novell offer Mono commercially? - -A: When Mono is ready to be shipped Ximian will offer a commercial - support and services for Mono. Mono components are also - available to be licensed commercially. For licensing details, - contact <a - href="mailto:mono-licensing@ximian.com">mono-licensing@ximian.com</a> - -Q: Does Novell provide consulting services around Mono? - -A: Yes, Novell does provide consulting services around Mono to - make it suitable to your needs. Porting the runtime engine, - customizing it, working on specific classes or tuning the code - for your particular needs. - - Please contact <a - href="mailto:mono-licensing@ximian.com">mono-licensing@ximian.com</a> - for consulting services information. - -Q: Will you wait until Mono is finished? - -A: Mono will ship on various stages as they mature. Some people - require only a subset of the technologies, those will ship first, - see the <a href="mono-roadmap.html">Mono Roadmap</a> for details - -<a name="gnome"></a> -** Mono and GNOME - -Q: How is Mono related to GNOME? - -A: In a number of ways. This project was born out of the need of - providing improved tools for the GNOME community, and will use - existing components that have been developed for GNOME when they - are available. For example, we plan to use Gtk+ and Libart to - implement Winforms and the Drawing2D API and are considering - GObject support. - - Mono team members work actively on the <a - href="http://gtk-sharp.sf.net">Gtk#</a> project: a binding of the - GNOME class libraries for .NET and Mono. - -Q: Has the GNOME Foundation or the GNOME team adopted Mono? - -A: Mono is too new to be adopted by those groups. We hope that the - tools that we will provide will be adopted by free software - programmers including the GNOME Foundation members and the GNOME - project generally. - -Q: Should GNOME programmers switch over to Mono now? - -A: It is still far to early for discussions of "switching over." No - pieces of Mono will be ready within the next six months, and a - complete implementation is roughly one year away. - - We encourage GNOME developers to continue using the existing tools, - libraries and components. Improvements made to GNOME will have an - impact on Mono, as they would be the "back-end" for various classes. - -Q: Will Mono include compatibility with Bonobo components? What is the - relationship between Mono and Bonobo? - -A: Yes, we will provide a set of classes for implementing and using - Bonobo components from within Mono. Mono should allow you to write - Bonobo components more easily, just like .NET on Windows allows you - to export .NET components to COM. - -Q: Does Mono depend on GNOME? - -A: No, Mono does not depend on GNOME. We use a few packages produced by - the GNOME team like the `glib' library, we also use other - third-party open source libraries like Cairo and ICU. - -Q: But will I be able to build GNOME applications? - -A: Yes, we will enable people to write GNOME applications using Mono. - -Q: Do you have C# bindings for GNOME?. - -A: Yes, the <a href="http://gtk-sharp.sf.net">Gtk# project</a> - provides bindings for Gtk+, Gdk, Atk, libgnome, libgnomecanvas, and - libgnomeui. Other libraries under the GNOME framework will be - added on an as-needed (and as-requested) basis. - -<a name="gui"></a> -** GUI applications - -Q: Will Mono enable GUI applications to be authored? - -A: Yes, you will be able to build GUI applications. Indeed, that is - our main focus. Today you can use Gtk# or #WT to develop GUI - applications, and support for Windows.Forms is underway. - -Q: What is the difference between Gtk# and System.Windows.Forms? - -A: Gtk# is a set of bindings for the Gtk+ toolkit for C# (and other - CIL-enabled languages), it integrates natively with the Gnome - desktop. System.Windows.Forms is an API defined by Microsoft to - build GUI applications. - - Windows.Forms is currently being implemented on top of a modified - version of Wine that can be used as a library: WineLib. - -Q: Why not implement System.Windows.Forms on top of Gtk# or Qt#? - -A: Compatibility. - - Although it is possible to run simple Windows.Forms applications - with the Gtk#-based backend of Windows.Forms, it is very unlikely - that the implementation will ever implement everything needed for - full compatibility with Windows.Forms. - - The reason is that Windows.Forms is not a complete toolkit, and to - work around this problem some of the underlying Win32 foundation is - exposed to the programmer in the form of exposing the Windows - message handler (WndProc). Any control can override this method. - Also developers often P/Invoke into Win32 to get to functionality - that was not wrapped. - - To achieve full compatibility, we would have to emulate this, and - it would take too long. - - For more details see the <a href="winforms.html">winforms page</a> - -Q: Wine applications do not look like native applications, what are - you going to do about this? - -A: We have already a few patches into our version of Windows.Forms - that makes Wine use the colors and font settings from your desktop, - improving the integration a lot. In the future, we will continue - to improve this interoperability scenario. - -Q: Will I be able to run my smart clients on systems powered by Mono? - -A: As long as your applications are 100% .NET and do not make use - of P/Invoke to call Win32 functions, your smart client applications - will run on Mono platforms. - -Q: Where can I learn more about Gtk#? - -A: The following <a href="http://gtk-sharp.sourceforge.net">link</a> sends you to the page of the project. - -Q: What can I do with Gtk#?. - -A: Gtk# is becoming very usable and you can create applications and - applets like those you see in a GNOME desktop environment. It's - easy to install so it's worth a try. - -Q: How can I compile my HelloWorld.cs which uses Gtk#?. - -A: Try: mcs -r:gtk-sharp HelloWorld.cs - -Q: Is there any way how to connect DataAdapter to some GTK# controls? - -A: There is a sample file called `DbClient' in gtk-sharp/samples that you - might to look at. It is a sample program in Gtk# that adds/updates/deletes - information on a Postgress database. When we have the new table/tree widgets, - I am sure someone would write an adapter for System.Data (in Gtk2 the - tree/list widgets are written using a view/model, so you only need to write - a model that maps to the database). You can have a look at - gtk-sharp/sample/DbClient, where there is a GTK# application that uses - System.Data. It does not use DataAdapter, but DataReader though. - -Q: Do you have an estimate for when Windows.Forms will be released? - -A: The plan currently is aimed at Q3/2004. - - -Q: Do you have a comparission chart about the various toolkit - offerings? - -A: A document explaining this is available at: <a - href="http://primates.ximian.com/~miguel/toolkits.html">http://primates.ximian.com/~miguel/toolkits.html</a>. - -<a name="msft"></a> -** Mono and Microsoft - -Q: Is Microsoft helping Ximian with this project? - -A: There is no high level communication between Ximian and Microsoft - at this point, but engineers who work on .NET or the ECMA groups - have been very friendly, and very nice to answer our questions, or - clarify part of the specification for us. - - Microsoft is interested in other implementations of .NET and are - willing to help make the ECMA spec more accurate for this purpose. - - Ximian was also invited to participate in the ECMA committee - meetings for C# and the CLI. - -Q: Are Microsoft or Corel paying Ximian to do this? - -A: No. - -Q: Do you fear that Microsoft will change the spec and render Mono - useless? - -A: No. Microsoft proved with the CLI and the C# language that it was - possible to create a powerful foundation for many languages to - inter-operate. We will always have that. - - Even if changes happened in the platform which were undocumented, - the existing platform would a value on its own. - -Q: Are you writing Mono from the ECMA specs? - -A: Yes, we are writing them from the ECMA specs and the published - materials in print about .NET. - -Q: If my applications use Mono, will I have to pay a service fee? - -A: No. Mono is not related to Microsoft's initiative of - software-as-a-service. - -Q: Is the Mono Project is related to the Microsoft Hailstorm effort? Is - Ximian endorsing Hailstorm? - -A: No. The Mono Project is focused on providing a compatible set of - tools for the Microsoft .NET development platform. It does not - address, require, or otherwise endorse the MS Passport-based - Hailstorm single sign-on system that is part of Windows XP and - other services. - -Q: Will Mono or .NET applications depend on Microsoft Passport? - -A: No. MS Passport is unrelated to running .NET compatible applications - produced with the Mono tools. The only thing you will need is a - just-in-time compiler (JIT). - -Q: If Microsoft will release a port of their .NET platform under the - `Shared Source' license, why should I bother with anything else? - -A: The Shared Source implementation will be expensive and its uses - will be tightly restricted, especially for commercial use. We are - working towards an implementation that will grant a number of - important rights to recipients: use for any purpose, - redistribution, modification, and redistribution of modifications. - - This is what we call <a - href="http://www.gnu.org/philosophy/free-sw.html">Free Software</a> - -Q: Is Mono a free implementation of Passport? - -A: No. Mono is just a runtime, a compiler and a set of class - libraries. - -Q: Will the System.Web.Security.PassportIdentity class mean - that my software will depend on Passport? - -A: No. Applications may use that API to contact a Passport site, but - are not required to do so. - - As long as your application does not use Passport, you will not - need Passport. - -Q: Will Mono running on Linux make Passport available for Linux? - -A: No. However, the Passport toolkit for Linux-based web servers is - available from Microsoft. - -Q: Will Mono allow me to run Microsoft Office on Linux? - -A: No, it will not. Microsoft Office is a Windows application. To - learn more about running Windows applications on Intel Unix systems - refer to <a href="http://www.winehq.com">the Wine Project</a>. - -Q: Can mono run the WebMatrix? - -A: No. That requires System.Windows.Forms support which is not - currently implemented. - -Q: Does mono have something like Passport? - Will mono have a server side Passport/Similar framework for XSP as well as client classes? - -A: Not yet, but the client side API for authentication is not the problem. - We will likely have a lot of other authentication APIs, like the Liberty - Alliance APIs. The problem is people on the web provider end that might use - this for authentication. - -<a name="platforms"></a> -** Mono Platforms - -Q: What operating systems does Mono run on? - -A: Mono is known to run on Linux, Unix and Windows systems. - -Q: Can I run Mono applications without using `mono program.exe'? - -A: Yes, this is possible on Linux systems, to do this, use something like: - -<pre> -if [ ! -e /proc/sys/fs/binfmt_misc/register ]; then - /sbin/modprobe binfmt_misc - mount -t binfmt_misc none /proc/sys/fs/binfmt_misc -fi - -if [ -e /proc/sys/fs/binfmt_misc/register ]; then - echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register -else - echo "No binfmt_misc support" - exit 1 -fi -</pre> - -Q: What architectures does Mono support? - -A: Mono today ships with a Just-in-Time compiler for x86-based - systems. It is tested regularly on Linux, FreeBSD and Windows - (with the XP/NT core). - - There is also an interpreter, which is slower that runs on the - s390, SPARC and PowerPC architectures. - -Q: Can Mono run on Windows 9x, or ME editions? - -A: Mono requires Unicode versions of Win32 APIs to run, - and only a handful of *W functions is supported under Win9x. - - There is Microsoft Layer for Unicode that provides implementation - of these APIs on 9x systems. - - Unfortunately it uses linker trick for delayed load that is not - supported by ld, so some sort of adapter is necessary. - - You will need MSLU and one of the following libs to link Mono to - unicows.dll <a - href="http://mono.eurosoft.od.ua/files/unimono.zip">http://mono.eurosoft.od.ua/files/unimono.zip</a> - or alternatively search the net for "libunicows". - - No changes to Mono source code required, the only thing is to make - sure that linker will resolve imports to adapter library instead of - Win32 libs. This is achieved by inserting -lunimono before - -lkerner32/user32 in the linker's specs file. - -Q: Why support Windows, when you can run the real thing? - -A: There are various reasons: - - <ul> - <li> About half the contributors to Mono are Windows developers. - They have many different for contributing to the effort, and - we find it very important to let those developers run the runtime on Windows without forcing - them to use a new operating system. - - <li> Supporting Windows helps us identify the portable portions - of Mono from the non-portable versions of it, helping Mono - become more portable in the future. - - <li> Mono does not heavily modify the windows registry, update system DLLs, - install DLLs to the Windows/System32 path. Another words, I knew Mono would - not cause any legacy enterprise applications to stop working - and it - hasn't. However, our CIO er is againt it because of the changes that would - be made to Windows 2000, such as, affecting security. - </ul> - -<a name="compatibility"></a> -** Compatibility - -Q: Can Mono run applications developed with the Microsoft.NET framework? - -A: Yes, Mono can run applications developed with the Microsoft .NET Framework - on Unix. There are a few caveats to keep in mind: Mono has not - been completed yet, so a few API calls might be missing; And in - some cases the Mono behavior *might* be incorrect. - -Q: Will missing API entry points be implemented? - -A: Yes, the goal of Mono is to implement precisely the .NET Framework - API (as well as compile-time selectable subsets, for those - interested in a lighter version of Mono). - -Q: If the behavior of an API call is different, will you fix it? - -A: Yes, we will. But we will need your assistance for this. If you find a bug - in the Mono implementation, please fill a bug report in <a - href="http://bugzilla.ximian.com">http://bugzilla.ximian.com</a>. - Do not assume we know about the problem, we might not, and using the bug tracking - system helps us organize the development process. - -Q: Can I develop my applications on Windows, and deploy on a supported - Mono platform (like Linux)? - -A: Yes, you can. - - As of today, Mono is not 100% finished, so it is sometimes useful - to compile the code with Mono, to find out if your application - depends on unimplemented functionality. - -Q: Will applications run out the box with Mono? - -A: Sometimes they will. But sometimes a .NET application might invoke - Win32 API calls, or assume certain patterns that are not correct - for cross-platform applications. - -Q: What is a 100% .NET application? - -A: A `100% .NET application' is one that only uses the APIs defined - under the System namespace and does not use P/Invoke. These - applications would in theory run unmodified on Windows, Linux, - HP-UX, Solaris, MacOS X and others. - - Note that this requirement also holds for all assemblies used by the - application. If one of them is Windows-specific, then the entire program - is not a 100% .NET application. - - Furthermore, a 100% .NET application must not contain non-standard data - streams in the assembly. For example, Visual Studio .NET will insert a - <tt>#-</tt> stream into assemblies built under the "Debug" target. - This stream contains debugging information for use by Visual Studio .NET; - however, this stream can not be interpreted by Mono (unless you're willing - to donate support). - - Thus, it is recommended that all Visual Studio .NET-compiled code be - compiled under the Release target before it is executed under Mono. - -Q: Can I execute my Visual Studio .NET program (Visual Basic .NET, Visual C#, - Managed Extensions for C++, etc.) under Mono? - -A: Yes, with some reservations. - - The .NET program must either be a 100% .NET application, or (somehow) have - all dependent assemblies available on all desired platforms. (How to do so - is outside the bounds of this FAQ.) - - Mono must also have an implementation for the .NET assemblies used. For - example the System.EnterpriseServices namespace is part of .NET, but it - has not been implemented in Mono. Thus, any applications using this - namespace will not run under Mono. - - With regards to languages, C# applications tend to be most portable. - - Visual Basic .NET applications are portable, but Mono's - Microsoft.VisualBasic.dll implementation is incomplete. It is recommended - to either avoid using this assembly in your own code, only use the - portions that Mono has implemented, or to help implement the missing - features. Additionally, you can set 'Option Strict On', which - eliminates the implicit calls to the unimplemented - Microsoft.VisualBasic.CompilerServices.ObjectType class. - (Thanks to JĂśrg Rosenkranz.) - - Managed Extensions for C++ is least likely to operate under Mono. Mono - does not support mixed mode assemblies (that is, assemblies containing both - managed and unmanaged code, which Managed C++ can produce). You need a - fully-managed assembly to run under Mono, and getting the Visual C++ .NET - compiler to generate such an executable can be difficult. You need to use - only the .NET-framework assemblies, not the C libraries (you can't use - <b>printf</b>(3) for example.), and you need to use - the linker options <tt>/nodefaultlib /entry:main mscoree.lib</tt> in - addition to the <tt>/clr</tt> compiler flag. You can still use certain - compiler intrinsic functions (such as <b>memcpy</b>(3)) and the STL. - You should also see <a - href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmex/html/vcgrfconvertingmanagedextensionsforcprojectsfrommixed-modetopureil.asp" - >Converting Managed Extensions for C++ Projects from Mixed Mode to Pure - Intermediate Language</a> at MSDN. - Finally, you can use PEVERIFY.EXE from the .NET SDK to determine if the - assembly is fully managed. - - Thanks to Serge Chaban for the linker flags to use. - -<a name="pnpproject"></a> -** Mono and Portable.NET - -Q: What are the differences between Mono and Portable.NET? - -A: Most of Mono is being written using C#, with only - a few parts written in C (The JIT engine, the runtime, the - interfaces to the garbage collection system). - - It is easier to describe what is unique about Mono: - <ul> - <li> An advanced native-code compilation engine: Both - just-in-time compilation (JIT) and pre-compilation of CIL - bytecodes into native code are supported. - - <li> A foundation for code optimization: The new code generator in - Mono builds on the experience of our first JIT engine, and enables - us to implement various advanced compiler optimization - tricks. With an SSA-framework, plenty of new optimizations are possible. - - The current list of optimizations are: Peephole postpass, - Branch optimizations, Inline method calls, Constant folding, Constant - propagation, Copy propagation, Dead code elimination, Linear scan - global reg allocation, Conditional moves, Emit per-domain code, - Instruction scheduling, Intrinsic method implementations, Tail - recursion and tail calls, Loop related optimizations, Fast x86 FP - compares, Leaf procedures optimizations - - <li> A self-hosting C# compiler written in C#, which is clean, easy - to maintain. - - <li> Focus on the .NET Framework: we are tracking down the .NET - Framework API definition, as we believe it is the API people - will be most familiar with. - - <li> A multi-platform runtime engine: both a JIT engine and an - interpreter exist. The JIT engine runs currently on x86 - systems, while the interpreter works on SPARC, StrongARM, - s390 and PowerPC systems. - - Our new compilation engine is being ported to the PowerPC. - - <li> Supports Linux, BSD, Windows and Solaris at this point. - - <li> The JIT engine is written using a portable instruction - selector which not only generates good code but - is also the foundation to re-target the JIT engine to other - systems. - - <li> Full support for remoting in the runtime. - - <li> The C# compiler, the JIT engine and the class libraries are - mature enough that the whole system has been self-hosting - since April 2002. This means that we develop Mono - completely with itself at this point. - - By forcing ourselves to use our own code to develop our - tools, we bug fix problems rapidly, and the system is - overall more robust and tested than if we did not. - - <li> We have a great community of developers, without which Mono - would not be possible. - </ul> - - In general, Mono is more mature and complete since it has been used - to develop itself, which is a big motivator for stability and - correctness, while Portable.NET remains pretty much an untested - platform. - -Q: I hear Mono keeps changing the P/Invoke API, why? - -A: We are just fixing our implementation to be compatible with the - Microsoft implementation. In other words, the Mono P/Invoke API is - more complete when compared to the Portable.NET version, hence - various pieces of software that depend on this extended - functionality fail to work properly with Portable.NET. - -<a name="webservices"></a> -** Web Services - -Q: How is Mono related to Web Services? - -A: Mono is only related to Web Services in that it will implement the - same set of classes that have been authored in the .NET Framework - to simplify and streamline the process of building Web Services. - - But most importantly, Mono is an Open Source implementation of the - .NET Framework. - -Q: Can I author Web Services with Mono? - -A: You will be able to write Web Services on .NET that run on Mono and - vice-versa. - -Q: If Mono implements the SDK classes, will I be able to write and - execute .NET Web Services with it? - -A: Yes. When the project is finished, you will be able to use the - same technologies that are available through the .NET Framework SDK - on Windows to write Web Services. - -Q: What about Soup? Can I use Soup without Mono? - -A: Soup is a library for GNOME applications to create SOAP servers and - SOAP clients, and can be used without Mono. You can browse the - source code for soup using <a - href="http://cvs.gnome.org/bonsai/">GNOME's Bonsai</a>. - -Q: Can I use CORBA? - -A: Yes. The CLI contains enough information about a class that - exposing it to other RPC systems (like CORBA) is really simple, and - does not even require support from an object. - - <a href="http://remoting-corba.sourceforge.net/">Remoting.CORBA</a> is - a CORBA implementation that is gaining momentum. - - Building an implementation of the Bonobo interfaces once this is ready - should be relatively simple. - -Q: Can I serialize my objects to other things other than XML? - -A: Yes, although the serializing tools have not yet been planned, and - you would probably have to implement them yourself. - -Q: Will Mono use ORBit? - -A: There are a few advantages in using ORBit, like reusing existing code - and leveraging all the work done on it. Michael Meeks has posted - a few <a href="http://lists.ximian.com/archives/public/mono-list/2002-September/008592.html">reasons</a>, - as well as some <a href="http://lists.ximian.com/archives/public/mono-list/2002-September/008657.html">ideas</a> - that could be used to reuse ORBit. - - Most users are likely to choose a native .NET solution, like <a href="http://cvs.gnome.org/bonsai">Remoting.CORBA</a> - - -<a name="monodoc"></a> -** MonoDoc - -Q: What is MonoDoc? - -A: MonoDoc is a graphical documentation browser for the Mono class - libraries. Currently, monodoc consists of a Gtk# application and is - in heavy development. - -<a name="devel"></a> -** Development Tools and Issues - -Q: I am having trouble compiling a new version of Mono from CVS, it - complains about my runtime being out of sync. - -A: To upgrade your class libraries and compiler, see the - INSTALL.txt in the MCS directory. - - The single biggest source of confusion seems to be the "Your - runtime is out of sync" messages. Realize that this is *normal* - while BUILDING. Think about it: you're building a new class - library with the old runtime. If the new class library references - a function that the old runtime knows nothing about, the runtime - system issues this warning. - - Basically what needs to happen is for a new mono runtime to be - compiled, then the corlib class library be compiled, and once this - is done, install the new runtime, followed by corlib. - - Once this is done, you can continue building your entire - environment. - - For instance you just need to: - 1.- Upgrade your Mono runtime (you might better do it with the - mono-build.sh script available in the <a - href="http://www.go-mono.com">download</a> page. - 2.- Get the latest mono-lite tarball from the daily snapshots - <a href="http://www.go-mono.com/daily/">page</a>, unzip and - untar and copy all the dll files to your install path lib - directory (typically pointed by the $MONO_PATH variable). - Copy all the exe files to the install path bin directory. - 3.- Then checkout or update your mcs CVS copy. Then follow - the steps described in mcs/INSTALL.txt. - -Q: Will it be possible to use the CLI features without using byte codes - or the JIT? - -A: Yes. The CLI engine will be made available as a shared library. - The garbage collection engine, the threading abstraction, the - object system, the dynamic type code system and the JIT will be - available for C developers to integrate with their applications if - they wish to do so. - -Q: Will you have new development tools? - -A: With any luck, Free Software enthusiasts will contribute tools to - improve the developer environment. These tools could be developed - initially using the Microsoft implementation of the CLI and then - executed later with Mono. - - We are recommending people to use and contribute to existing - projects like SharpDevelop, Anjuta and Eclipse. - -Q: What kind of rules make the Common Intermediate Language useful for - JITers? - -A: The main rule is that the stack in the CLI is not a general purpose - stack. You are not allowed to use it for other purposes than - computing values and passing arguments to functions or return - values. - - At any given call or return instruction, the types on the stack - have to be the same independently of the flow of execution of your - code. - -Q: Is it true that the CIL is ideal for JITing and not efficient for - interpreters? - -A: The CIL is better suited to be JITed than JVM byte codes, but you - can interpret them as trivially as you can interpret JVM byte - codes. - -Q: Isn't it a little bit confusing to have the name of "XSP" (the same - as in the Apache Project) for the ASP.NET support in Mono?. - -A: In Mono, xsp is just the name of the C# code generator for ASP.NET - pages. In the Apache Project, it is a term for the "eXtensible Server - Pages" technology so as they are very different things, they don't - conflict. - -Q: Is there any plan to develop an aspx server for Mono?. - -A: The XSP reference server is available and you can also use mod_mono - with Apache. - -Q: Is there any way I can develop the class libraries using Linux yet? - -A: Yes. Mono has been self hosting since May 2002. - -Q: Is there any way I can install a known working copy of mono in /usr, - and an experimental copy somewhere else, and have both copies use - their own libraries? (I'm still not very good at library paths in - Linux) - -A: Yes. Just use two installation prefixes. - -Q: How should I write tests or a tests suite? - -A: If you do a test suite for C#, you might want to keep it - independent of the Mono C# compiler, so that other compiler - implementations can later use it. - -Q: Would it be too terrible to have another corlib signed as mscorlib? - -A: We rename corlib to mscorlib also when saving the PE files, in fact, - the runtime can execute program created by mono just fine. - -Q: Is it possible to build a C# file to some sort of intermediate format which - can linked into a final module, like the traditional .c -> .o -> .so path? - -A: You can use: - - mcs /target:library file1.cs, mcs /target:library file2.cs, - mcs /target:exe file1.dll file2.dll /out:mybin.exe - -Q: Is there any plans for implementing remoting in the near future? - -A: The remoting infrastructure is in place. We have implementations - of the TcpChannel, HttpChannel and the Soap and Binary Formatters. - They are compatible with .NET. - - However, some classes from the library may have a different binary - representation, because they may have a different internal data - structure, so for example you won't be able to exchange a Hastable - object between Mono and MS.NET. It should not be a problem if you - are using primitive types, arrays or your own classes. In any case, - could you post a test case? - - -Q: My C code uses the __stdcall which is not availble on Linux, how can I - make the code portable Windows/Unix across platforms? - -A: Replace the __stdcall attribute with the STDCALL macro, and include this - in your C code for newer gcc versions: - - #ifndef STDCALL - #define STDCALL __attribute__((stdcall)) - #endif - -Q: I want to be able to execute Mono binaries, without having to use the "mono" - command. How can I do this? - -A: From Carlos PerellĂł: - - <i>I think that the best solution is the binfmt feature with the - wrapper that exists with Debian packages at: - - <a href="http://www.debianplanet.org/mono/dists/unstable/main/source/admin/">http://www.debianplanet.org/mono/dists/unstable/main/source/admin/</a> - - If you want use it with Big endian machines, you should apply a patch - (<a href="http://carlos.pemas.net/debian/mono/binfmt-detector-cli.c.diff">http://carlos.pemas.net/debian/mono/binfmt-detector-cli.c.diff</a>) - - It works really good and lets you use wine also, it reads the .exe file - headers and check if it's a .net executable. - - This way you just execute: ./my-cool-mono-application.exe and it works - without the need of any wrapper.</i> - -Q: I see funny characters when I run programs, what is the problem? - -A: (From Peter Williams and Gonzalo Paniagua): - - This is Red Hat 9 (probably) using UTF8 on its console; the bytes are - the UTF8 endianness markers. You can do: - - LC_ALL=C mono myexe.exe - - And they wont show up. - - Alternatively, you can do: - - $ echo -e "\033%G" - - to enable UTF-8 on the console. - -<a name="asp"> -** Mono and ASP.NET - -Q: Does Mono support ASP.NET? - -A: Yes. - - Mono supports ASP.NET, we have shown an unmodified IBuySpy - installation running on Mono as well as various other programs. You can - try it yourself downloading the XSP server. - -Q: Do I need install cygwin to work on ASP.NET in mono or Linux is enough since - it is self host right now. - -A: Linux is enough. - -Q: How can I run ASP.NET-based applications with Mono? - -A: You need the Mono runtime and a hosting web server. Currently we distribute a - small web server called `xsp' which is used to debug applications, or you can choose - to use Daniel's Apache 2 module. - -Q: Any plan to make ASP.NET in mono works with Apache in Linux?. - -A: Daniel has authored an Apache2 Module for Mono that hosts the ASP.NET runtime - and is available here: <a - href="http://apacheworld.org/modmono/">http://apacheworld.org/modmono/</a> - -Q: Will you support Apache 1? - -A: Modules developed for Apache 2 are not compatible with Apache 1.3 - Daniel plans to support Apache 1.3 in the future but the current focus is on - Apache 2, because of the better support for threading and Windows. - -Q: Can I run Apache 1 and Apache 2 on the same machine? - - You can always keep a copy of Apache 2 running in parallel with your Apache - 1.3 (either different port or using a reverse proxy). - - You can also bind the two servers to different IP addresses on the - same physical machine. - -<a name="ado"> -** Mono and ADO.NET - -Q: What is the status of ADO.NET support?. Could I start migrating - applications from MS.NET to Mono?. - -A: You could start right now using the ADO.NET support in mono, of course, - if you want to help filling the missing gaps while you develop your app - :-) Well, what I mean is that we're not that far to having full ADO.NET - support in Mono, and we've got a lot of working things, so if we could - get more help, we'd finish it really soon :-) - -Q: In developing the data architecture for the application are there and - objects I should stay away from in order to insure the smoothest possible - transition (minimum code rewrite) to Mono's ADO.NET implementation? (For - example, strongly typed datasets versus untyped datasets, etc...) - -A: We are implementing all the classes in Microsoft .NET's System.Data, so - you can be sure that things will work the same in Mono as with the Microsoft - implementation. - -Q: Does Mono can to connect to Sybase by using Mono.Data.*? - -A: Yes. use Mono.Data.SybaseClient. First of all you have to create a - SybaseConnection, and then, from it, use it as any other - IDbConnection-based class. - -<a name="java"> -** Mono and Java - -Q: Why don't you use Java? After all, there are many languages that - target the Java VM. - -A: You can get very good tools for doing Java development on free - systems right now. <a href="http://www.redhat.com">Red Hat</a> has - contributed a <a href="http://gcc.gnu.org">GCC</a> <a - href="http://gcc.gnu.org/java/">front-end for Java</a> that can take - Java sources or Java byte codes and generate native executables; <a - href="http://www.google.com/search?q=transvirtual">Transvirtual</a> - implemented - <a href="http://www.kaffe.org">Kaffe</a> a JIT engine for Java; - Intel also has a Java VM called <a - href="http://www.intel.com/research/mrl/orp/">ORP</a>. - - The JVM is not designed to be a general purpose virtual machine. - The Common Intermediate Language (CIL), on the other hand, is - designed to be a target for a - wide variety of programming languages, and has a set of rules - designed to be optimal for JITers. - -Q: Could Java target the CLI? - -A: Yes, Java could target the CLI, Microsoft's J# compiler does that. - - The <a href="http://weblog.ikvm.net/">IKVM</a> project builds a - Java runtime that works on top of .NET and on top of Mono. IKVM is - essentially a JIT compiler that translates from JVM bytecodes into - CIL instructions, and then lets the native JIT engine take over. - -Q: Is it possible to write a JVM byte code to CIL converter? - -A: Yes, this is what <a href="http://weblog.ikvm.net">IKVM</a> does. - -Q: Could mono become a hybrid CIL/java platform? - -A: This can be obtained easily with IKVM. - -Q: Do you plan to implement a Javascript compiler? - -A: Yes. The beginnings of the JScript compiler can be found on CVS. - Cesar coordinates this effort. - -Q: Can Mono or .NET share system classes (loaded from mscore.dll and other - libs) or will it behave like Sun's Java VM? - -A: What you can do with mono is to load different applications in their own - application domain: this is a feature of the CLR that allows sandboxing - applications inside a single process space. This is usualy exploited to - compartmentalize different parts of the same app, but it can also be - effectively used to reduce the startup and memory overhead. - Using different appdomains the runtime representation of types and - methods is shared across applications. - -<a name="extending"></a> -** Extending Mono - -Q: Would you allow other classes other than those in the - specification? - -A: Yes. The Microsoft class collection is very big, but it is by no - means complete. It would be nice to have a port of `Camel' (the - Mail API used by Evolution inspired by Java Mail) for Mono - applications. - - You might also want to look into implementing CORBA for Mono. Not - only because it would be useful, but because it sounds like a fun - thing to do, given the fact that the CLI is such a type rich - system. - - For more information on extending Mono, see our <a - href="ideas.html">ideas</a> page. - -Q: Do you plan to Embrace and Extend .NET? - -A: Embracing a good technology is good. Extending technologies in - incompatible ways is bad for the users, so we do not plan on - making incompatible changes to the technologies. - - If you have innovative ideas, and want to create new classes, we - encourage you to make those classes operate correctly well in both - Mono and .NET. - - Today Mono ships with a number of extra libraries that were - developed either by members of the Mono community, or other - groups. - - In some cases, we have found the bits from Microsoft to be - incomplete, but we avoid breaking the API, instead we expose the - missing functionality in new assemblies (See Mono.Security and - System.Security). - -Q: Is there any way I can develop the class libraries using Linux yet? - -A: Yes. Mono has been selfhosting since March 2002. - -Q: Is there any way I can install a known working copy of mono in /usr, - and an experimental copy somewhere else, and have both copies use - their own libraries? (I'm still not very good at library paths in - Linux) - -A: Yes. Just use two installation prefixes. - - -<a name="portability"></a> -** Portability - -Q: Will Mono only work on Linux? - -A: Currently, we are doing our work on Linux-based systems and - Windows. We do not expect many Linux-isms in the code, so it - should be easy to port Mono to other UNIX variants. - -Q: What about Mono on non Linux-based systems? - -A: Our main intention at Ximian is to be able to develop GNOME - applications with Mono, but if you are interested in providing a - port of the Winforms classes to other platforms (frame buffer or - MacOS X for example), we would gladly integrate them, as long - they are under an open source license. - -Q: What operating systems/CPUs do you support - -A: Mono currently runs on Linux, Windows, Solaris, FreeBSD, HP-UX and - MacOS X. - - There is a JIT engine available for x86 processors that can - generate code and optimizations tailored for a particular CPU. - - Interpreters exist for the SPARC v8, SPARC v9, Itanium, HP-PA, - PowerPC and StrongARM CPUs. - -Q: Does Mono run on Windows? - -A: Yes. You can get pre-compiled - binaries from <a href="http://www.go-mono.com/download.html">http://www.go-mono.com/download.html</a> - -Q: Does Mono run on Linux? - -A: Yes. You can get pre-compiled - binaries from <a href="http://www.go-mono.com/download.html">http://www.go-mono.com/download.html</a> - -Q: Will I require Cygwin to run mono? - -A: No. Cygwin is only required to build Mono. - -Q: Will Mono depend on GNOME? - -A: It will depend only if you are using a particular assembly (for - example, for doing GUI applications). If you are just interested - in Mono for implementing a `Hello World Enterprise P2P Web - Service', you will not need any GNOME components. - -Q: Do you plan to port Rhino to C#?. - -A: Eto Demerzal has started a Rhino port to C#. - -Q: Has anyone succeeded in building a Mac version of the C# environment. - If so can you explain how? - -A: You could try to check with the Darwin people, or the Fink people. - Mono/C# is self hosting on Linux/PPC which is the hard part, so it - should be relatively simple to get it to work on MacOS - -<a name="reuse"></a> -** Reusing Existing Code - -Q: What projects will you reuse or build upon? - -A: We want to get Mono in the hands of programmers soon. We are - interested in reusing existing open source software. - -Q: Will I be able to use Microsoft SQL Server 2000 or will I need to switch - to a specific Open Source Database. Will I need to recode? - -A: There is no need to rewrite your code as long as you keep using - Microsoft SQL Server. If you want to use an open source database, - you might need to make changes to your code. - -Q: What do I need to watch out for when programming in VB.NET so that I'm - sure to be able to run those apps on Linux? - -A: Not making any P/Invoke or DLL calls should and not using anything in - the Microsoft.* namespaces should suffice. Also do not use any - Methods/Classes marked as "This type/method supports the .NET Framework - infrastructure and is not intended to be used directly from your code." - even if you know what these classes/methods do. - -Q: Will built-in reporting be supported for crystal reports? This is a - heavily used part of our system. - -A: . Crystal Reports are propriety. Someone may try to emulate - the behavior, but no-one has yet volunteered. - -Q: Who about writing to the registry? As I understand it, Linux does not have - a counterpart to the registry. Should I avoid relying on that feature? - -A: Try to avoid it. Although there would be a emulation for registry in - Mono too. GNOME does have a registry like mechanism for configuration. But - Even if gnome has a configuration system similar to the registry, the keys - will not be equal, so you will probably end up having to do some runtime - detection, and depending on this load an assembly that has your - platform-specific hacks. - -Q: System.Data.SqlClient with FreeTDS, will you port parts of these to C# and - use them? - -A: This has been done. - -<a name="gcc"></a> -** Mono and GCC - -Q: Are you working on a GCC front-end to C#? A GCC back-end that will - generate CIL images? - -A: We would love to see a GCC modification that would generate CIL - images, but there is nothing at this point. - -Q: What about making a front-end to GCC that takes CIL images and - generates native code? - -A: There is no active work on this area, but Mono already provides - pre-compilation services (Ahead-of-Time compilation). - -Q: But would this work around the GPL in the GCC compiler and allow - people to work on non-free front-ends? - -A: People can already do this by targeting the JVM byte codes (there - are about 130 compilers for various languages that target the JVM). - -<a name="performance"></a> -** Performance - -Q: How fast will Mono be? - -A: We can not predict the future, but a conservative estimate is that - it would be at least `as fast as other JIT engines'. - - Mono's JIT engine has been recently re-architected, and it provides - many new features, and layers suitable for optimization. It is - relatively easy to add new optimizations to Mono. - - The CIL has some advantages over the Java byte code: it is really - an intermediate representation and there are a number of - restrictions on how you can emit CIL code that simplify creating - better JIT engines. - - For example, on the CIL, the stack is not really an abstraction - available for the code generator to use at will. Rather, it is a - way of creating a postfix representation of the parsed tree. At - any given call point or return point, the contents of the stack are - expected to contain the same object types independently of how the - instruction was reached. - -<a name="licensing"></a> -** Licensing - -Q: Will I be able to write proprietary applications that run with - Mono? - -A: Yes. The licensing scheme is planned to allow proprietary - developers to write applications with Mono. - -Q: What license or licenses are you using for the Mono Project? - -A: The C# Compiler is released under the terms of the <a - href="http://www.opensource.org/licenses/gpl-license.html">GNU GPL</a>. The runtime - libraries are under the <a - href="http://www.opensource.org/licenses/lgpl-license.html">GNU - Library GPL</a>. And the class libraries are released - under the terms of the <a - href="http://www.opensource.org/licenses/mit-license.html">MIT X11</a> - license. - - The Mono runtime and the Mono C# Compiler are also available under - a proprietary license for those who can not use the LGPL and the - GPL in their code. - - For licensing details, contact <a - href="mailto:mono-licensing@ximian.com">mono-licensing@ximian.com</a> - - -Q: I would like to contribute code to Mono under a particular - license. What licenses will you accept? - -A: We will have to evaluate the licenses for compatibility first, - but as a general rule, we will accept the code under the same - terms of the "container" module. - -<a name="patents"></a> -** Patents - -Q: Could patents be used to completely disable Mono (either submarine - patents filed now, or changes made by Microsoft specifically to - create patent problems)? - -A: First some background information. - - The .NET Framework is divided in two parts: the ECMA/ISO covered - technologies and the other technologies developed on top of it like - ADO.NET, ASP.NET and Windows.Forms. - - Mono implements the ECMA/ISO covered parts, as well as being a - project that aims to implement the higher level blocks like - ASP.NET, ADO.NET and Windows.Forms. - - The Mono project has gone beyond both of those components and has - developed and integrated third party class libraries, the most - important being: Debugging APIs, integration with the Gnome - platform (Accessibility, Pango rendering, Gdk/Gtk, Glade, GnomeUI), - Mozilla, OpenGL, extensive database support (Microsoft only - supports a couple of providers out of the box, while Mono has - support for 11 different providers), our POSIX integration - libraries and finally the embedded API (used to add scripting to - applications and host the CLI, or for example as an embedded - runtime in Apache). - - The core of the .NET Framework, and what has been patented by - Microsoft falls under the ECMA/ISO submission. Jim Miller at - Microsoft has made a statement on the patents covering ISO/ECMA, - (he is one of the inventors listed in the patent): <a - href="https://mailserver.di.unipi.it/pipermail/dotnet-sscli/msg00218.html">here</a>. - - Basically a grant is given to anyone who want to implement those - components for free and for any purpose. - - The controversial elements are the ASP.NET, ADO.NET and - Windows.Forms subsets. Those are convenient for people who need - full compatibility with the Windows platform, but are not required - for the open source Mono platform, nor integration with today's - Mono's rich support of Linux. - - The Mono strategy for dealing with these technologies is as - follows: (1) work around the patent by using a different - implementation technique that retains the API, but changes the - mechanism; if that is not possible, we would (2) remove the pieces - of code that were covered by those patents, and also (3) find prior - art that would render the patent useless. - - Not providing a patented capability would weaken the - interoperability, but it would still provide the free software / - open source software community with good development tools, which - is the primary reason for developing Mono. - - The patents do not apply in countries where software patents are - not allowed. - - For Linux server and desktop development, we only need the ECMA - components, and things that we have developed (like Gtk#) or Apache - integration. - -Q: Is Mono only an implementation of the .NET Framework? - -A: Mono implements both the .NET Framework, as well as plenty of class - libraries that are either Unix specific, <a - href="http://www.gnome.org">Gnome</a> specific, or that are not - part of the .NET Framework but people find useful. - - The following map shows the relationship between the components: - - <img src="http://primates.ximian.com/~miguel/tmp/map.png"> - -<a name="obfuscation"></a> -** Obfuscation - -Q: Are there any obfuscation programs for Mono/Linux? - -A: We are not aware of these, but some from Windows might work. - -Q: What could I do to avoid people decompiling my program? - -A: You can use the bundle functionality in Mono. - - This would bundle your binary inside a Mono runtime instance, so - you distribute a single executable that contains the code inside. - Notice that for this to work and be practical, you need to get a - commercial license to the Mono runtime. - - The reason is that the bundle functionality is covered by the LGPL: - so you would have to distribute your assemblies separatedly to allow - developers to relink mono which would defeat the purpose of bundling - for obscuring your code. - - It is not impossible to break, just like any other obfuscators. - - That being said, value these days does not lie in particular - tiny routines, but lies in the large body of work, and if someone - steals your code, you are likely going to find out anyways. - -Q: Any other option? - -A: You could precompile with --aot your code, then disassemble the - original .exe, and remove all the code, then re-assemble and ship - both the vessel .exe and the precompiled code. - - This is not a supported configuration of Mono, and you would be - on your own in terms of dealing with bugs and problems here. - - Get the companies that build the obfuscation packages to read - the ECMA spec and fix the bugs in their products that generate - non-standard binaries (or, if they expose a bug in mono, please - file a report in our bugzilla). - - Pay Ximian/Novell to spend the development time needed to get mono - to support the broken binaries that some of the obfuscation - packages generate (or contribute that support). - -<a name="etc"></a> -** Miscellaneous Questions - -Q: You say that the CLI allows multiple languages to execute on the - same environment. Isn't this the purpose of CORBA? - -A: The key difference between CORBA (and COM) and the CLI is that the - CLI allows "data-level interoperability" because every - language/component uses the same data layout and memory management. - - This means you can operate directly upon the data types that someone - else provides, without having to go via their interfaces. It also - means you don't have to "marshal" (convert) parameters (data - layouts are the same, so you can just pass components directly) and - you don't have to worry about memory management, because all - languages/components share the same garbage collector and address - space. This means much less copying and no need for reference - counting. - -Q: Will you support COM? - -A: The runtime will support XPCOM on Unix systems and COM on Windows. - Most of the code for dynamic trampolines exists already. - -Q: Will Ximian offer certifications on Mono or related technologies?. - -A: It's possible. But there is no plan about this. So the short answer is no. - -Q: How can I report a bug? - -A: The best thing is to track down the bug and provide a simple test - to reproduce the bug. You can then add the bug to our bug tracking - system. You can use our <a href="bugs.html">Bug Form</a> to enter - bugs for the appropriate component. - - Please provide information about what version of mono you're using - and any relevant details to be able to reproduce the bug. Note that - bugs reported on the mailing-list may be easily forgotten, so it's - better to file them in the <a href="http://bugzilla.ximian.com/enter_bug.cgi">bug tracking system</a>. - -Q: Does mcs support the same command line options as the MS C# - compiler? - -A: The Mono C# compiler now supports the same command line - arguments as the Microsoft C# compiler does. - -Q: How about getting searchable archives on lists.ximian.com? - -A: You can perform a search on the mono-related mailing lists - <a href="http://www.go-mono.com/mailing-lists.html">here</a>. - -Q: When using mono from cvs or from a snapshot, I get an error messaage - saying that Mono and the runtime are out of sync. How do I fix that? - -A: If you use mono from cvs, you need to be prepared for changes in the - runtime internals. This means that you should keep a working setup - before blindling updating (a working setup may just be the last released - tarball or a recent binary snapshot). - Usually, compiling corlib with mcs before recompiling the C runtime does - the right thing (but occasionally you may need to do it the other - way around). - -Q: Why are you going for a GtkHtml implementation? - -A: GtkHTML is just a lightweight HTML rendering engine that does not - support CSS, so we need it to look decent for those of us that will - be using the documentation in our day-to-day work on Linux. The - Web-based interfaces lack the agility that you get from a native GUI - tool to browse your documentation. Probably later on, we will write - scripts and generate a full documentation set that is web-browsable, - but we need a command-line and GUI tools that we can use natively on - Linux when disconnected from the Web (and that has better - interactions than a web page). - -Q: Is there a command-line tool that allows me to access .NET interactively? - -A: There are several but one that is free software and uses MCS is the one - Dennis Lu from Rice University is working on; a REPL C# interpreter. - -Q: Is it possible to use Visual C++ with Mono?. - -A: It's possible to run VC++ generated apps under Mono, but we do not - provide a Manager C++ compiler ourselves. - -Q: Does Mono support generics?. - -A: Mono doesn't support generics currently but a lot of work is being - done towards it. - -<a name="problems"></a> -** Mono Common Problems - - If you are having problems compiling or running Mono software - or if you think that you found a bug, etc. Please visit the - <a href="http://monoevo.sf.net/mono-common-problems.html">Mono Common Problems</a> document and try there. - -** Credits - - The FAQ contains material contributed by Miguel de Icaza, Jaime Anguiano, Lluis Sánchez. diff --git a/doc/firebird b/doc/firebird deleted file mode 100755 index fd193c4fdc0..00000000000 --- a/doc/firebird +++ /dev/null @@ -1,138 +0,0 @@ -* Firebird and Interbase Data Provider - -<ul> - <li>ADO.NET Data Provider for Firebird and Interbase databases</li> - - <li>Does not exist in Mono, but is a separate project</li> - - <li>The <a href="http://firebird.sourceforge.net/index.php">Firebird Relational Database</a> is - is an independent project which uses source code based on the Interbase source code released - by Borland under the Interbase Public License</li> - - <li>Both the Firebird Relational Database and the Firebird .NET Data Provider can be - downloaded from <a href="http://sourceforge.net/projects/firebird/">here</a></li> - - <li>The Firebird .NET Data provider has been made - available by Carlos Guzmán Álvarez (aka "Carlos G.A."), who has also made a - number of contributions to the OdbcJdbc code</li> - - <li>Bugs with Mono or the data provider should be reported - in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you - do not have Bugzilla user account, it is free - and easy to create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> - -</ul> - -** Current Status - -<ul> - <li>Current stable version: 1.5</li> - - <li>Current developement version: 1.6</li> - - <li>The new data provider/driver is written in C# and provides a high-performance native - implementation of the GDS32/API functions. This means that .Net developers - will be able to access Firebird databases without the need of Firebird - client install</li> - - <li>In support of the new module, a new mailing list - <a href="http://lists.sourceforge.net/lists/listinfo/firebird-net-provider">firebird-net-provider</a> has - been created. Please use this list for any - questions that you may have about the provider</li> -</ul> - -** New features & enhancements in 1.6 version - -<ul> - <li>Firebird Embedded Server support.</li> - <li>New FbScript class implementation.</li> -</ul> - -** Testing - -<ul> - - <li>Need a working mono and mcs</li> - - <li>Need access to a Firebird Relational Database or you can download - it from <a href="http://firebird.sourceforge.net">here</a></li> - - <li>Get the Firebird .NET data provider from here as - <a href="http://lists.sourceforge.net/lists/listinfo/firebird-net-provider">firebird-net-provider</a>. Make - sure the Firebird .NET data provider binary assembly FirebirdSql.Data.Firebird.dll is - installed in the same place as the mono class libraries.</li> - - <li>Has a ConnectionString format: -<pre> - "Database=databasefile.gdb;User=user;Password=pass;Dialect=3;Server=hostname" -</pre> - - </li> - - <li>C# Example: - -<pre> - using System; - using System.Data; - using FirebirdSql.Data.Firebird; - - public class Test - { - public static void Main(string[] args) - { - string connectionString = - "Database=C:\\PROGRAM FILES\\FIREBIRD\\EXAMPLES\\EMPLOYEE.GDB;" + - "User=SYSDBA;" + - "Password=masterkey;" + - "Dialect=3;" + - "Server=localhost"; - - IDbConnection dbcon = new FbConnection(connectionString); - dbcon.Open(); - IDbCommand dbcmd = dbcon.CreateCommand(); - string sql = "SELECT * FROM employee"; - dbcmd.CommandText = sql; - IDataReader reader = dbcmd.ExecuteReader(); - while(reader.Read()) { - object dataValue = reader.GetValue(0); - string sValue = dataValue.ToString(); - Console.WriteLine("Value: " + sValue); - } - // clean up - reader.Close(); - reader = null; - dbcmd.Dispose(); - dbcmd = null; - dbcon.Close(); - dbcon = null; - } - } -</pre> - </li> - <li>Building C# Example: - <ul> - <li>Save the example to a file, such as, TestExample.cs</li> - <li>Build on Linux: -<pre> - mcs TestExample.cs -r System.Data.dll \ - -r FirebirdSql.Data.Firebird.dll -</pre> - </li> - <li>Build on Windows via Cygwin: -<pre> - mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \ - TestExample.cs \ - -lib:C:/cygwin/home/MyHome/mono/install/lib \ - -r System.Data.dll -r FirebirdSql.Data.Firebird.dll -</pre> - </li> - </ul> - </li> - <li>Running the Example: -<pre> -mono TestExample.exe -</pre> -</li> - -</ul> - diff --git a/doc/forge b/doc/forge deleted file mode 100644 index 3f85b3dc897..00000000000 --- a/doc/forge +++ /dev/null @@ -1,72 +0,0 @@ -* Novell Forge - - Novell Forge (<a - href="http://forge.novell.com/">http://forge.novell.com/</a>) - is a website managed by Novell to promote the development of - open source applications and solutions. Novell Forge features - communities, akin to foundries on SourceForge.net, which exist - for the purpose of facilitating collaboration and information - exchange about certain technologies or solutions. At Miguel's - request, we have created a Mono community on Novell Forge that - is administered by Miguel. This community, located at - http://forge.novell.com/modules/xfmod/community/?monocomm, - provides a resource for interaction and collaboration on Mono - and associated solutions. Each community has the ability to - provide forums, mailing lists, FAQs, news, documentation, - surveys, sample code, and links to related applications. The - Mono community has been created for anyone interested in Mono - to use, and the exact set of features offered at the community - is determined by Miguel. - - Any individual or group that wishes to provide Mono-based solutions in - an open source fashion is encouraged to host their solution on the - Novell Forge website, free of charge. Once the project is hosted on - Novell Forge, you can send Miguel an e-mail requesting that your project - be associated with the Mono project. This promotes a symbiotic - relationship where the growth of Mono applications helps to improve - Mono, and the growth of Mono likewise helps to increase the visibility - and usefulness of your applications. - -* Creating an Account - - A Novell Forge account is required in order to create a project on - Novell Forge as well as for certain levels of participation within a - community like the Mono community. In order to create an account, do - the following: - - <ul> - - <li>Go to http://forge.novell.com/ and click on the "Register" link. - - <li>You will be redirected to the Novell Login page. This one resource - is used by all of Novell's websites that require authentication, so if - you already have a Novell login you may use that login here. Otherwise, - simply create a login account. - - <li>You will be redirected back to the Novell Forge page. Click on the - "create my Novell Forge account" link, near the top left of the page. - - <li>A form should be filled in with the correct information for you. - If you like, choose an avatar and then submit the form. - - <li>Confirm the creation of your account. - </ul> - - - You should be good to go at this point. Now, to create a project, - simply choose the "Start New Project" link from the left menu and follow - the steps. - - Novell Forge offers a limited set of context-sensitive help links and a - full help section. If you have trouble, go to the help section at - http://forge.novell.com/modules/xfmod/help/about.php. - - -* Important Links: - - Novell Forge - <a href="http://forge.novell.com/">http://forge.novell.com/</a> - - Mono Community - <a href="http://forge.novell.com/modules/xfmod/community/?monocomm">http://forge.novell.com/modules/xfmod/community/?monocomm</a> - - Novell Forge Help - <a href="http://forge.novell.com/modules/xfmod/help/about.php">http://forge.novell.com/modules/xfmod/help/about.php</a> - diff --git a/doc/gcc-frontend b/doc/gcc-frontend deleted file mode 100644 index c892749c036..00000000000 --- a/doc/gcc-frontend +++ /dev/null @@ -1,7 +0,0 @@ -* The GCC front-end - - Jeremy Singer has developed a .NET backend for GCC, his - research work is available <a - href="http://www.cl.cam.ac.uk/~jds31/research/gccnet/">here</a>. - - diff --git a/doc/gtk-sharp b/doc/gtk-sharp deleted file mode 100644 index 1630277d618..00000000000 --- a/doc/gtk-sharp +++ /dev/null @@ -1,157 +0,0 @@ -* Gtk# - - <a href="http://gtk-sharp.sourceforge.net">Gtk#</a> (Gtk - sharp) is a set of C# language bindings for the - <a href="http://www.gtk.org">Gtk+</a> toolkit and other - libraries that are part of the - <a href="http://www.gnome.org">GNOME</a> platform . - -* Wiki - - There is a <a - href="http://www.nullenvoid.com/gtksharp/wiki/index.php/">Gtk# - Wiki</a>. You are encouraged to contribute to it. - -** API of Gtk# - - The Gtk# API is documented using the ECMA XML document format, you can read - more about it <a href="documentation.html">here</a>. You can - also use the MonoDoc tool that ships with Gtk# documentation. - -** Where to learn more. - - Visit the official site for the <a href="http://gtk-sharp.sourceforge.net">Gtk# Project</a>. - The <a href="http://www.go-mono.org/faq.html">Mono FAQ</a> has some useful - information too. - -** GTK# On Linux - -<p>Where to get distributions of GTK# for Linux: - <ul> - <li><a href="http://gtk-sharp.sourceforge.net">RPMs</a></li> - <li><a href="http://www.debianplanet.org/mono/">Debs</a></li> - </ul> - -<p>Buidling on Linux: - -<ul> - <li>Get GTK# source from <a href="http://gtk-sharp.sourceforge.net">Gtk# Project</a>.</li> - <li>run ./autogen.sh --prefix=my_mono_installation_prefix</li> - <li>make</li> - <li>make install</li> -</ul> - -** GTK# On Windows - -<p>Look at our Wiki for installation instructions <a href="http://www.nullenvoid.com/gtksharp/wiki/index.php/InstallingBeginnersGuide">here</a> - - -<p>If you want to build GTK# yourself on Windows:
-
-<p>To build gtk# under windows, you will need the following:
-
-<ul>
- <li>cygwin from <a href="http://www.cygwin.com/">here</a> When installing Cygwin via setup.exe,
- by default binutils and other tools do not get installed; you have to make
- sure to select these items. Just make
- sure Base and Development are set to Install.</li>
- <li>Mono 0.17 or later from <a href="http://www.go-mono.com/download.html">here</a>
- You can use Windows Setup Wizard (NT/2000/XP).</li>
- <li>GTK+ 2.0 (and dependencies). You can obtain gtk+ 2.0 by either of the
-following:
- <ul>
- <li>You can get a Windows Installer at:
- <a href="http://www.dropline.net/jade/download.html">here</a> </li>
- <li>or get the separate binary and dev/lib packages at
- at <a href="http://www.gimp.org/~tml/gimp/win32/downloads.html">here</a> </li>
- <li>or binary package from Dev-C++ site <a href="http://www.bloodshed.net/dev/packages/gtk.html">here</a> </li>
- <li>or get Gtk4Win <a href="http://wingtk.sourceforge.net/index.html">here</a> </li>
- <li>or the source at <a href="http://www.gtk.org/">here</a> </li>
- </ul>
- </li>
- <li>binary distriubtion of a current web browser
- like Internet Explorer 4.0, Mozilla 1.0, or Netscape 7.0 which
- includes things like msvcrt.dll.</li>
- <li>Microsoft .NET Framework at
- <a href="http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/000/976/msdncompositedoc.xml&frame=true">here</a> </li>
-
-
-<p>Environment Variables to set:
-<ul>
-<li>PATH - set to your mono installation bin and lib path.
- For example, my mono installation prefix is:
-<pre>
-F:/cygwin/home/DanielMorgan/mono/install
-</pre>
- <p>So, I would set my PATH in the Windows Control Panel as:
-<pre>
-F:/cygwin/home/DanielMorgan/mono/install/bin;F:/cygwin/home/DanielMorgan/mono/install/lib</li>
-</pre>
-</li>
-<li>LD_LIBRARY_PATH - set to your mono installation lib path</li>
-<li>PKG_CONFIG_PATH - set to your mono installation lib/pkgconfig path, such
- as,
-<pre>
- F:/cygwin/home/DanielMorgan/mono/install/lib/pkgconfig</li>
-</pre>
-
- <p>If you got the gtk-sharp source, cd to the gtk-sharp directory, type:
-<pre>
- ./autogen.sh --prefix=~/mono/install
-</pre>
-
- <p>Set your --prefix= to whatever your mono installation prefix is located.
- This will take awhile to go through the ./autogen.sh and ./configure...
-
- <p>After that it finishes succesfully, you run make with the makefile.win32
- like:
-<pre>
- make -f makefile.win32
-</pre>
-
- <p>After that finishes succesfully, you can copy to your mono installation lib
- path like:
-<pre>
- cp */*.dll ~/mono/install/lib
-</pre>
-</ul>
-
-<p>The pkg-config files for
-gtk+ 2.0 and dependencies will need to be set correctly if they haven't
-already been.
-
-<p>Look in your mono installation/lib/pkgconfig, such as,
-<pre>
-F:/cygwin/home/DanielMorgan/mono/install/lib/pkgconfig
-</pre>
-
-<p>You will find files like: gtk+-2.0.pc
-
-<p>Edit the line that says
-
-<pre>
- prefix=something
-</pre>
-
-<p>And set it to your mono installation prefix, such as,
-
-<pre>
- prefix=F:/cygwin/home/DanielMorgan/mono/install
-</pre>
-
-<p>Do this for all the .pc files in that directory. If there are not any, then
-you will need to create them. Or get them from somewhere like the dev
-packages at
-<a href="http://www.gimp.org/~tml/gimp/win32/downloads.html">here</a>
-
-** GTK# On FreeBSD
-
- TODO. Any volunteers?
-
-** GTK# On Solaris
-
- TODO. Any volunteers?
-
-** GTK# On AIX
-
- TODO. Any volunteers?
diff --git a/doc/hackers b/doc/hackers deleted file mode 100644 index 610c6a11fde..00000000000 --- a/doc/hackers +++ /dev/null @@ -1,39 +0,0 @@ -* Mono Hackers Hall Of Fame - -Without the help, the skills and the time of many passionate developers outside of -the Ximian Mono team, Mono would not be where it is today. - -Many of them do it for fun, some do it because they really want a nice CLR they -can hack on, some do it because they need a working solution to some development -issues and mono is the ideal tool for the job. - -Some of them may start contributing because they want a mention in the -<b>Mono Hackers Hall Of Fame</b>! Whatever the cause, join us in a big<br> -<h1 align="center">Thank you!</h1> - -* Mono Hackers - -** Zoltan Varga - -Zoltan has contributed significantly to Mono, with bug reports and bug -fixes as well as pushing the envelope of the things that can be done in -and with the mono runtime: the gcc-based ngen compiler, code coverage -and more recently his work with Reflection.Emit that got mono to the -point of running the IKVM Java virtual machine. - -** Sergey Chaban - -Sergey has been a long time contributor to the project, from the early -work on the class libraries that were critical to Mono's origin: every -time you use a Hashtable in Mono, it runs Sergey's code, to the -low-level optimizations on the JIT engine and to his work on ILASM and -the PEToolkit. And countless other things. - -** Nick Drochak - -The first, deserved, entry in the <b>Mono Hackers Hall Of Fame</b> is for -Nick Drochak, who joined us in the first days of Mono and built the testing -infrastructure for the C# assemblies, fixed tons of bugs and even adventured -himself in the lands of the C runtime. His work is invaluable for keeping -Mono on the right track through the daily changes in the codebase. - diff --git a/doc/ibmdb2 b/doc/ibmdb2 deleted file mode 100755 index 0e395fffd38..00000000000 --- a/doc/ibmdb2 +++ /dev/null @@ -1,157 +0,0 @@ -* IBM DB2 Data Provider -<ul> - <li>ADO.NET Data Provider for <a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a></li> - - <li>Exists in namespace DB2ClientCS and assembly Mono.Data.DB2Client</li> - - <li>The source code exists at mcs/class/Mono.Data.DB2Client</li> - - <li>Requires the Call Level Interface to IBM DB2 shared library. This - is db2cli.dll on Windows. The IBM DB2 CLI API is very similar to the ODBC API. If - you take a look at Mono's <a href="http://www.go-mono.com/odbc.html">System.Data.Odbc</a> ODBC provider, you will see the - DllImport's have similiar function names.</li> - - <li>IBM DB2 Provider created by Christopher Bockner.</li> - - <li>Bugs with Mono or the data provider should be reported - in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you - do not have Bugzilla user account, it is free - and easy to - create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> - -</ul> - -** Current Status - -<ul> - <li>Compiles on Windows and Linux. Works on Windows. Still needs to be tested on Linux.</li> - - <li>Able to connect to IBM DB2</li> - - <li>Able to execute DML, such as, CREATE TABLE via ExecuteNonQuery()</li> - - <li>Christopher says it can retrieve data via the DB2ClientDataReader</li> - -</ul> - -** Action Plan - -<ul> - <li>Still needs work to get it to retrieve data via ExecuteReader() and - use the data reader to read data.</li> - -</ul> - -** Testing - -In order to test. -<ul> - <li>Have working mono and mcs setup</li> - - <li>Have access to an IBM DB2 database. If you do not have access, download the - <a href="http://www-306.ibm.com/software/data/db2/">IBM DB2</a> software. There - are versions for Windows, Linux, AIX, and Sun Solaris.</li> - - <li>Make sure the assembly Mono.Data.DB2Client.dll was built and installed - where the other class libraries are installed.</li> - - <li>If you do not have the source to mcs, get the source from - <a href="http://www.go-mono.com/download.html">here</a></li> - - <li>Has a ConnectionString format like ODBC</li> - - <li>Here is a ConnectionString format if you have a DSN setup: -<pre> - "DSN=dataSetName;UID=myuserid;PWD=mypassword" -</pre> - </li> - - <li>Here is a ConnectionString format if you do not have a DSN (have not - gotten this to work though, so, I am open to suggestions): -<pre> - "DRIVER={DB2 Driver};SERVER=localhost;DATABASE=test;UID=myuserid;PASSWORD=mypassword" -</pre> - </li> - - <li>In mcs/class/Mono.Data.DB2Client/Test/DBConnTest, you will find - a DBConnTest.cs.</li> - - <li>To build DBConnTest: - <ul> - <li>On Unix:</li> -<pre> -mcs DBConnTest.cs -r System.Data.dll -r Mono.Data.DB2Client.dll -</pre> - </li> - <li>On Windows via Cygwin: -<pre> -mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe DBConnTest.cs \ - -lib:C:/cygwin/home/MyHome/mono/install/lib \ - -r System.Data.dll -r Mono.Data.DB2Client.dll -</pre> - </li> - <li>To run it on mono: -<pre> -mono DBConnTest.exe database userid password -</pre> - </li> - </ul> - </li> - - <li>C# Example: -<pre> - using System; - using System.Data; - using Mono.Data.DB2Client; - - public class Test - { - public static void Main(string[] args) - { - string connectionString = - "DSN=sample;UID=db2admin;PWD=mypass"; - IDbConnection dbcon = new DB2ClientConnection(connectionString); - dbcon.Open(); - IDbCommand dbcmd = dbcon.CreateCommand(); - string sql = - "CREATE TABLE mono_db2_test1 ( " +
- " testid varchar(2), " +
- " testdesc varchar(16) " +
- ")"; - dbcmd.CommandText = sql; - dbcmd.ExecuteNonQuery(); - dbcmd.Dispose(); - dbcmd = null; - dbcon.Close(); - dbcon = null; - } - } -</pre> - </li> - <li>Building C# Example: - <ul> - <li>Save the example to a file, such as, TestExample.cs</li> - <li>Build on Linux: -<pre> - mcs TestExample.cs -r System.Data.dll \ - -r Mono.Data.DB2Client.dll -</pre> - </li> - <li>Build on Windows via Cygwin: -<pre> - mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \ - TestExample.cs \ - -lib:C:/cygwin/home/MyHome/mono/install/lib \ - -r System.Data.dll -r Mono.Data.DB2Client.dll -</pre> - </li> - </ul> - </li> - <li>Running the Example: -<pre> -mono TestExample.exe -</pre> - </li> - -</ul> - diff --git a/doc/ideas b/doc/ideas deleted file mode 100644 index 83e4eb3a1c5..00000000000 --- a/doc/ideas +++ /dev/null @@ -1,71 +0,0 @@ -* Ideas - - There are many pending classes that need to be implemented. Those have - the highest impact in the Mono project: the sooner they are done, - the sooner we can start using this platform to create new and - exciting applications. - - That being said, if you are not very excited about working on class - libraries, here is a list of other related projects or tools that might - be useful to the Mono project. - - Here are a few ideas of tools, classes and projects that you - could start. More are forthcoming. - -<a name="runtime"> -** Runtime - -<a name="classes"> -** Classes - - <ul> - * Implement a JXTA protocol implementation: - <a href="http://www.jxta.org">http://www.jxta.org</a> - - * Implement a Mail API, similar to Camel or JavaMail (Camel has - significant architecture features that are required on a real - mailer). - - You can check the current C - <a href="http://cvs.gnome.org/bonsai/rview.cgi?dir=evolution%2Fcamel"> - Camel implementation</a>. - - Such an implementation could be used both with - Microsoft .NET and Mono. - - * Interfacing to Multimedia systems. You might want - to look into the Quicktime API. I know <a - href="mailto:vladimir@ximian.com">Vladimir</a> has - researched the problem before - - </ul> - -<a name="projects"> -** Projects - - This list of projects ideas is outdated - - * Once <a href="http://remoting-corba.sourceforge.net/">CORBA</a> is done, implement the Bonobo interfaces - to allow people to use Bonobo components in Mono and - Mono components with Bonobo. The best of both worlds! - - * A naming space for Mono. An object naming space is - a very powerful tool. Bonobo implements a moniker - system that is more powerful than the original - moniker concept that was pioneered by COM/OLE in the - Microsoft world. - - Our implementation builds on a concept, and we have - made it simpler, more powerful, more extensible and - a much better mechanism than the equivalent monikers - on Windows. - - Implementing Mono monikers would benefit both - Windows users using .NET and Mono users on Unix and - Windows. - - Here is <a - href="http://primates.ximian.com/~miguel/monikers.html">an - overview of the moniker system</a> in Bonobo. - - </ul> diff --git a/doc/index b/doc/index deleted file mode 100644 index 7749b93fb15..00000000000 --- a/doc/index +++ /dev/null @@ -1,195 +0,0 @@ -<link rel="alternate" type="application/rss+xml" title="RSS" href="index.rss"/> - - - <table align="right" border=1 padding=0 width=25%> - <tr> - <td colspan="2" bgcolor=lightgrey> - <b><center>Mono Status</center></b> - </td> - </tr> - <tr> - <td> - <b><a href="c-sharp.html">C# Compiler:</a></b> - </td> - <td> - Self hosting on Linux and .NET - </td> - </tr> - <tr> - <td> - <b>JIT:</b> - </td> - <td> - Works for Linux/x86 - </td> - </tr> - <tr> - <td> - <b>Interpreter:</b> - </td> - <td> - Works for - Linux/x86, Linux/PPC, S390, StrongARM, SPARC, HPPA, SPARC v9 - </td> - </tr> - <tr> - <td><b><a href="asp-net.html">ASP.NET</a></b></td> - <td>Webforms and WebServices working<br></td> - </tr> - <tr> - <td> - <b><a href="class-status.html">Classes</a></b> - </td> - <td> - All assemblies compile. - </td> - </tr> - <tr> - <td> - RSS feed: - </td> - <td> - <a href="index.rss"><img src="images/xml.gif"></a> - </td> - </tr> - <tr> - <td colspan="2" bgcolor=lightgrey> - <b><center>In the news</center></b> - </td> - </tr> - <tr> - <td> - <img src="images/2003osdirwinnerbadge.gif"> - </td> - <td> - <a href="http://osdir.com/Article198.phtml">Dec 19th, 2003</a>: Editor's Choice Award. - </td> - </tr> - <tr> - <td> - <img src="images/netmagazine.png"> - </td> - <td> - - <a href="http://www.ftponline.com/wss/2003_TE/magazine/columns/trends">May 31st, 2003</a>: CLI integration. - </td> - </tr> - <tr> - <td> - <img src="images/infoworld.png"> - </td> - <td> - <a href="http://www.infoworld.com/article/03/05/22/HNmono_1.html">May 22nd, 2003</a>: Mono 1.0 plans. - </td> - </tr> - <tr> - <td> - <img src="images/infoworld.png"> - </td> - <td> - <a href="http://www.infoworld.com/article/03/03/14/11stratdev_1.html">Mar 14th, 2003</a>: Whither Mono? - </td> - </tr> - <tr> - <td> - <img src="images/b2.png"> - </td> - <td> - <a href="http://www.infoworld.com/article/03/05/22/HNmono_1.html">Dec, 2002</a>: The Penguin takes flight. - </td> - </tr> - </table> - - -<p> - The Mono project is an open source effort sponsored by <a - href="http://novell.com">Novell</a> to create a free - implementation of the .NET Development Framework. -</p> - -<p> - Mono includes <a href="c-sharp.html">a compiler</a> for the - C# language, a <a href="runtime.html">Common Language - Runtime</a> (CLR) for the Common Language Infrastructure (CLI) and a - set of <a href="class-library.html">class libraries</a>. The - runtime can be <a href="embedded-api.html">embedded</a> into your - application. It implements both <a href="ado-net.html">ADO.NET</a> - and <a href="asp-net.html">ASP.NET</a>. -</p> -<p> - If you have questions about the project, read <a - href="rationale.html">the project launch statement</a> - or visit our list of <a href="faq.html">Frequently Asked - Questions</a>. -</p> - -<p> - For details on the project's future direction, read the - <a href="mono-roadmap.html">roadmap</a>, and <a - href="download.html">download</a> the latest software version. - You can also get a <a href="snapshots">snapshot</a> of our - current work, or <a - href="http://cvs.hispalinux.es/cgi-bin/cvsweb/?hidenonreadable=1&f=u&logsort=date&sortby=file&hideattic=1&cvsroot=mono">browse - the source tree.</a> -</p> -<p> - To participate in discussion and development, <a - href="mailing-lists.html">subscribe to our mailing lists</a>. - You can also visit the <a - href="http://www.gotmono.com/cgi-bin/yabb/YaBB.pl">forum</a> at <a - href="http://www.gotmono.com">GotMono</a> or the <a - href="http://www.nullenvoid.com/gtksharp/wiki">Gtk#</a> and - <a href="http://www.nullenvoid.com/mono/wiki">Mono - </a> Wikis. -</p> -<br> -<br> - -@item Feb 13, 2004: Mono 0.30.1 released - - We have released a small bug-fix release of Mono, the release - notes are available <a - href="archive/mono-0.30.1.html">here</a> and you can download - it from our <a href="download.html">download</a> page. - -@item Feb 13, 2004: Mono Performance Optimization - - We have a new document that describes some <a - href="performance.html">common tricks to improve the - performance</a> of your Mono or .NET application. These are a - summary of techniques that we employed to tune our own C# - compiler. - -@item Feb 2nd, 2004: Mono 0.30 has been released - - Check out the <a - href="http://www.go-mono.com/archive/mono-0.30.html">Release - notes</a> for details on Mono 0.30. Or go directly to our <a - href="download.html">download</a> section - -@item Jan 18th, 2004: LDAP class libraries in Mono tutorial. - - Sunil Kumar has written an <a - href="http://www.novell.com/coolsolutions/cooldev/features/a_net_cplus_ldap_library_cdev.html">introduction - to Novell.LDAP</a> class libraries, which are part of Mono. - -@item Jan 13th, 2004: MonoDoc 0.9 released. - - A new edition of MonoDoc, the Mono Documentation Browser, has been released, available in source form from: - <a href="archive/monodoc-0.9.tar.gz">archive/monodoc-0.9.tar.gz</a> - -@item Jan 11th, 2004: Call for Stories - - If you have a success story about using Mono or one of the Mono - components in any way, we want to hear about you. Please mail - your details to miguel@ximian.com - -@item Jan 4th, 2004: Windows Installer for Mono 0.29 - - There is a <a href="archive/mono-0.29-win32-1.exe">Windows - Installer for Mono 0.29</a> available now. - -<h2>Older News</h2> - - Click <a href="oldnews.html">here</a> to see older news. - diff --git a/doc/java b/doc/java deleted file mode 100755 index adcd888f1be..00000000000 --- a/doc/java +++ /dev/null @@ -1,66 +0,0 @@ -* Java - - <b>This is an outline on how to support Java, actual - implementations of ideas like this can be found <a href="http://radio.weblogs.com/0109845/">here</a></b> - - - It would be interesting to support the Java language as part - of the Mono project. - - You have to think of Java as various pieces: Java the - language and Java the virtual machine. - - It is possible to compile Java to .NET, as shown by the - Microsoft J# compiler. We could then allow the migration of - Java applications to the Mono runtime. - -** Native compiler - - Although a native compiler can be built, and probably should be - built using an existing compiler, a short term solution is to - build a translator from Java class files to the ECMA CIL images. - - This has the advantage that we can use an existing and tested - Java compiler to generate the code, and then we can use an automated - code compiler that compiles Java VM bytecodes to CIL bytecodes. - -** The translator. - - It would be interesting to write a semantic translator that - converts java byte codes into CIL opcodes. This is possible - because the Java byte codes are a subset of the CIL ones. - - A semantic tree needs to be constructed (very much in the - spirit of what is done in mono_analize_stack in - <tt>mono/mono/jit/jit.c</tt>. Once such a semantic tree is - constructed, we could generate the equivalent Java code. - - This has a number of interesting side effects: people can - continue to use their existing Java compilers to compile their - code, and a simple tool that converts their .class files into - a .NET assembly can be used. - -** Libraries - - We could translate the GNU Classpath libraries with the above - tools to provide the Java runtime required to host into the - Mono runtime. Some special treatment would be required for - core data types like integers, arrays and strings, and of - course reuse where possible existing classes from .NET to make - them compatible. - -** JILC - Java to IL Compiler - - This is an attempt to make the java bytecode available for the - .NET environment. - - The project attempts to generate the IL code / bytecode from the - compiled java class files. It has reached the stage of code-generation. - The issues that needs to be addressed is the mapping of java objects - to the IL objects, eg: java.lang.String to System.String. - - Gaurav Vaish and Abhaya Agarwal are currently leading this project. - The project is currently hosted at <a href="http://sourceforge.net/projects/jilc">SourceForge.Net</a>. - The official home page of the project is - <a href="http://jilc.sourceforge.net">http://jilc.sourceforge.net</a>. - diff --git a/doc/jit-debug b/doc/jit-debug deleted file mode 100644 index 57ec9065263..00000000000 --- a/doc/jit-debug +++ /dev/null @@ -1,78 +0,0 @@ -* Debugging information - - Compile your programs using the `-g' flag in MCS, that will all a special - resource containing debugging information to your executable. - - To get stack traces with line number information, you need to run your - program like this: - - <b> - mono --debug program.exe - </b> - - Notice that the program will need to be compiled with the -g - flag and that running with --debug will slow down the execution. - -* Debugging with GDB - - If you use GDB to debug your mono process, you can use the function - print_method_from_ip(void *address) to obtain the name of a method - given an address. - - For example: - - <pre> -(gdb) where -#0 ves_icall_System_String_GetHashCode (me=0x80795d0) at string-icalls.c:861 -#1 0x0817f490 in ?? () -#2 0x0817f42a in ?? () -#3 0x0817f266 in ?? () -#4 0x0817f1a5 in ?? () -</pre> - - You can now use: - -<pre> -(gdb) p print_method_from_ip (0x0817f490) -IP 0x817f490 at offset 0x28 of method (wrapper managed-to-native) System.String:GetHashCode () (0x817f468 0x817f4a4) -$1 = void -(gdb) p print_method_from_ip (0x0817f42a) -IP 0x817f42a at offset 0x52 of method System.Collections.Hashtable:GetHash (object) (0x817f3d8 0x817f43b) -$2 = void -</pre> - - Mono support libraries use a couple of signals internally that - confuse gdb, you might want to add this to your .gdbinit file: - -<pre> - handle SIGPWR nostop noprint - handle SIGXCPU nostop noprint -</pre> - -* Mono Debugger - - The Mono debugger is written in C# and can debug both managed - and unmanaged applications, support for multiple-threaded - applications and should be relatively easy to port to new - platforms. - - Details of the release are available in <a - href="http://lists.ximian.com/archives/public/mono-list/2003-January/011415.html">post</a>. - - The debugger contains both Gtk# and command line interfaces. - The debugging file format used in Dwarf (it's already supported - by our class libraries and the Mono C# compiler; To debug C - applications, you need a recent GCC, or to pass the -gdwarf-2 - flag to gcc). - - You can download the releases from <a - href="http://primates.ximian.com/~martin/debugger/">Martin Baulig's - home page.</a> - - - - - - - - diff --git a/doc/languages b/doc/languages deleted file mode 100755 index 046945817a2..00000000000 --- a/doc/languages +++ /dev/null @@ -1,162 +0,0 @@ -* Compilers for other languages - - Here are some other free compilers for other languages that - target .NET and should work with Mono with no problem: - - <ul> - * <a href="#ComponentPascal">Component Pascal</a> - * <a href="#MonoLogo">MonoLogo</a> - * <a href="#Oberon">Oberon</a> - * <a href="#Forth">Forth</a> - * <a href="#mbas">Mono Basic</a> (Mono's VB.NET compiler) - * <a href="#dotlist">dotLisp</a> - </ul> - - Languages which are known to run, but we have not done a - complete ran of all their regression tests to validate it: - - <ul> - * Kylix.NET. - </ul> - - Languages we would like to have supported, with links to resources: - - <ul> - * <a href="#JavaScript">Java Script</a> - * <a href="#java.html">Java</a> - * <a href="#c">C</a> - </ul> - - Some experimental languages: - - <ul> - * <a href="#Tachy">Tachy</a> (scheme-like) - * <a href="#python">Python</a> - </ul> - -<a name="Java"></a> -** Java - - There is a very interesting project to make a JavaVM for .NET - <a href="http://radio.weblogs.com/0109845/">here</a>. - - Zoltan has got IKVM to work with Mono. - -<a name="PHP"> -** PHP - - Sterling has code to allow PHP developers to use Mono code, in - his <a href="http://www.php.net/~sterling/mono/">site</a> - -<a name="MonoLogo"> -** MonoLogo - - An implementation of Logo for Mono (and .NET) - - The <A href="http://monologo.sf.net">Mono Logo</a> compiler is - hosted in the <a href="ccvs.html">Mono CVS</a> repository - and also available on the <a href="anoncvs.html">AnonCVS</a> mirrors. - -<a name="mbas"> -** Mono Basic (Mono's VB.NET compiler) - - Work has resumed on the Mono Visual Basic compiler (currently - called mbas). It is part of the standard Mono distribution, - but its still an early compiler. - -<a name="Oberon"> -** Oberon - - This Oberon compiler is written in Oberon.NET (another self - hosting compiler). - - The main site <a href="http://www.oberon.ethz.ch/oberon.net/">http://www.oberon.ethz.ch/oberon.net/</a> - - Download: - <a href="http://www.oberon.ethz.ch/oberon.net/download/">http://www.oberon.ethz.ch/oberon.net/download/</a> - - Examples: - <a href="http://www.oberon.ethz.ch/oberon.net/examples/">http://www.oberon.ethz.ch/oberon.net/examples/</a> - -<a name="ComponentPascal"> -** Component Pascal - - The Component Pascal compiler: <a - href="http://www.citi.qut.edu.au/research/plas/projects/cp_files/cpnet.html">Home - Page</a>, you can <a - href="http://www.citi.qut.edu.au/research/plas/projects/cp_files/cpdownload.html"> - download it</a> - -<a name="Forth"> -** Delta Forth - - The Delta Forth.NET project: <a href="http://www.dataman.ro/dforth">Home - Page</a> and <a href="http://www.dataman.ro/dforth">more - details here</a>. - - -<a name="Tachy"> -** Tachy - - A subset of Scheme language called <a - href="http://radio.weblogs.com/0101156/stories/2002/03/19/tachy.html">Tachy</a> - -<a name="Python"></a> -** Python - - <a href="mailto:brian@No.Spam.zope.com">Brian Lloyd</a> is - working on linking the Python runtime with the .NET runtime. - More information on the PS.NET project can be found <a - href="http://www.zope.org/Members/Brian/PythonNet">here</a>. - -<a name="dotlisp"></a> -** dotLisp - - DotLisp is available from: <a - href="http://sourceforge.net/projects/dotlisp/">http://sourceforge.net/projects/dotlisp/</a> - -<a name="JavaScript"> -* Java Script - - Cesar is working on Mono's implementation of JScript, the code - is available on CVS on module `mcs'. - -* Missing languages - - Here is a list of a few languages that we would like to see - supported. We will try to maintain a set of links here with - technical information for those interested in porting, - implementing or adapting a compiler for any of these - languages: - -<a name="c"> -* C - - Ideally GCC could be modified to generate CIL, but it is a - big task. That would give us various compilers in one pass. - - <a href="http://www.cs.princeton.edu/software/lcc">LCC</a> 4.2 - has been recently released. This release adds support for compiling - ANSI C programs to CIL. Note that the CIL support only works on Win32 - right now, but should be easy to convert to Mono/other architectures. - - LCC is not an open source compiler, but it is free as long as you - do not profit from selling it. - -<a name="ada"></a> -* ADA - - A# is an ADA compiler for the CIL platform, it can be downloaded from: - <a - href="http://www.usafa.af.mil/dfcs/bios/mcc_html/a_sharp.html">http://www.usafa.af.mil/dfcs/bios/mcc_html/a_sharp.html</a> - -<a name="Java"> -* Java - - Java bytecode can run directly on Mono using the <a - href="http://www.ikvm.net">IKVM</a> java virtual machine for - .NET. - - We have a <a href="java.html">separate page</a> for Java. - - diff --git a/doc/mailing-lists b/doc/mailing-lists deleted file mode 100644 index ad2aa170ae4..00000000000 --- a/doc/mailing-lists +++ /dev/null @@ -1,271 +0,0 @@ -* Mailing Lists - - Most of the mailing lists are in english, but there is also - Mono Hispano that has lists in Spanish. <a - href="http://www.monohispano.org/mailman/listinfo/mono-hispano">Mono Hispano list</a> - - There are a number of mailing lists for Mono in English: - - <table border=1> - <tr> - <td> - <b><a - href="http://lists.ximian.com/mailman/listinfo/mono-announce-list">mono-announce-list</a></b> - </td> - <td> - Announcements of Mono developments. - </td> - </tr> - <tr> - <td> - <b><a - href="http://lists.ximian.com/mailman/listinfo/mono-list">mono-list</a></b> - </td> - <td> - The general Mono discussion list. - </td> - </tr> - <tr> - <td> - <b><a - href="http://lists.ximian.com/mailman/listinfo/mono-devel-list">mono-devel-list</a></b> - </td> - <td> - A mailing list specifically dedicated to discussions - about developing Mono and programming *with* Mono. - Programmers that work on Mono are _strongly_ encouraged - to join this list. Third-party programmers interested - in running or compiling their managed applications with - Mono or that are interested in using mono-specific - technologies should join the list as well. - <p> - Examples of on-topic arguments are: - <ul> - <li>proposals and patches for new features for the mono runtime and programs - <li>discussions about bugs in the mono runtime and programs - <li>discussions about future directions - <li>embedding API, scripting language bridges - <li>mono/mcs build issues - <li>programming with mono-specific assemblies - <li>discussions about third-party compilers that target and/or use directly the CLR - <li>discussions about getting a managed application run with mono - </ul> - - <p>Topics that are better discussed on other mailing lists: - <ul> - <li> general C# questions (use the specific lists at develop.com) - <li> issues that are already covered by a more specific mono - mailing list (like System.Windows.Forms or Gtk#) - <li> success reports about new apps running on mono, including - runtime/buildtime support for new programming languages (use - mono-list to reach a wider audience) - </ul> - </td> - </tr> - <tr> - <td> - <b><a - href="http://lists.ximian.com/mailman/listinfo/mono-gc-list">mono-gc-list</a></b> - </td> - <td> - Discussion on the GC system of Mono. - </td> - </tr> - <tr> - <td> - <b><a - href="http://lists.ximian.com/mailman/listinfo/mono-patches">mono-patches</a></b> - </td> - <td> - Track the CVS activity of Mono on this mailing list (patches are sent to recipients). <p> - You can get <a href="http://www.go-mono.com/snapshots">daily snapshots</a> as well. - </td> - </tr> - <tr> - <td> - <b><a - href="http://lists.ximian.com/mailman/listinfo/mono-cvs-list">mono-cvs-list</a></b> - </td> - <td> - Track the CVS activity of Mono on this mailing list. - </td> - </tr> - <tr> - <td> - <b><a - href="http://lists.ximian.com/mailman/listinfo/mono-docs-list">mono-docs-list</a></b> - </td> - <td> - Discussion on the documentation of Mono. - </td> - </tr> - <tr> - <td> - <b><a href="http://lists.ximian.com/mailman/listinfo/mono-bugs">mono-bugs</a></b> - </td> - <td> - This mailing list is used to keep track of the bugs in Mono as reported - in <a href="http://bugzilla.ximian.com">Bugzilla.ximian.com</a> - </td> - </tr> - <tr> - <td> - <b><a - href="http://lists.ximian.com/mailman/listinfo/mono-winforms-list">mono-winforms-list</a></b> - </td> - <td> - Used to discuss the Windows.Forms implementatation for Mono using Wine. - </td> - </tr> - <tr> - <td> - <b><a - href="http://lists.ximian.com/mailman/listinfo/gtk-sharp-list">gtk-sharp-list</a></b> - </td> - <td> - Used to discuss the Gtk bindings for Mono (<a href="http://gtk-sharp.sf.net">Gtk#</a>). - </td> - </tr> - <tr> - <td> - <b><a - href="http://lists.ximian.com/mailman/listinfo/mono-vb">mono-vb</a></b> - </td> - <td> - Mono's implementation of Visual Basic.NET. - </td> - </tr> - </table> - - Other mailing lists of interest: - - <ul> - * <b><a - href="http://discuss.develop.com/dotnet.html">Dotnet mailing - list at Develop.com:</a></b> The guys at Develop Mentor run - this general purpose mailing list. - </ul> - </ul> - -* Alternative archive site - - An alternate site that archives Mono List is available <a - href="http://archive.neotonic.com/archive/mono-list">http://archive.neotonic.com/archive/mono-list</a> - -* Google search of the archives - -<!-- Google Search with mods --> -<center> - -<table> -<tr> -<td><a href="http://www.google.com/search"><img src="images/Logo_40wht.gif" border="0" alt="Google" align="middle"></a></td> - -<td> -<table> - -<tr><td> -<FORM method=GET action=http://www.google.com/custom> -<TABLE bgcolor=#FFFFFF cellspacing=0 border=0> -<tr valign=top> -<td> -<INPUT TYPE=text name=q size=31 maxlength=255 value=""> -<INPUT TYPE=hidden name=q size=31 maxlength=255 value="mono"> -<INPUT type=submit name=sa VALUE="Search"> -<input type="hidden" name="cof" value="GIMP:#00ff00;T:#ffffff;LW:401;BIMG:http://www.go-mono.com/images/bgsquares.gif;ALC:#ffffff;L:http://www.go-mono.com/images/mono.gif;GFNT:#cc7700;LC:#ee9900;LH:80;BGC:#444444;AH:center;VLC:#cccccc;S:http://www.go-mono.com;GALT:#eeee00;AWFID:45753ce73241ef7a;"> -<font face="arial,sans-serif" size="-1"><input type="hidden" name="domains" value="www.go-mono.com;lists.ximian.com"><br><input type="radio" name="sitesearch" value="www.go-mono.com"> Search www.go-mono.com <input type="radio" name="sitesearch" value="lists.ximian.com"> Search lists.ximian.com </font><br> -</td></tr></TABLE> -</FORM> -</tr></td> - -<tr><td> -<FORM method=GET action=http://www.google.com/custom> -<TABLE bgcolor=#FFFFFF cellspacing=0 border=0> -<tr valign=top> -<td> -<INPUT TYPE=text name=q size=31 maxlength=255 value=""> -<INPUT TYPE=hidden name=q size=31 maxlength=255 value="mono-list"> -<INPUT type=submit name=sa VALUE="Search"> -<input type="hidden" name="cof" value="GIMP:#00ff00;T:#ffffff;LW:401;BIMG:http://www.go-mono.com/images/bgsquares.gif;ALC:#ffffff;L:http://www.go-mono.com/images/mono.gif;GFNT:#cc7700;LC:#ee9900;LH:80;BGC:#444444;AH:center;VLC:#cccccc;S:http://www.go-mono.com;GALT:#eeee00;AWFID:45753ce73241ef7a;"> -<font face=arial,sans-serif size=-1><input type=hidden name=domains value="lists.ximian.com"><br> <input type=hidden name=sitesearch value="lists.ximian.com"> Search mono-<b>list</b> </font><br> -</td></tr></TABLE> -</FORM> -</tr></td> - -<tr><td> -<FORM method=GET action=http://www.google.com/custom> -<TABLE bgcolor=#FFFFFF cellspacing=0 border=0> -<tr valign=top> -<td> -<INPUT TYPE=text name=q size=31 maxlength=255 value=""> -<INPUT TYPE=hidden name=q size=31 maxlength=255 value="mono-announce-list"> -<INPUT type=submit name=sa VALUE="Search"> -<input type="hidden" name="cof" value="GIMP:#00ff00;T:#ffffff;LW:401;BIMG:http://www.go-mono.com/images/bgsquares.gif;ALC:#ffffff;L:http://www.go-mono.com/images/mono.gif;GFNT:#cc7700;LC:#ee9900;LH:80;BGC:#444444;AH:center;VLC:#cccccc;S:http://www.go-mono.com;GALT:#eeee00;AWFID:45753ce73241ef7a;"> -<font face=arial,sans-serif size=-1><input type=hidden name=domains value="lists.ximian.com"><br> <input type=hidden name=sitesearch value="lists.ximian.com"> Search mono-<b>announce-list</b> </font><br> -</td></tr></TABLE> -</FORM> -</tr></td> - -<tr><td> -<FORM method=GET action=http://www.google.com/custom> -<TABLE bgcolor=#FFFFFF cellspacing=0 border=0> -<tr valign=top> -<td> -<INPUT TYPE=text name=q size=31 maxlength=255 value=""> -<INPUT TYPE=hidden name=q size=31 maxlength=255 value="mono-bugs"> -<INPUT type=submit name=sa VALUE="Search"> -<input type="hidden" name="cof" value="GIMP:#00ff00;T:#ffffff;LW:401;BIMG:http://www.go-mono.com/images/bgsquares.gif;ALC:#ffffff;L:http://www.go-mono.com/images/mono.gif;GFNT:#cc7700;LC:#ee9900;LH:80;BGC:#444444;AH:center;VLC:#cccccc;S:http://www.go-mono.com;GALT:#eeee00;AWFID:45753ce73241ef7a;"> -<font face=arial,sans-serif size=-1><input type=hidden name=domains value="lists.ximian.com"><br> <input type=hidden name=sitesearch value="lists.ximian.com"> Search mono-<b>bugs</b> </font><br> -</td></tr></TABLE> -</FORM> -</tr></td> - -<tr><td> -<FORM method=GET action=http://www.google.com/custom> -<TABLE bgcolor=#FFFFFF cellspacing=0 border=0> -<tr valign=top> -<td> -<INPUT TYPE=text name=q size=31 maxlength=255 value=""> -<INPUT TYPE=hidden name=q size=31 maxlength=255 value="mono-gc-list"> -<INPUT type=submit name=sa VALUE="Search"> -<input type="hidden" name="cof" value="GIMP:#00ff00;T:#ffffff;LW:401;BIMG:http://www.go-mono.com/images/bgsquares.gif;ALC:#ffffff;L:http://www.go-mono.com/images/mono.gif;GFNT:#cc7700;LC:#ee9900;LH:80;BGC:#444444;AH:center;VLC:#cccccc;S:http://www.go-mono.com;GALT:#eeee00;AWFID:45753ce73241ef7a;"> -<font face=arial,sans-serif size=-1><input type=hidden name=domains value="lists.ximian.com"><br> <input type=hidden name=sitesearch value="lists.ximian.com"> Search mono-<b>gc-list</b> </font><br> -</td></tr></TABLE> -</FORM> -</tr></td> - -<tr><td> -<FORM method=GET action=http://www.google.com/custom> -<TABLE bgcolor=#FFFFFF cellspacing=0 border=0> -<tr valign=top> -<td> -<INPUT TYPE=text name=q size=31 maxlength=255 value=""> -<INPUT TYPE=hidden name=q size=31 maxlength=255 value="mono-cvs-list"> -<INPUT type=submit name=sa VALUE="Search"> -<input type="hidden" name="cof" value="GIMP:#00ff00;T:#ffffff;LW:401;BIMG:http://www.go-mono.com/images/bgsquares.gif;ALC:#ffffff;L:http://www.go-mono.com/images/mono.gif;GFNT:#cc7700;LC:#ee9900;LH:80;BGC:#444444;AH:center;VLC:#cccccc;S:http://www.go-mono.com;GALT:#eeee00;AWFID:45753ce73241ef7a;"> -<font face=arial,sans-serif size=-1><input type=hidden name=domains value="lists.ximian.com"><br> <input type=hidden name=sitesearch value="lists.ximian.com"> Search mono-<b>cvs-list</b> </font><br> -</td></tr></TABLE> -</FORM> -</tr></td> - -<tr><td> -<FORM method=GET action=http://www.google.com/custom> -<TABLE bgcolor=#FFFFFF cellspacing=0 border=0> -<tr valign=top> -<td> -<INPUT TYPE=text name=q size=31 maxlength=255 value=""> -<INPUT TYPE=hidden name=q size=31 maxlength=255 value="mono-patches"> -<INPUT type=submit name=sa VALUE="Search"> -<input type="hidden" name="cof" value="GIMP:#00ff00;T:#ffffff;LW:401;BIMG:http://www.go-mono.com/images/bgsquares.gif;ALC:#ffffff;L:http://www.go-mono.com/images/mono.gif;GFNT:#cc7700;LC:#ee9900;LH:80;BGC:#444444;AH:center;VLC:#cccccc;S:http://www.go-mono.com;GALT:#eeee00;AWFID:45753ce73241ef7a;"> -<font face=arial,sans-serif size=-1><input type=hidden name=domains value="lists.ximian.com"><br> <input type=hidden name=sitesearch value="lists.ximian.com"> Search mono-<b>patches</b> </font><br> -</td></tr></TABLE> -</FORM> -</tr></td> - - -</table> -</tr> -</table> - -</center> -<!-- /Google Search with mods --> diff --git a/doc/mbas b/doc/mbas deleted file mode 100644 index 49247b5c527..00000000000 --- a/doc/mbas +++ /dev/null @@ -1,54 +0,0 @@ -* mbas: Mono's Basic.NET Compiler.
-
- MBAS is a CIL compiler for the Visual Basic language, an extended
- version of VisualBasic.NET. It's based on the MCS compiler
- and still in heavy development, though many language features are
- already supported.
-
-** What works
-
- <ul>
-
- * Classes, Fields and Methods. Properties are still
- being worked on.
-
- * Module definition and Sub functionality (TODO: Function's)
-
- * Namespace Import, so can you reference, instantiate
- and call external assemblies
-
- * Parameter passing between Sub's. ByVal and ByRef
- parameters are being worked on.
-
- * Delegates
-
- * Object creation
-
- * Events - to a limited extent. You can declare a
- Class-Field as 'WithEvents' and dynamic events (i.e
- AddHandler MyButton.Click, Button1_OnClick). Please
- beware: just after committing the code, I discovered
- that the handler field in the AddHandler call is
- case-sensitive, a remnant of mBas' mcs heritage)
-
- * Statements supported are 'If..Then..Else' ,
- 'While..End While' and assignment statements. Simple
- operators (+, -, *, /, >, <, =) should also
- work. Other statements (For..Next, etc.) should be
- quite trivial to implement.
- </ul>
-
- A lot of this stuff is implemented rebuilding proper expressions and
- statements on top of the classes provided by mcs (look at the grammar -
- mb-parser.jay - and compare it with cs-parser.jay, if interested).
-
-** TODO-list
-
- At this stage almost every element of the language must be still checked for
- conformance to MS'implementation. Help is particularly needed for those areas
- I know little of (mcs internals are still quite obscure to me). I'd like to
- implement class properties, the missing statements, exception handling,
- structures and actual event support (not necessarily in this order). Once we
- have all this stuff set up and reasonably bug-free, more work could be done
- on helper functions and Object-vars handling.
-
diff --git a/doc/mono-1.0.html b/doc/mono-1.0.html deleted file mode 100644 index 6398d89d0df..00000000000 --- a/doc/mono-1.0.html +++ /dev/null @@ -1,91 +0,0 @@ -<html> -<head> -<title>Mono 1.0 assemblies</title> -</head> - -<body> -<h1>Assemblies</h1> -<pre> -Stable: - Commons.RelaxNG - Cscompmgd - Mono.Data - Mono.Data.Tds - Mono.Posix - Mono.Security - Mono.Security.Win32 - System.Web - System.Configuration.Install - System.Data - System.Data.OracleClient - System.DirectoryServices - System - System.Drawing - System.Runtime.Remoting - System.Security - System.Web.Services - System.XML - -Unstable: - Accessibility - Mono.Cairo - Mono.CSharp.Debugger - Mono.Data.DB2Client - Mono.Data.SqlLite - Mono.Data.SybaseClient - Mono.GetOptions - System.Web.Mobile - System.Design - System.Drawing.Design - System.Windows.Forms - Formatters.Soap - Mono.Data.TdsClient (older Sybase and MS SQL) - -Missing: - System.EnterpriseServices - System.Management - System.Messaging - System.ServiceProcess - System.Web.RegularExpressions - -Third party assemblies. - ByteFX.Data - Npgsql - PEAPI - SharpZipLib. - - Java integration with IKVM.NET - -</pre> - -<h1>Languages</h1> - -<pre> -Stable: - C# - -Unstable: - VB.NET - -Not ready: - JScript -</pre> - -<h1>Virtual Machine</h1> - -<pre> -JIT, 32 bits: - PPC - x86 - -Interpreter, 32 bits: - s390 - HPPA - StrongARM - SPARC v8 - -Interpreter, 64 bits: - ia64 - SPARC v9 -</body> -</html>
\ No newline at end of file diff --git a/doc/mono-beginning b/doc/mono-beginning deleted file mode 100644 index 970eed63f6e..00000000000 --- a/doc/mono-beginning +++ /dev/null @@ -1,34 +0,0 @@ -* Mono for beginners - - Hinne Hettema and Jaime Anguiano Olarra are providing us with - nice and complete set of documents (HOWTOs) about how to install, - configure, run and test the software developed by the Mono Project. - - You can read them online, get PDF versions or get the XML sources. - - - HTML Format (read it online) - - For <a href="mono-beginning/t1.html">RPM Linux based systems</a> - - For <a href="http://monoevo.sourceforge.net/mono-windows/mono-beginning-windows/t1.html">Microsoft Windows</a> - - - PDF Format - - For <a href="mono-beginning.pdf">RPM Linux based systems</a> - - - XML Source - - For <a href="mono-beginning.xml">RPM Linux based systems</a> - - For <a href="http://monoevo.sourceforge.net/mono-windows/mono-beginning-windows.xml">Microsoft Windows</a> - - - Currently Hinne is working on a Mono Tools HOWTO. Which will be - very useful for the hackers that would like to get in touch with - Mono and Jaime is working out a Mono Beginning HOWTO for Debian - users. - - diff --git a/doc/mono-beginning-windows.xml b/doc/mono-beginning-windows.xml deleted file mode 100644 index a6f34da77f0..00000000000 --- a/doc/mono-beginning-windows.xml +++ /dev/null @@ -1,1065 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" []>
-<article>
-
- <articleinfo>
-
- <!-- Use "HOWTO", "mini HOWTO", "FAQ" in title, if appropriate -->
- <title>Mono Beginners HOWTO for Windows users</title>
-
- <author>
- <firstname>Jaime</firstname>
- <surname>Anguiano Olarra</surname>
- <affiliation>
- <address><email>jaime@geneura.ugr.es</email></address>
- </affiliation>
- </author>
-
- <author>
- <firstname>Hinne</firstname>
- <surname>Hettema</surname>
- <affiliation>
- <address><email>h.hettema@auckland.ac.nz</email></address>
- </affiliation>
- </author>
-
- <pubdate>2002-08</pubdate>
-
- <!-- Most recent revision goes at the top; list in descending order -->
- <!-- All dates specified in ISO "YYYY-MM-DD" format -->
- <revhistory>
- <revision>
- <revnumber>0.1</revnumber>
- <date>2002-08-05</date>
- <authorinitials>JA</authorinitials>
- <revremark>First release</revremark>
- </revision>
- </revhistory>
-
- <!-- Provide a good abstract; a couple of sentences is sufficient -->
- <abstract>
- <para>
- The goal of this document is to guide people through the setup of a Mono
- framework in a Windows box. Because some people might want to just test
- Mono a bit and use the compiler, etc, I have made two distinctions, one
- for the Mono user that only wants to get precompiled binaries and another
- for the one how wants to build Mono from the CVS and probably contribute
- to the project actively. Each kind of user has to read the corresponding
- part of this document. I hope a lot of Windows users will get a nice
- approach to the free software world by starting using Mono.
- </para>
- </abstract>
-
- </articleinfo>
-
-<sect1 id="intro">
-<title>Introduction</title>
-
-<para>
-Mono is an open source implementation of the Common Language Infrastructure
-(CLI) specified in ECMA standard 335. It comes with a C# compiler and
-provides an extensible platform to develop and run applications that
-are interoperable with Microsoft .NET.
-</para>
-
-<para>
-Mono is not finished--it is a project still under development. As a
-result, installation and configuration may not be as smooth as you
-will be used to from other Linux or Windows applications. Nevertheless,
-mono is in a state that will allow you to get it up and running and gain
-experience with it--which is, I would suggest, a very smart thing to do.
-</para>
-
-<para>
-This document is aimed at the mono beginner, and aims to present a complete
-view of a minimal installation, which will allow you to experiment with
-mono to some degree. It also describes some of those experiments. We
-expect that after reading this document you'll go on to do either of
-two things:
-</para>
-<orderedlist>
-<listitem>
-<para>
-Continue to contribute to the mono project in some shape or form. The
-website has some ideas and suggestions under the heading 'Contributing'.
-</para>
-</listitem>
-<listitem>
-<para>
-Continue to write applications that run in mono.
-</para>
-</listitem>
-</orderedlist>
-
-<para>
-We hope this document will be useful to you in your first steps with mono.
-Happy hacking!
-</para>
-
-<sect2 id="disclaimer"> <title>Disclaimer</title>
-
-<para>
-No liability for the contents of this document can be accepted.
-Use the concepts, examples and information at your own risk. There may
-be errors and inaccuracies, that could be damaging to your system.
-Proceed with caution, and although this is highly unlikely, the author(s)
-do not take any responsibility.
-</para>
-
-<para>
-All copyrights are held by their by their respective owners,
-unless specifically noted otherwise. Use of a term in this document
-should not be regarded as affecting the validity of any trademark or
-service mark. Naming of particular products or brands should not be
-seen as endorsements.
-</para>
-</sect2>
-
-<!-- Give credit where credit is due...very important -->
-<sect2 id="credits"> <title>Credits / Contributors</title>
-
-<para> Credits are due to </para>
-<itemizedlist>
-<listitem>
-<para>Hinne Hettema <email>h.hettema@auckland.ac.nz</email>
-for creating the xml template I used for this document, for
-reviewing and make an excellent job with the other HOWTO and
-for his feedback. As you can see a lot of his work has been
-included in this document too.
-</para>
-</listitem>
-<listitem>
-<para>
-The Mono Hackers.
-</para>
-</listitem>
-</itemizedlist>
-</sect2>
-
-<!-- Feedback -->
-<sect2 id="feedback"> <title>Feedback</title>
-
-<para>
-Feedback is most certainly welcome for this document. Send your
-additions, comments and criticisms to the following email address:
-<email>mono-docs-list@ximian.com</email>. I am lurking on this list
-and will maintain this document as required.
-</para>
-</sect2>
-</sect1>
-
-<!-- This is the preamble stuff over with the rest of document follows... -->
-<sect1 id="installation">
-<title> Installing Mono</title>
-
-<sect2 id="obtaining">
-<title>Obtaining Mono</title>
-<para>
-In order to obtain the required software you just need to visit the
-Mono download page at http://www.go-mono.org/download or any of the
-related sites.
-</para>
-
-<para>
-You'll be able to complete everything in this document if you just install
-the runtime, but taking a look at the compiler package is well worth the
-effort. The compiler is written in C# and is 'self hosting' which means it
-is able to compile itself.
-</para>
-
-<para>
-This page also lists the current versions of the software
-mono depends on. Make sure that your system has all the
-required versions, otherwise mono won't compile.
-</para>
-
-</sect2>
-
-<sect2 id="easyinstall">
-<title>Installing Mono on Windows, the easy way</title>
-<para>
- Oh. This is a very easy task now. If you just want to take a look at
- the possibilities of Mono get the Mono installer from the site of
- Johannes Roith <johannes\@jroith.de>:
-</para>
-
-<para>
- http://www.superin.informativ.net/mono/mono.htm. You can get a link in
-</para>
-<para>
- the download section of the Mono site too: http://www.go-mono.org/download
-</para>
-<para>
- Then you just need a Windows machine. Better use
- Windows 2000 Professional. </para>
-<para>
- Once you've got it, run the installer.
-</para>
-<para>
- Remember, building your own Mono runtime and compiler from the sources
- is strongly recommended. You won't discover the power of Mono until
- you get it made this way. If you feel hungry about real programming with
- Mono, proceed like in the next section.
-</para>
-</sect2>
-
-<sect2 id="hardinstall">
-<title>Building Mono under Windows</title>
-<itemizedlist>
- <listitem>
- <para>
- 1.- Get Windows 2000 Professional or any Windows System supporting .NET SDK.
- Avoid using XP and the redistributable version of the SDK (necessary for
- WinME, etc).
- </para>
- </listitem>
-
- <listitem>
- <para>
- 2.- Get the latest Cygwin distribution, be sure you install the GNU Build Tools
- packages. Take the openssh package if you plan to contribute to the project.
- If you feel insecure about the packages you need to install, install all of
- them, of course, Text, Admin, Games and Web are not necessary at all and you
- can pass of those. The fitness of your choice will depend of your knowledge
- on Linux and/or Cygwin. If in doubt install all.
- </para>
- </listitem>
-
- <listitem>
- <para>
- 3.- Install the .NET SDK.
- </para>
- </listitem>
- <listitem>
- <para>
- 4.- Install Cygwin.
- </para>
- </listitem>
- <listitem>
- <para>
- 5.- Get http://www.go-mono.org/mono-build-w32.sh and put it into your home
- directory in the cygwin setup.
- </para>
- </listitem>
-
- <listitem>
- <para>
- 6.- Enter your cygwin environment. If you have an account in the mono cvs, then
- export the variables as shown in http://www.go-mono.org/ccvs.html
- </para>
-
- <programlisting>
- This means. Enter: export CVSROOT=user@mono-cvs.ximian.com:/cvs/public
-
- and export CVS_RSH=ssh
- </programlisting>
- <para>
- If you have no account DO NOTHING.
- </para>
- </listitem>
- <listitem>
- <para>
- 7.- Enter:
- <programlisting>
- export ACLOCAL_FLAGS="-I /usr/local/share/aclocal"
- and this: export PKG_CONFIG_PATH="/usr/local/bin"
- </programlisting>
- </para>
- </listitem>
- <listitem>
- <para>
- 8.- Run the script (mono-build-w32.sh)
- </para>
- </listitem>
- <listitem>
- <para>
- 9.- All should work fine know and you should see it download what necessary and
- build mono.
- </para>
-</listitem>
-</itemizedlist>
-</sect2>
-
-<sect2 id="errors">
-<title>Troubleshooting</title>
-<para>
- If you have noticed problems during step 8 and the execution stops because of
- errors as I cannot find that or such library or alike, try to:
-</para>
-
-<itemizedlist>
-<listitem>
- <para>
- 1.- Create a directory mono-temp for example.
- </para>
- </listitem>
-
- <listitem>
- <para>
- 2.- Move and unzip all the zips the mono-build script downloads to /usr/local
- to that new directory. Do it one by one, copying the content of the created
- subdirectories (include, bin, etc) to their respectives in /usr/local. Take
- care, some libraries like libglib... must go into /usr/local/bin and not
- into /usr/local/lib.
- </para>
- </listitem>
-
- <listitem>
- <para>
- 3.- Jump into the /usr/local/mono directory and run ./autogen.sh
- </para>
- </listitem>
-
- <listitem>
- <para>
- 4.- Then run ./configure and after it: make and finally: make install.
- </para>
- </listitem>
-</itemizedlist>
-</sect2>
-</sect1>
-
-<sect1 id="running">
-<title>Running mono</title>
-<sect2 id="basic">
-<title>Basic steps</title>
-<para>
-To work with mono, you first have to create a C# program. Open up
-your favourite editor, and type in the following code:
-</para>
-<programlisting>
-using System;
-
-class Hello
-{
-public static void Main(String[] args)
- {
- Console.WriteLine("mono:: is alive and well...");
-
- for (int i = 0; i < args.Length; i++)
- Console.WriteLine("Argument {0} = {1}", i, args[i]);
- }
-}
-</programlisting>
-
-<para>
-Save the file as hello.cs. To compile this into a working program,
-type mcs hello.cs. If you get the following:
-</para>
-<programlisting>
- mcs hello.cs
-RESULT: 0
-</programlisting>
-<para>
-you know the compile worked fine. If you see some strange error
-messages including the word 'parser' somewhere, you made a mistake in
-your program. Fix this up first.
-</para>
-
-<para>
-You are now ready to execute your first mono program. To execute
-the code, type
-</para>
-
-<programlisting>
- mono hello.exe arg1 arg2 arg 3
-</programlisting>
-<para>
-(where we have given some arguments just for fun) and you'll
-see the following:
-</para>
-
-<programlisting>
-mono:: is alive and well...
-Argument 0 = arg1
-Argument 1 = arg2
-Argument 2 = arg
-Argument 3 = 3
-RESULT: 0
-</programlisting>
-<para>
-As you can see, mono printed the line "mono:: is alive and well"
-and printed the list of arguments. This completes the creation
-and execution of your first mono program.
-</para>
-</sect2>
-
-<sect2 id="interpreter">
-<title>Interpreter</title>
-<para>
-But mono will allow you to do more. First of all, mono is the
-compiled mono execution environment which uses the Just in
-Time (JIT) compiler. Mono also comes with an interpreted
-environment, which can be accessed using the command 'mint'
-as follows
-</para>
-<programlisting>
- mint hello.exe arg1 arg 2
-mono:: is alive and well...
-Argument 0 = arg1
-Argument 1 = arg
-Argument 2 = 2
-</programlisting>
-<para>
-As you can see, it makes no difference to mono output which
-environment you use, but what happens under the hood is very
-different. If you use 'mono' as the command line tool, you
-call the 'production' execution environment which will read
-your portable executable (PE) file, and call the just in
-time (JIT) compiler to compile the PE code down to machine
-level code (in my case, an x86 architecture) after which
-it is executed.
-</para>
-<para>
-If you use mint, the JIT is not used, and the PE code is
-interpreted into x86 instructions for execution. In fact,
-for our simple 'hello' mint is slightly faster. The point
-is that the JIT compiler will take some time to compile the
-code of our program and store it in some location in memory,
-but the subsequent execution of the code is faster with mono.
-</para>
-
-<para>
-After this simple run of mono, it is time to play with some options.
-I won't cover these in detail since there are quite a few, and also because
-I assume you downloaded mono to hack it around in the first place. So
-I'll leave some pointers.
-</para>
-
-
-<sect3 id="debugging">
-<title>Debugging</title>
-<para>
-Mono supports a debugging option when you specify the "-d" flag while running
-the runtime. Utilising this flag will get you a significant amount of output,
-and it may be an idea to specify an output file as well. The interesting aspect
-of this file is that it allows you to see to some extent (quite precisely,
-actually) what the JIT compiler is up to.
-</para>
-</sect3>
-
-<sect3 id="statistics">
-<title>Statistics</title>
-<para>
-It is also possible to collect some runtime statistics on your program. These
-will give you some idea of the resource utilisation of your program.
-</para>
-<programlisting>
- mono --stats hello.exe
-mono:: is alive and well...
-RESULT: 0
-Mono Jit statistics
-Compiled methods: 58
-Methods cache lookup: 15
-Method trampolines: 698
-Basic blocks: 188
-Max basic blocks: 15
-Allocated vars: 238
-Analyze stack repeat: 61
-Compiled CIL code size: 2450
-Native code size: 10167
-Max code size ratio: 7.13 (FileStream::FlushBuffer)
-Biggest method: 1016 (StreamWriter::Write)
-Code reallocs: 27
-Allocated code size: 22073
-Inlineable methods: 17
-Inlined methods: 22
-
-Created object count: 18
-Initialized classes: 127
-Used classes: 37
-Static data size: 288
-VTable data size: 8292
-</programlisting>
-</sect3>
-
-</sect2>
-
-<sect2 id="ILAsm_code" >
-<title>Inspecting IL Assembly code</title>
-<para>
-Mono also provides a small tool that will let you disassemble
-the executable (.exe) file so you can have a peek
-under the hood. This tool is monodis, and is run as
-follows:
-
-</para>
-<programlisting>
- monodis hello.exe
-.assembly extern mscorlib
-{
- .ver 0:0:0:0
-}
-.assembly 'hello'
-{
- .hash algorithm 0x00008004
- .ver 0:0:0:0
-}
- .class private auto ansi beforefieldinit Hello
- extends [mscorlib]System.Object
- {
-
- // method line 1
- .method public hidebysig specialname rtspecialname
- instance default void .ctor() cil managed
- {
- // Method begins at RVA 0x20ec
- // Code size 7 (0x7)
- .maxstack 8
- IL_0000: ldarg.0
- IL_0001: call instance void System.Object::.ctor()
- IL_0006: ret
- } // end of method instance default void .ctor()
-
- // method line 2
- .method public static
- default void Main(string[] args) cil managed
- {
- // Method begins at RVA 0x20f4
- .entrypoint
- // Code size 56 (0x38)
- .maxstack 5
- .locals init (
- int32 V_0,
- int32 V_1)
- IL_0000: ldstr "mono:: is alive and well..."
- IL_0005: call void System.Console::WriteLine(string)
- IL_000a: ldc.i4.0
- IL_000b: stloc.0
- IL_000c: ldloc.0
- IL_000d: ldarg.s 0
- IL_000f: ldlen
- IL_0010: clt
- IL_0012: brfalse IL_0037
-
- IL_0017: ldstr "Argument {0} = {1}"
- IL_001c: ldloc.0
- IL_001d: box [mscorlib]System.Int32
- IL_0022: ldarg.s 0
- IL_0024: ldloc.0
- IL_0025: ldelem.ref
- IL_0026: call void System.Console::WriteLine(string, object, object)
- IL_002b: nop
- IL_002c: ldloc.0
- IL_002d: ldc.i4.1
- IL_002e: add
- IL_002f: stloc.1
- IL_0030: ldloc.1
- IL_0031: stloc.0
- IL_0032: br IL_000c
-
- IL_0037: ret
- } // end of method default void Main(string[] args)
-
- } // end of type Hello
-
-
-</programlisting>
-<para>
-This is the listing of the code of your program in a language
-called IL assembly, or Common Intermediate Language (CIL). The
-CIL provides the portability of the mono platform, and ensures
-that code compiled with Microsoft's .NET framework will work
-on mono and vice versa.
-</para>
-</sect2>
-
-<sect2 id="man_pages">
-<title>Man pages</title>
-
-<para>
-Mono has man pages already installed, and generally, typing <command>
-man</command> before the command you wish to execute should help in
-getting a list of the options. In many cases, it's still up to you
-to figure out what they do.
-</para>
-
-</sect2>
-
-
-</sect1>
-
-
-<sect1 id="problems">
-<title>Problems</title>
-<para>
-With mono being as new as it is, it is likely that you will have some
-problems with installation. The following are some ideas to help you
-out in a bind:
-</para>
-
-<orderedlist>
-<listitem>
-<para>
-See the Ximian Bugzilla page to find out if there is a bug
-report about your specific issue.
-</para>
-</listitem>
-
-<listitem>
-<para>Read this document. If it does not solve your problem, we want to
-know about it. Please send a message to the email address listed for
-feedback at the beginning of the document.</para>
-</listitem>
-
-<listitem>
-
-<para>
-Visit the mono mailing lists' archives and do a little
-research in there for threads talking about the problem you have.
-</para>
-</listitem>
-
-<listitem>
-<para>
-If you still cannot correct the problem, send a message to the
-mono list. When you do this, please be as precise as possible--i.e.
-mention the system you are running, the version of mono that you have the
-problem with, and give any error codes and other output that might appear.
-</para>
-</listitem>
-</orderedlist>
-
-</sect1>
-
-
-<!-- Legal Sections --> <sect1 id="copyright">
- <title>Copyright and License</title>
-
- <!-- The LDP recommends, but doesn't require, the GFDL --> <para>
- This document, <emphasis>Running mono</emphasis>, is copyrighted
- (c) 2002 by <emphasis>Hinne Hettema</emphasis> and
- <emphasis>Jaime Anguiano Olarra</emphasis>. Permission is
- granted to copy, distribute and/or modify this document under the
- terms of the GNU Free Documentation License, Version 1.1 or any later
- version published by the Free Software Foundation; with no Invariant
- Sections, with no Front-Cover Texts, and with no Back-Cover Texts.
- A copy of the license is included in the section entitled "GNU Free
- Documentation License".
- </para>
-
-<sect2 id="gfdl"> <title>GNU Free Documentation License</title>
-<!-- GNU Project - Free Software Foundation (FSF) -->
-
-<para>Version 1.1, March 2000</para>
-
-<blockquote> <para>Copyright (C) 2000 Free Software Foundation, Inc.
-59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is
-permitted to copy and distribute verbatim copies of this license document,
-but changing it is not allowed.</para> </blockquote>
-
-<sect3 id="gfdl-0"> <title>PREAMBLE</title>
-
-<para>The purpose of this License is to make a manual, textbook,
- or other written document "free" in the sense of freedom: to assure
- everyone the effective freedom to copy and redistribute it, with
- or without modifying it, either commercially or noncommercially.
- Secondarily, this License preserves for the author and publisher
- a way to get credit for their work, while not being considered
- responsible for modifications made by others.</para>
-
-<para>This License is a kind of "copyleft", which means that
- derivative works of the document must themselves be free in the
- same sense. It complements the GNU General Public License, which
- is a copyleft license designed for free software.</para>
-
-<para>We have designed this License in order to use it for manuals
- for free software, because free software needs free documentation:
- a free program should come with manuals providing the same freedoms
- that the software does. But this License is not limited to software
- manuals; it can be used for any textual work, regardless of subject
- matter or whether it is published as a printed book. We recommend
- this License principally for works whose purpose is instruction
- or reference.</para>
-</sect3>
-
-<sect3 id="gfdl-1"> <title>APPLICABILITY AND DEFINITIONS</title>
-
-<para>This License applies to any manual or other work that
- contains a notice placed by the copyright holder saying it can be
- distributed under the terms of this License. The "Document", below,
- refers to any such manual or work. Any member of the public is a
- licensee, and is addressed as "you".</para>
-
-<para>A "Modified Version" of the Document means any work
- containing the Document or a portion of it, either copied verbatim,
- or with modifications and/or translated into another language.</para>
-
-<para>A "Secondary Section" is a named appendix or a front-matter
- section of the Document that deals exclusively with the relationship
- of the publishers or authors of the Document to the Document's overall
- subject (or to related matters) and contains nothing that could fall
- directly within that overall subject. (For example, if the Document
- is in part a textbook of mathematics, a Secondary Section may not
- explain any mathematics.) The relationship could be a matter of
- historical connection with the subject or with related matters, or
- of legal, commercial, philosophical, ethical or political position
- regarding them.</para>
-
-<para>The "Invariant Sections" are certain Secondary Sections
- whose titles are designated, as being those of Invariant Sections,
- in the notice that says that the Document is released under this
- License.</para>
-
-<para>The "Cover Texts" are certain short passages of text that
- are listed, as Front-Cover Texts or Back-Cover Texts, in the notice
- that says that the Document is released under this License.</para>
-
-<para>A "Transparent" copy of the Document means a
- machine-readable copy, represented in a format whose specification
- is available to the general public, whose contents can be viewed and
- edited directly and straightforwardly with generic text editors
- or (for images composed of pixels) generic paint programs or
- (for drawings) some widely available drawing editor, and that is
- suitable for input to text formatters or for automatic translation
- to a variety of formats suitable for input to text formatters.
- A copy made in an otherwise Transparent file format whose markup
- has been designed to thwart or discourage subsequent modification
- by readers is not Transparent. A copy that is not "Transparent"
- is called "Opaque".</para>
-
-<para>Examples of suitable formats for Transparent copies include
- plain ASCII without markup, Texinfo input format, LaTeX input format,
- SGML or XML using a publicly available DTD, and standard-conforming
- simple HTML designed for human modification. Opaque formats include
- PostScript, PDF, proprietary formats that can be read and edited
- only by proprietary word processors, SGML or XML for which the
- DTD and/or processing tools are not generally available, and the
- machine-generated HTML produced by some word processors for output
- purposes only.</para>
-
-<para>The "Title Page" means, for a printed book, the title page
- itself, plus such following pages as are needed to hold, legibly,
- the material this License requires to appear in the title page.
- For works in formats which do not have any title page as such,
- "Title Page" means the text near the most prominent appearance of the
- work's title, preceding the beginning of the body of the text.</para>
-</sect3>
-
-<sect3 id="gfdl-2"> <title>VERBATIM COPYING</title>
-
-<para>You may copy and distribute the Document in any medium,
- either commercially or noncommercially, provided that this License,
- the copyright notices, and the license notice saying this License
- applies to the Document are reproduced in all copies, and that
- you add no other conditions whatsoever to those of this License.
- You may not use technical measures to obstruct or control the
- reading or further copying of the copies you make or distribute.
- However, you may accept compensation in exchange for copies. If you
- distribute a large enough number of copies you must also follow the
- conditions in section 3.</para>
-
-<para>You may also lend copies, under the same conditions stated
- above, and you may publicly display copies.</para>
-</sect3>
-
-<sect3 id="gfdl-3"> <title>COPYING IN QUANTITY</title>
-
-<para>If you publish printed copies of the Document numbering more
- than 100, and the Document's license notice requires Cover Texts, you
- must enclose the copies in covers that carry, clearly and legibly,
- all these Cover Texts: Front-Cover Texts on the front cover, and
- Back-Cover Texts on the back cover. Both covers must also clearly
- and legibly identify you as the publisher of these copies. The front
- cover must present the full title with all words of the title equally
- prominent and visible. You may add other material on the covers
- in addition. Copying with changes limited to the covers, as long as
- they preserve the title of the Document and satisfy these conditions,
- can be treated as verbatim copying in other respects.</para>
-
-<para>If the required texts for either cover are too voluminous to
- fit legibly, you should put the first ones listed (as many as fit
- reasonably) on the actual cover, and continue the rest onto adjacent
- pages.</para>
-
-<para>If you publish or distribute Opaque copies of the Document
- numbering more than 100, you must either include a machine-readable
- Transparent copy along with each Opaque copy, or state in or with each
- Opaque copy a publicly-accessible computer-network location containing
- a complete Transparent copy of the Document, free of added material,
- which the general network-using public has access to download
- anonymously at no charge using public-standard network protocols.
- If you use the latter option, you must take reasonably prudent steps,
- when you begin distribution of Opaque copies in quantity, to ensure
- that this Transparent copy will remain thus accessible at the stated
- location until at least one year after the last time you distribute
- an Opaque copy (directly or through your agents or retailers) of
- that edition to the public.</para>
-
-<para>It is requested, but not required, that you contact the
- authors of the Document well before redistributing any large number
- of copies, to give them a chance to provide you with an updated
- version of the Document.</para>
-</sect3>
-
-<sect3 id="gfdl-4"> <title>MODIFICATIONS</title>
-
-<para>You may copy and distribute a Modified Version of the
- Document under the conditions of sections 2 and 3 above, provided
- that you release the Modified Version under precisely this License,
- with the Modified Version filling the role of the Document, thus
- licensing distribution and modification of the Modified Version
- to whoever possesses a copy of it. In addition, you must do these
- things in the Modified Version:</para>
-
-<orderedlist numeration="upperalpha"> <listitem><para>Use in the
-Title Page
- (and on the covers, if any) a title distinct from that of the
- Document, and from those of previous versions (which should, if
- there were any, be listed in the History section of the Document).
- You may use the same title as a previous version if the original
- publisher of that version gives permission.</para>
-</listitem>
-
-<listitem><para>List on the Title Page,
- as authors, one or more persons or entities responsible for
- authorship of the modifications in the Modified Version, together
- with at least five of the principal authors of the Document (all
- of its principal authors, if it has less than five).</para>
-</listitem>
-
-<listitem><para>State on the Title page
- the name of the publisher of the Modified Version, as the
- publisher.</para>
-</listitem>
-
-<listitem><para>Preserve all the
- copyright notices of the Document.</para>
-</listitem>
-
-<listitem><para>Add an appropriate
- copyright notice for your modifications adjacent to the other
- copyright notices.</para>
-</listitem>
-
-<listitem><para>Include, immediately
- after the copyright notices, a license notice giving the public
- permission to use the Modified Version under the terms of this
- License, in the form shown in the Addendum below.</para>
-</listitem>
-
-<listitem><para>Preserve in that license
- notice the full lists of Invariant Sections and required Cover
- Texts given in the Document's license notice.</para>
-</listitem>
-
-<listitem><para>Include an unaltered
- copy of this License.</para>
-</listitem>
-
-<listitem><para>Preserve the section
- entitled "History", and its title, and add to it an item stating at
- least the title, year, new authors, and publisher of the Modified
- Version as given on the Title Page. If there is no section entitled
- "History" in the Document, create one stating the title, year,
- authors, and publisher of the Document as given on its Title Page,
- then add an item describing the Modified Version as stated in the
- previous sentence.</para>
-</listitem>
-
-<listitem><para>Preserve the network
- location, if any, given in the Document for public access to
- a Transparent copy of the Document, and likewise the network
- locations given in the Document for previous versions it was
- based on. These may be placed in the "History" section. You may
- omit a network location for a work that was published at least four
- years before the Document itself, or if the original publisher of
- the version it refers to gives permission.</para>
-</listitem>
-
-<listitem><para>In any section entitled
- "Acknowledgements" or "Dedications", preserve the section's title,
- and preserve in the section all the substance and tone of each
- of the contributor acknowledgements and/or dedications given
- therein.</para>
-</listitem>
-
-<listitem><para>Preserve all the
- Invariant Sections of the Document, unaltered in their text and in
- their titles. Section numbers or the equivalent are not considered
- part of the section titles.</para>
-</listitem>
-
-<listitem><para>Delete any section
- entitled "Endorsements". Such a section may not be included in
- the Modified Version.</para>
-</listitem>
-
-<listitem><para>Do not retitle any
- existing section as "Endorsements" or to conflict in title with
- any Invariant Section.</para>
-</listitem> </orderedlist> <para>If the Modified Version includes new
-front-matter sections
- or appendices that qualify as Secondary Sections and contain no
- material copied from the Document, you may at your option designate
- some or all of these sections as invariant. To do this, add their
- titles to the list of Invariant Sections in the Modified Version's
- license notice. These titles must be distinct from any other section
- titles.</para>
-
-<para>You may add a section entitled "Endorsements", provided it
- contains nothing but endorsements of your Modified Version by various
- parties--for example, statements of peer review or that the text has
- been approved by an organization as the authoritative definition of
- a standard.</para>
-
-<para>You may add a passage of up to five words as a Front-Cover
- Text, and a passage of up to 25 words as a Back-Cover Text, to the end
- of the list of Cover Texts in the Modified Version. Only one passage
- of Front-Cover Text and one of Back-Cover Text may be added by (or
- through arrangements made by) any one entity. If the Document already
- includes a cover text for the same cover, previously added by you or
- by arrangement made by the same entity you are acting on behalf of,
- you may not add another; but you may replace the old one, on explicit
- permission from the previous publisher that added the old one.</para>
-
-<para>The author(s) and publisher(s) of the Document do not by
- this License give permission to use their names for publicity for
- or to assert or imply endorsement of any Modified Version.</para>
-</sect3>
-
-<sect3 id="gfdl-5"> <title>COMBINING DOCUMENTS</title>
-
-<para>You may combine the Document with other documents released
- under this License, under the terms defined in section 4 above for
- modified versions, provided that you include in the combination all of
- the Invariant Sections of all of the original documents, unmodified,
- and list them all as Invariant Sections of your combined work in
- its license notice.</para>
-
-<para>The combined work need only contain one copy of this
- License, and multiple identical Invariant Sections may be replaced
- with a single copy. If there are multiple Invariant Sections with
- the same name but different contents, make the title of each such
- section unique by adding at the end of it, in parentheses, the
- name of the original author or publisher of that section if known,
- or else a unique number. Make the same adjustment to the section
- titles in the list of Invariant Sections in the license notice of
- the combined work.</para>
-
-<para>In the combination, you must combine any sections entitled
- "History" in the various original documents, forming one section
- entitled "History"; likewise combine any sections entitled
- "Acknowledgements", and any sections entitled "Dedications".
- You must delete all sections entitled "Endorsements."</para>
-</sect3>
-
-<sect3 id="gfdl-6"> <title>COLLECTIONS OF DOCUMENTS</title>
-
-<para>You may make a collection consisting of the Document and
- other documents released under this License, and replace the
- individual copies of this License in the various documents with a
- single copy that is included in the collection, provided that you
- follow the rules of this License for verbatim copying of each of
- the documents in all other respects.</para>
-
-<para>You may extract a single document from such a collection,
- and distribute it individually under this License, provided you
- insert a copy of this License into the extracted document, and follow
- this License in all other respects regarding verbatim copying of
- that document.</para>
-</sect3>
-
-<sect3 id="gfdl-7"> <title>AGGREGATION WITH INDEPENDENT WORKS</title>
-<para>A compilation of the Document or its derivatives with other
- separate and independent documents or works, in or on a volume
- of a storage or distribution medium, does not as a whole count
- as a Modified Version of the Document, provided no compilation
- copyright is claimed for the compilation. Such a compilation is
- called an "aggregate", and this License does not apply to the other
- self-contained works thus compiled with the Document, on account
- of their being thus compiled, if they are not themselves derivative
- works of the Document.</para>
-
-<para>If the Cover Text requirement of section 3 is applicable to
- these copies of the Document, then if the Document is less than
- one quarter of the entire aggregate, the Document's Cover Texts
- may be placed on covers that surround only the Document within
- the aggregate. Otherwise they must appear on covers around the
- whole aggregate.</para>
-</sect3>
-
-<sect3 id="gfdl-8"> <title>TRANSLATION</title>
-
-<para>Translation is considered a kind of modification, so you may
- distribute translations of the Document under the terms of section 4.
- Replacing Invariant Sections with translations requires special
- permission from their copyright holders, but you may include
- translations of some or all Invariant Sections in addition to the
- original versions of these Invariant Sections. You may include
- a translation of this License provided that you also include the
- original English version of this License. In case of a disagreement
- between the translation and the original English version of this
- License, the original English version will prevail.</para>
-</sect3>
-
-<sect3 id="gfdl-9"> <title>TERMINATION</title> <para>You may not copy,
-modify, sublicense, or distribute the
- Document except as expressly provided for under this License.
- Any other attempt to copy, modify, sublicense or distribute the
- Document is void, and will automatically terminate your rights under
- this License. However, parties who have received copies, or rights,
- from you under this License will not have their licenses terminated
- so long as such parties remain in full compliance.</para>
-</sect3>
-
-<sect3 id="gfdl-10"> <title>FUTURE REVISIONS OF THIS LICENSE</title>
-
-<para>The Free Software Foundation may publish new, revised
- versions of the GNU Free Documentation License from
- time to time. Such new versions will be similar
- in spirit to the present version, but may differ in
- detail to address new problems or concerns. See <ulink
- url="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</ulink>.</para>
-
-<para>Each version of the License is given a distinguishing
- version number. If the Document specifies that a particular
- numbered version of this License "or any later version" applies
- to it, you have the option of following the terms and conditions
- either of that specified version or of any later version that has
- been published (not as a draft) by the Free Software Foundation.
- If the Document does not specify a version number of this License,
- you may choose any version ever published (not as a draft) by the
- Free Software Foundation.</para>
-</sect3>
-
-<sect3 id="gfdl-11"> <title>How to use this License for your
-documents</title>
-
-<para>To use this License in a document you have written, include
- a copy of the License in the document and put the following copyright
- and license notices just after the title page:</para>
-
-<blockquote><para> Copyright (c) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the GNU Free Documentation License,
- Version 1.1 or any later version published by the Free Software
- Foundation; with the Invariant Sections being LIST THEIR TITLES,
- with the Front-Cover Texts being LIST, and with the Back-Cover
- Texts being LIST. A copy of the license is included in the section
- entitled "GNU Free Documentation License".
-</para></blockquote>
-
-<para>If you have no Invariant Sections, write "with no Invariant
- Sections" instead of saying which ones are invariant. If you
- have no Front-Cover Texts, write "no Front-Cover Texts" instead of
- "Front-Cover Texts being LIST"; likewise for Back-Cover Texts.</para>
-
-<para>If your document contains nontrivial examples of program
- code, we recommend releasing these examples in parallel under your
- choice of free software license, such as the GNU General Public
- License, to permit their use in free software.</para>
-</sect3> </sect2> </sect1>
-
-</article>
-
-
-
-
-<!-- This document is dedicated to all my friends and to the Mono hackers.
-
- License
-
-Here goes the GFDL, GNU Free Documentation License. -->
-
diff --git a/doc/mono-beginning.xml b/doc/mono-beginning.xml deleted file mode 100644 index 6ab1019c225..00000000000 --- a/doc/mono-beginning.xml +++ /dev/null @@ -1,1294 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> - -<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" []> -<article> - - <articleinfo> - - <!-- Use "HOWTO", "mini HOWTO", "FAQ" in title, if appropriate --> - <title>Running Mono</title> - - - <author> - <firstname>Hinne</firstname> - <surname>Hettema</surname> - <affiliation> - <address><email>h.hettema@auckland.ac.nz</email></address> - </affiliation> - </author> - <author> - <firstname>Jaime</firstname> - <surname>Anguiano Olarra</surname> - <affiliation> - <address><email>jaime@genuara.ugr.es</email></address> - </affiliation> - </author> - - <pubdate>2002-06</pubdate> - - <!-- Most recent revision goes at the top; list in descending order --> - <!-- All dates specified in ISO "YYYY-MM-DD" format --> - <revhistory> - <revision> - <revnumber>0.1</revnumber> - <date>2002-06-20</date> - <authorinitials>HH</authorinitials> - <revremark>First release</revremark> - </revision> - </revhistory> - - <!-- Provide a good abstract; a couple of sentences is sufficient --> - <abstract> - <para> - This document describes how to install mono on your Linux system - from the source and describes some simple experiments you can - perform with this installation. - </para> - </abstract> - - </articleinfo> - - -<sect1 id="intro"> -<title>Introduction</title> - -<para> -Mono is an open source implementation of the Common Language Infrastructure -(CLI) specified in ECMA standard 335. It comes with a C# compiler and -provides an extensible platform to develop and run applications that -are interoperable with Microsoft .NET. -</para> - -<para> -Mono is not finished--it is a project still under development. As a -result, installation and configuration may not be as smooth as you -will be used to from other Linux applications. Nevertheless, mono is -in a state that will allow you to get it up and running and gain -experience with it--which is, I would suggest, a very smart thing to do. -</para> - -<para> -This document is limited in the following sense: it describes how to -download a 'stable' version of mono as a 'tarball' and get it to run on -your computer. I'm also assuming you run mono on Linux rather than -on Windows. All the examples have been tested on a 'vanilla' Red Hat 7.3 -installation. -</para> - -<para> -There are two items this document will <emphasis>not -</emphasis> cover: the first is how to self host the mcs compiler -under linux and the second is the graphical user environment -which is implemented as GTK#. These two interesting topics -are the subject of two more howto's that I'm planning. -</para> - -<para> -This document is also less useful for two types of people. -</para> -<itemizedlist> -<listitem> -<para> -If you are a very inexperienced linux user and want to know what mono is -all about, there is an easier way to install mono. Go to mono.baselabs.org -and download the rpm's ready for installation on your system. This site also -runs a tutorial that is worth reading. -</para> -</listitem> -<listitem> -<para> -If you are a very experienced user wanting to contribute to the mono code, -you should probably regularly do a CVS download. At the moment, the mono -code grows very fast, and the 'stable' releases still appear too slowly. -</para> -</listitem> - -</itemizedlist> - -<para> -This document is aimed at the mono beginner, and aims to present a complete -view of a minimal installation, which will allow you to experiment with -mono to some degree. It also describes some of those experiments. We -expect that after reading this document you'll go on to do either of -two things: -</para> -<orderedlist> -<listitem> -<para> -Continue to contribute to the mono project in some shape or form. The -website has some ideas and suggestions under the heading 'Contributing'. -</para> -</listitem> -<listitem> -<para> -Continue to write applications that run in mono. -</para> -</listitem> -</orderedlist> - -<para> -We hope this document will be useful to you in your first steps with mono. -Happy hacking! -</para> - -<sect2 id="note"> -<title>A note on the development of this document</title> -<para> -This document is expected to grow into a full 'running mono howto' over time. -As of yet, it does not really discuss some of the excellent efforts of others -to package mono into an rpm or deb and prepare it for easy installation. -It is our aim to include this in future versions of this document. -</para> -</sect2> - -<sect2 id="prerequisites"> -<title>Prerequisites</title> -<para> -This document assumes you are somewhat familiar with the architecture -of the Common Language Infrastructure and the C# programming language. -</para> - -<para> -To compile mono on your system, you will also have to satisfy -some dependencies on other software. A list of these are given -on the mono download page. Read through this list to see if -you've got all components. -</para> - -<para> -On a practical note, I had no dependency issues with the -installation of mono 0.12 on a 'standard issue' Red Hat 7.3 build. -</para> - -</sect2> - -<sect2 id="disclaimer"> <title>Disclaimer</title> - -<para> -No liability for the contents of this document can be accepted. -Use the concepts, examples and information at your own risk. There may -be errors and inaccuracies, that could be damaging to your system. -Proceed with caution, and although this is highly unlikely, the author(s) -do not take any responsibility. -</para> - -<para> -All copyrights are held by their by their respective owners, -unless specifically noted otherwise. Use of a term in this document -should not be regarded as affecting the validity of any trademark or -service mark. Naming of particular products or brands should not be -seen as endorsements. -</para> -</sect2> - -<!-- Give credit where credit is due...very important --> <sect2 -id="credits"> <title>Credits / Contributors</title> - -<para> This document was originally created by Jaime Anguiano Olarra, -but has been extensively rewritten. Credits are due to </para> -<itemizedlist> -<listitem> -<para>Jaime Anguiano Olarra <email>jaime@geneura.ugr.es</email> -for creating the original version of this document, and in fact -the document that got me through installing mono for the first time. -</para> -</listitem> -<listitem> -<para> -My partner Margaret for support on my more exotic ventures. -</para> -</listitem> -</itemizedlist> -</sect2> - -<!-- Feedback --> -<sect2 id="feedback"> <title>Feedback</title> - -<para> -Feedback is most certainly welcome for this document. Send your -additions, comments and criticisms to the following email address: -<email>mono-docs-list@ximian.com</email>. I am lurking on this list -and will maintain this document as required. -</para> -</sect2> -</sect1> - -<!-- This is the preamble stuff over with the rest of document -follows... --> -<sect1 id="installation"> -<title> Installing Mono</title> - -<sect2 id="obtaining"> -<title>Obtaining Mono</title> -<para> -There are several ways to get Mono running on your computer. This -document will discuss only one of those: downloading the source tarball -and utilising the make utilities to get mono up and running. There is -only one mono package to worry about if you are just after a 'base' install -of mono: the mono runtime. This package, found under the name "mono-x.xx" -has got a compiled version of the compiler built in. -</para> - -<para> -You'll be able to complete everything in this document if you just install -the runtime, but taking a look at the compiler package is well worth the -effort. The compiler is written in C# and is 'self hosting' which means it -is able to compile itself. -</para> - -<para> -As of this moment, it is my understanding that there are still some issues -with the 'self hosting' bit of the compiler on linux, although this is -expected to work in later versions of mono. If you are just interested in -finding out how mono will work under linux, I would not worry about the -self-hosting bit for now. The self-hosting of the compiler will be the -topic of a future howto. -</para> - -<para> -See <ulink url="http://www.go-mono.com/download">the mono download -site</ulink> for the source of the tarballs. -</para> - -<para> -This page also lists the current versions of the software -mono depends on. Make sure that your system has all the -required versions, otherwise mono won't compile. -</para> - -<para> -At a minimum for mono 0.12, you'll need to: -</para> - -<itemizedlist> -<listitem> -<para> -download and install -<ulink url="http//www.freedesktop.org/software/pkgconfig"> -pkg-config</ulink>. -</para> -</listitem> -<listitem> -<para> -download and install -<ulink url="ftp://ftp.gtk.org/pub/gtk/v1.3/glib-1.3.12.tar.gz"> -glib 1.3</ulink>. -</para> -</listitem> -</itemizedlist> - -<para> -Installing the tarballs is done via GNU autoconf and -automake. The general upshot of running autoconf and automake is that you -can type <command>./configure</command> and then <command> make</command> -to do the build. -Typing <command>make install</command> completes the installation of mono -on your system. -</para> - -<para> -To build the mono runtime package, unzip the tarball to some useful -location. I tend to use <command>/usr/src</command> as the location, -but you could really do it anywhere. For the install process, it is -also a good idea to be 'root'. The installation process will shuttle -some executables into <command>/usr/local/bin</command> (more about -that later). -</para> - -<para> -Unzipping the tarballs will have created two directories in <command> -/usr/src/</command>, one called something like mono-x.xx and the other -mcs-x.xx. The one called 'mono' is the runtime environment, and this contains -all that is initially needed to run mono and investigate its inner workings. -</para> - -<para> -To start building the mono runtime, first type <command>./configure</command>. -You will see an output like this: -</para> -<programlisting> -[root@taurus mono-0.12]# ./configure -loading cache ./config.cache -checking host system type... i686-pc-linux-gnu -checking target system type... i686-pc-linux-gnu -checking build system type... i686-pc-linux-gnu -checking for a BSD compatible install... (cached) /usr/bin/install -c -checking whether build environment is sane... yes -checking whether make sets ${MAKE}... (cached) yes -checking for working aclocal... found - - -snip .... - - -checking BASE_DEPENDENCIES_CFLAGS... -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -checking BASE_DEPENDENCIES_LIBS... -lglib-2.0 -checking for GC_malloc in -lgc... (cached) no -configure: warning: Compiling mono without GC. -checking if off_t is 64 bits wide... no -checking if _FILE_OFFSET_BITS=64 gives 64 bit off_t... ok - -snip ... - -creating Makefile -creating mono/Makefile -creating mono/utils/Makefile -creating mono/metadata/Makefile -creating mono/dis/Makefile -creating mono/cil/Makefile -creating mono/arch/Makefile -creating mono/os/Makefile -creating mono/os/win32/Makefile -creating mono/os/unix/Makefile -creating mono/arch/x86/Makefile -creating mono/arch/ppc/Makefile -creating mono/arch/sparc/Makefile -creating mono/arch/arm/Makefile -creating mono/interpreter/Makefile -creating mono/tests/Makefile -creating mono/benchmark/Makefile -creating mono/monoburg/Makefile -creating mono/monograph/Makefile -creating mono/jit/Makefile -creating mono/io-layer/Makefile -creating mono/handles/Makefile -creating runtime/Makefile -creating scripts/Makefile -creating man/Makefile -creating doc/Makefile -creating docs/Makefile -creating config.h -config.h is unchanged - - - GC: auto - - -[root@taurus mono-0.12]# -</programlisting> - - -<para> -This means that the configure script has now created all the -makefiles necessary to complete the build on your system. -Note the "GC: auto" at the end of the list of commands. -GC stands for "garbage collection" and it -will be addressed in a later section of this document. -</para> -<para> -You are now ready to start the mono "build" process. To kick -this off, you can type <command>make</command> at the -command prompt. You'll see something like this: -</para> - -<programlisting> -[root@taurus mono-0.12]# make -make all-recursive -make[1]: Entering directory `/usr/src/mono-0.12' -Making all in mono -make[2]: Entering directory `/usr/src/mono-0.12/mono' -Making all in utils -make[3]: Entering directory `/usr/src/mono-0.12/mono/utils' -gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I/usr/include/glib-2.0 --I/usr/lib/glib-2.0/include -I/usr/include/glib-2.0 --I/usr/lib/glib-2.0/include -I../.. -I../../mono --D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -Wall --Wunused -Wmissing-prototypes -Wmissing-declarations --Wstrict-prototypes -Wmissing-prototypes -Wnested-externs --Wpointer-arith -Wno-cast-qual -Wcast-align -Wwrite-strings --c mono-hash.c - -</programlisting> -<para> -and this will continue for a while. On my 1 GHz Duron with 256 MB of RAM the -total build process takes about three minutes. All the terrible flags after gcc -have essentially been set by the configure script and there is no need to worry -about these. -</para> -<para> -To finally install mono, you can type <command>make install</command> -to get a working version of mono. This command will copy the -scripts that run the executables to a place where the operating system -will be ale to find them. This location is <command>/usr/local/bin</command> -on my system. -</para> - -</sect2> - -<sect2 id="garbage_collection"> -<title> Garbage Collection</title> -<para> -To make the mint interpreter work with garbage collection, you first need to -install a garbage collection package on your system. Mono works with -Boehm Garbage collection, which is found at -<ulink url="http://www.hpl.hp.com/personal/Hans_Boehm/gc/"> -http://www.hpl.hp.com/personal/Hans_Boehm/gc/ -</ulink>. -</para> - -<para> -To get garbage collection to work, I downloaded the source tarball -into <command>/usr/src/</command> and typed <command>./configure</command> -followed by <command>make</command> and <command>make install</command>. -</para> - -<para> -There is one glitch to work around. The header file for the garbage collection -<command>gc.h</command> is found in the <command>/usr/src/gc6.0/include -</command> directory (at least on my system). The mono build process will break -on this location: it is looking for the header file in some other place called -<command>/usr/include/gc/</command> and won't be able to find the correct -header file. -</para> - -<para> -The solution is to build a symbolic link between these two locations as -follows -</para> - -<programlisting> -[root@taurus include]# ln -s /usr/src/gc6.0/include/ /usr/include/gc -</programlisting> - -<para> -after which you'll be able to list the directory contents as if they were -in <command>/usr/include</command> -</para> - -<programlisting> -[root@taurus include]# pwd -/usr/include -[root@taurus include]# ls /usr/include/gc -cord.h gc_backptr.h gc_inline.h javaxfc.h -ec.h gc_cpp.h gc_local_alloc.h leak_detector.h -gc gc_gcj.h gc_mark.h new_gc_alloc.h -gc_alloc.h gc.h gc_pthread_redirects.h private -gc_amiga_redirects.h gc_inl.h gc_typed.h weakpointer.h -[root@taurus include]# -</programlisting> - -<para> -To get mono to work with garbage collection, you'll have to rebuild the -environment. This is done easily by typing <command>make distclean</command> -to clean up any existing executables. -</para> - -<para> -Continue the build by typing <command>./configure</command>, and look at -the last line. It should read: -</para> - -<programlisting> - -snip... - -creating config.h - - - GC: boehm - - -[root@taurus mono-0.12]# - -</programlisting> - -<para> -The GC: boehm tells you that garbage collection has been turned on. Now to -compile the runtime, you type <command>make</command> and <command> make -install</command> as previously. -</para> - -<para> -You now have mono working with Garbage Collection. -</para> - -<para> -Although my experimentation is incomplete as of this time, I have found some -issues with running Garbage Collection continuously, and my recommendation -would be to turn it off for now. -</para> - -<para> -To turn garbage collection off again, you have to go to the <command>/usr/src -</command> directory where you extracted the tarball. Enter the <command>gc6.0 -</command> directory and type <command>make uninstall</command> to uninstall -Garbage Collection. Then in your <command>mono</command> directory, type -<command>make distclean</command> followed by <command>./configure</command>, -<command>make</command> and <command>make install</command>. -</para> - -</sect2> - -</sect1> - -<sect1 id="running"> -<title>Running mono</title> -<sect2 id="basic"> -<title>Basic steps</title> -<para> -To work with mono, you first have to create a C# program. Open up -your favourite editor, and type in the following code: -</para> -<programlisting> -using System; - -class Hello -{ -public static void Main(String[] args) - { - Console.WriteLine("mono:: is alive and well..."); - - for (int i = 0; i < args.Length; i++) - Console.WriteLine("Argument {0} = {1}", i, args[i]); - } -} -</programlisting> - -<para> -Save the file as hello.cs. To compile this into a working program, -type mcs hello.cs. If you get the following: -</para> -<programlisting> -[hinne@taurus hello]$ mcs hello.cs -RESULT: 0 -[hinne@taurus hello]$ -</programlisting> -<para> -you know the compile worked fine. If you see some strange error -messages including the word 'parser' somewhere, you made a mistake in -your program. Fix this up first. -</para> - -<para> -You are now ready to execute your first mono program. To execute -the code, type -</para> - -<programlisting> -[hinne@taurus hello]$ mono hello.exe arg1 arg2 arg 3 -</programlisting> -<para> -(where we have given some arguments just for fun) and you'll -see the following: -</para> - -<programlisting> -mono:: is alive and well... -Argument 0 = arg1 -Argument 1 = arg2 -Argument 2 = arg -Argument 3 = 3 -RESULT: 0 -</programlisting> -<para> -As you can see, mono printed the line "mono:: is alive and well" -and printed the list of arguments. This completes the creation -and execution of your first mono program. -</para> -</sect2> - -<sect2 id="interpreter"> -<title>Interpreter</title> -<para> -But mono will allow you to do more. First of all, mono is the -compiled mono execution environment which uses the Just in -Time (JIT) compiler. Mono also comes with an interpreted -environment, which can be accessed using the command 'mint' -as follows -</para> -<programlisting> -[hinne@taurus hello]$ mint hello.exe arg1 arg 2 -mono:: is alive and well... -Argument 0 = arg1 -Argument 1 = arg -Argument 2 = 2 -[hinne@taurus hello]$ -</programlisting> -<para> -As you can see, it makes no difference to mono output which -environment you use, but what happens under the hood is very -different. If you use 'mono' as the command line tool, you -call the 'production' execution environment which will read -your portable executable (PE) file, and call the just in -time (JIT) compiler to compile the PE code down to machine -level code (in my case, an x86 architecture) after which -it is executed. -</para> -<para> -If you use mint, the JIT is not used, and the PE code is -interpreted into x86 instructions for execution. In fact, -for our simple 'hello' mint is slightly faster. The point -is that the JIT compiler will take some time to compile the -code of our program and store it in some location in memory, -but the subsequent execution of the code is faster with mono. -</para> -<para> - -You can see what happens below (the thing to look for is the -'user' time: 0.1 seconds with mono and 0.06 seconds with mint): - -</para> -<programlisting> -[hinne@taurus hello]$ time mono hello.exe arg1 arg 2 -mono:: is alive and well... -Argument 0 = arg1 -Argument 1 = arg -Argument 2 = 2 -RESULT: 0 - -real 0m0.575s -user 0m0.100s -sys 0m0.010s -[hinne@taurus hello]$ time mint hello.exe arg1 arg 2 -mono:: is alive and well... -Argument 0 = arg1 -Argument 1 = arg -Argument 2 = 2 - -real 0m0.545s -user 0m0.060s -sys 0m0.000s -[hinne@taurus hello]$ -</programlisting> -<para> -After this simple run of mono, it is time to play with some options. -I won't cover these in detail since there are quite a few, and also because -I assume you downloaded mono to hack it around in the first place. So -I'll leave some pointers. -</para> - - -<sect3 id="debugging"> -<title>Debugging</title> -<para> -Mono supports a debugging option when you specify the "-d" flag while running -the runtime. Utilising this flag will get you a significant amount of output, -and it may be an idea to specify an output file as well. The interesting aspect -of this file is that it allows you to see to some extent (quite precisely, -actually) what the JIT compiler is up to. -</para> -</sect3> - -<sect3 id="statistics"> -<title>Statistics</title> -<para> -It is also possible to collect some runtime statistics on your program. These -will give you some idea of the resource utilisation of your program. -</para> -<programlisting> -[hinne@taurus hello]$ mono --stats hello.exe -mono:: is alive and well... -RESULT: 0 -Mono Jit statistics -Compiled methods: 58 -Methods cache lookup: 15 -Method trampolines: 698 -Basic blocks: 188 -Max basic blocks: 15 -Allocated vars: 238 -Analyze stack repeat: 61 -Compiled CIL code size: 2450 -Native code size: 10167 -Max code size ratio: 7.13 (FileStream::FlushBuffer) -Biggest method: 1016 (StreamWriter::Write) -Code reallocs: 27 -Allocated code size: 22073 -Inlineable methods: 17 -Inlined methods: 22 - -Created object count: 18 -Initialized classes: 127 -Used classes: 37 -Static data size: 288 -VTable data size: 8292 -</programlisting> -</sect3> - -</sect2> - -<sect2 id="ILAsm_code" > -<title>Inspecting IL Assembly code</title> -<para> -Mono also provides a small tool that will let you disassemble -the executable (.exe) file so you can have a peek -under the hood. This tool is monodis, and is run as -follows: - -</para> -<programlisting> -[hinne@taurus hello]$ monodis hello.exe -.assembly extern mscorlib -{ - .ver 0:0:0:0 -} -.assembly 'hello' -{ - .hash algorithm 0x00008004 - .ver 0:0:0:0 -} - .class private auto ansi beforefieldinit Hello - extends [mscorlib]System.Object - { - - // method line 1 - .method public hidebysig specialname rtspecialname - instance default void .ctor() cil managed - { - // Method begins at RVA 0x20ec - // Code size 7 (0x7) - .maxstack 8 - IL_0000: ldarg.0 - IL_0001: call instance void System.Object::.ctor() - IL_0006: ret - } // end of method instance default void .ctor() - - // method line 2 - .method public static - default void Main(string[] args) cil managed - { - // Method begins at RVA 0x20f4 - .entrypoint - // Code size 56 (0x38) - .maxstack 5 - .locals init ( - int32 V_0, - int32 V_1) - IL_0000: ldstr "mono:: is alive and well..." - IL_0005: call void System.Console::WriteLine(string) - IL_000a: ldc.i4.0 - IL_000b: stloc.0 - IL_000c: ldloc.0 - IL_000d: ldarg.s 0 - IL_000f: ldlen - IL_0010: clt - IL_0012: brfalse IL_0037 - - IL_0017: ldstr "Argument {0} = {1}" - IL_001c: ldloc.0 - IL_001d: box [mscorlib]System.Int32 - IL_0022: ldarg.s 0 - IL_0024: ldloc.0 - IL_0025: ldelem.ref - IL_0026: call void System.Console::WriteLine(string, object, object) - IL_002b: nop - IL_002c: ldloc.0 - IL_002d: ldc.i4.1 - IL_002e: add - IL_002f: stloc.1 - IL_0030: ldloc.1 - IL_0031: stloc.0 - IL_0032: br IL_000c - - IL_0037: ret - } // end of method default void Main(string[] args) - - } // end of type Hello - -[hinne@taurus hello]$ -</programlisting> -<para> -This is the listing of the code of your program in a language -called IL assembly, or Common Intermediate Language (CIL). The -CIL provides the portability of the mono platform, and ensures -that code compiled with Microsoft's .NET framework will work -on mono and vice versa. -</para> -</sect2> - -<sect2 id="man_pages"> -<title>Man pages</title> - -<para> -Mono has man pages already installed, and generally, typing <command> -man</command> before the command you wish to execute should help in -getting a list of the options. In many cases, it's still up to you -to figure out what they do. -</para> - -</sect2> - - -</sect1> - - -<sect1 id="problems"> -<title>Problems</title> -<para> -With mono being as new as it is, it is likely that you will have some -problems with installation. The following are some ideas to help you -out in a bind: -</para> - -<orderedlist> -<listitem> -<para> -See the Ximian Bugzilla page to find out if there is a bug -report about your specific issue. -</para> -</listitem> - -<listitem> -<para>Read this document. If it does not solve your problem, we want to -know about it. Please send a message to the email address listed for -feedback at the beginning of the document.</para> -</listitem> - -<listitem> - -<para> -Visit the mono mailing lists' archives and do a little -research in there for threads talking about the problem you have. -</para> -</listitem> - -<listitem> -<para> -If you still cannot correct the problem, send a message to the -mono list. When you do this, please be as precise as possible--i.e. -mention the system you are running, the version of mono that you have the -problem with, and give any error codes and other output that might appear. -</para> -</listitem> -</orderedlist> - -</sect1> - -<sect1 id="knownproblems"> -<title>Known Problems</title> - -<para> mcs fails to compile in Linux. -To the best of my knowledge, as of yet mcs cannot compile in Linux. -Try to install the already made packages from -http://mono.baselabs.org/index.php/software. </para> -</sect1> - -<!-- Legal Sections --> <sect1 id="copyright"> - <title>Copyright and License</title> - - <!-- The LDP recommends, but doesn't require, the GFDL --> <para> - This document, <emphasis>Running mono</emphasis>, is copyrighted - (c) 2002 by <emphasis>Hinne Hettema</emphasis> and - <emphasis>Jaime Anguiano Olarra</emphasis>. Permission is - granted to copy, distribute and/or modify this document under the - terms of the GNU Free Documentation License, Version 1.1 or any later - version published by the Free Software Foundation; with no Invariant - Sections, with no Front-Cover Texts, and with no Back-Cover Texts. - A copy of the license is included in the section entitled "GNU Free - Documentation License". - </para> - -<sect2 id="gfdl"> <title>GNU Free Documentation License</title> -<!-- GNU Project - Free Software Foundation (FSF) --> - -<para>Version 1.1, March 2000</para> - -<blockquote> <para>Copyright (C) 2000 Free Software Foundation, Inc. -59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is -permitted to copy and distribute verbatim copies of this license document, -but changing it is not allowed.</para> </blockquote> - -<sect3 id="gfdl-0"> <title>PREAMBLE</title> - -<para>The purpose of this License is to make a manual, textbook, - or other written document "free" in the sense of freedom: to assure - everyone the effective freedom to copy and redistribute it, with - or without modifying it, either commercially or noncommercially. - Secondarily, this License preserves for the author and publisher - a way to get credit for their work, while not being considered - responsible for modifications made by others.</para> - -<para>This License is a kind of "copyleft", which means that - derivative works of the document must themselves be free in the - same sense. It complements the GNU General Public License, which - is a copyleft license designed for free software.</para> - -<para>We have designed this License in order to use it for manuals - for free software, because free software needs free documentation: - a free program should come with manuals providing the same freedoms - that the software does. But this License is not limited to software - manuals; it can be used for any textual work, regardless of subject - matter or whether it is published as a printed book. We recommend - this License principally for works whose purpose is instruction - or reference.</para> -</sect3> - -<sect3 id="gfdl-1"> <title>APPLICABILITY AND DEFINITIONS</title> - -<para>This License applies to any manual or other work that - contains a notice placed by the copyright holder saying it can be - distributed under the terms of this License. The "Document", below, - refers to any such manual or work. Any member of the public is a - licensee, and is addressed as "you".</para> - -<para>A "Modified Version" of the Document means any work - containing the Document or a portion of it, either copied verbatim, - or with modifications and/or translated into another language.</para> - -<para>A "Secondary Section" is a named appendix or a front-matter - section of the Document that deals exclusively with the relationship - of the publishers or authors of the Document to the Document's overall - subject (or to related matters) and contains nothing that could fall - directly within that overall subject. (For example, if the Document - is in part a textbook of mathematics, a Secondary Section may not - explain any mathematics.) The relationship could be a matter of - historical connection with the subject or with related matters, or - of legal, commercial, philosophical, ethical or political position - regarding them.</para> - -<para>The "Invariant Sections" are certain Secondary Sections - whose titles are designated, as being those of Invariant Sections, - in the notice that says that the Document is released under this - License.</para> - -<para>The "Cover Texts" are certain short passages of text that - are listed, as Front-Cover Texts or Back-Cover Texts, in the notice - that says that the Document is released under this License.</para> - -<para>A "Transparent" copy of the Document means a - machine-readable copy, represented in a format whose specification - is available to the general public, whose contents can be viewed and - edited directly and straightforwardly with generic text editors - or (for images composed of pixels) generic paint programs or - (for drawings) some widely available drawing editor, and that is - suitable for input to text formatters or for automatic translation - to a variety of formats suitable for input to text formatters. - A copy made in an otherwise Transparent file format whose markup - has been designed to thwart or discourage subsequent modification - by readers is not Transparent. A copy that is not "Transparent" - is called "Opaque".</para> - -<para>Examples of suitable formats for Transparent copies include - plain ASCII without markup, Texinfo input format, LaTeX input format, - SGML or XML using a publicly available DTD, and standard-conforming - simple HTML designed for human modification. Opaque formats include - PostScript, PDF, proprietary formats that can be read and edited - only by proprietary word processors, SGML or XML for which the - DTD and/or processing tools are not generally available, and the - machine-generated HTML produced by some word processors for output - purposes only.</para> - -<para>The "Title Page" means, for a printed book, the title page - itself, plus such following pages as are needed to hold, legibly, - the material this License requires to appear in the title page. - For works in formats which do not have any title page as such, - "Title Page" means the text near the most prominent appearance of the - work's title, preceding the beginning of the body of the text.</para> -</sect3> - -<sect3 id="gfdl-2"> <title>VERBATIM COPYING</title> - -<para>You may copy and distribute the Document in any medium, - either commercially or noncommercially, provided that this License, - the copyright notices, and the license notice saying this License - applies to the Document are reproduced in all copies, and that - you add no other conditions whatsoever to those of this License. - You may not use technical measures to obstruct or control the - reading or further copying of the copies you make or distribute. - However, you may accept compensation in exchange for copies. If you - distribute a large enough number of copies you must also follow the - conditions in section 3.</para> - -<para>You may also lend copies, under the same conditions stated - above, and you may publicly display copies.</para> -</sect3> - -<sect3 id="gfdl-3"> <title>COPYING IN QUANTITY</title> - -<para>If you publish printed copies of the Document numbering more - than 100, and the Document's license notice requires Cover Texts, you - must enclose the copies in covers that carry, clearly and legibly, - all these Cover Texts: Front-Cover Texts on the front cover, and - Back-Cover Texts on the back cover. Both covers must also clearly - and legibly identify you as the publisher of these copies. The front - cover must present the full title with all words of the title equally - prominent and visible. You may add other material on the covers - in addition. Copying with changes limited to the covers, as long as - they preserve the title of the Document and satisfy these conditions, - can be treated as verbatim copying in other respects.</para> - -<para>If the required texts for either cover are too voluminous to - fit legibly, you should put the first ones listed (as many as fit - reasonably) on the actual cover, and continue the rest onto adjacent - pages.</para> - -<para>If you publish or distribute Opaque copies of the Document - numbering more than 100, you must either include a machine-readable - Transparent copy along with each Opaque copy, or state in or with each - Opaque copy a publicly-accessible computer-network location containing - a complete Transparent copy of the Document, free of added material, - which the general network-using public has access to download - anonymously at no charge using public-standard network protocols. - If you use the latter option, you must take reasonably prudent steps, - when you begin distribution of Opaque copies in quantity, to ensure - that this Transparent copy will remain thus accessible at the stated - location until at least one year after the last time you distribute - an Opaque copy (directly or through your agents or retailers) of - that edition to the public.</para> - -<para>It is requested, but not required, that you contact the - authors of the Document well before redistributing any large number - of copies, to give them a chance to provide you with an updated - version of the Document.</para> -</sect3> - -<sect3 id="gfdl-4"> <title>MODIFICATIONS</title> - -<para>You may copy and distribute a Modified Version of the - Document under the conditions of sections 2 and 3 above, provided - that you release the Modified Version under precisely this License, - with the Modified Version filling the role of the Document, thus - licensing distribution and modification of the Modified Version - to whoever possesses a copy of it. In addition, you must do these - things in the Modified Version:</para> - -<orderedlist numeration="upperalpha"> <listitem><para>Use in the -Title Page - (and on the covers, if any) a title distinct from that of the - Document, and from those of previous versions (which should, if - there were any, be listed in the History section of the Document). - You may use the same title as a previous version if the original - publisher of that version gives permission.</para> -</listitem> - -<listitem><para>List on the Title Page, - as authors, one or more persons or entities responsible for - authorship of the modifications in the Modified Version, together - with at least five of the principal authors of the Document (all - of its principal authors, if it has less than five).</para> -</listitem> - -<listitem><para>State on the Title page - the name of the publisher of the Modified Version, as the - publisher.</para> -</listitem> - -<listitem><para>Preserve all the - copyright notices of the Document.</para> -</listitem> - -<listitem><para>Add an appropriate - copyright notice for your modifications adjacent to the other - copyright notices.</para> -</listitem> - -<listitem><para>Include, immediately - after the copyright notices, a license notice giving the public - permission to use the Modified Version under the terms of this - License, in the form shown in the Addendum below.</para> -</listitem> - -<listitem><para>Preserve in that license - notice the full lists of Invariant Sections and required Cover - Texts given in the Document's license notice.</para> -</listitem> - -<listitem><para>Include an unaltered - copy of this License.</para> -</listitem> - -<listitem><para>Preserve the section - entitled "History", and its title, and add to it an item stating at - least the title, year, new authors, and publisher of the Modified - Version as given on the Title Page. If there is no section entitled - "History" in the Document, create one stating the title, year, - authors, and publisher of the Document as given on its Title Page, - then add an item describing the Modified Version as stated in the - previous sentence.</para> -</listitem> - -<listitem><para>Preserve the network - location, if any, given in the Document for public access to - a Transparent copy of the Document, and likewise the network - locations given in the Document for previous versions it was - based on. These may be placed in the "History" section. You may - omit a network location for a work that was published at least four - years before the Document itself, or if the original publisher of - the version it refers to gives permission.</para> -</listitem> - -<listitem><para>In any section entitled - "Acknowledgements" or "Dedications", preserve the section's title, - and preserve in the section all the substance and tone of each - of the contributor acknowledgements and/or dedications given - therein.</para> -</listitem> - -<listitem><para>Preserve all the - Invariant Sections of the Document, unaltered in their text and in - their titles. Section numbers or the equivalent are not considered - part of the section titles.</para> -</listitem> - -<listitem><para>Delete any section - entitled "Endorsements". Such a section may not be included in - the Modified Version.</para> -</listitem> - -<listitem><para>Do not retitle any - existing section as "Endorsements" or to conflict in title with - any Invariant Section.</para> -</listitem> </orderedlist> <para>If the Modified Version includes new -front-matter sections - or appendices that qualify as Secondary Sections and contain no - material copied from the Document, you may at your option designate - some or all of these sections as invariant. To do this, add their - titles to the list of Invariant Sections in the Modified Version's - license notice. These titles must be distinct from any other section - titles.</para> - -<para>You may add a section entitled "Endorsements", provided it - contains nothing but endorsements of your Modified Version by various - parties--for example, statements of peer review or that the text has - been approved by an organization as the authoritative definition of - a standard.</para> - -<para>You may add a passage of up to five words as a Front-Cover - Text, and a passage of up to 25 words as a Back-Cover Text, to the end - of the list of Cover Texts in the Modified Version. Only one passage - of Front-Cover Text and one of Back-Cover Text may be added by (or - through arrangements made by) any one entity. If the Document already - includes a cover text for the same cover, previously added by you or - by arrangement made by the same entity you are acting on behalf of, - you may not add another; but you may replace the old one, on explicit - permission from the previous publisher that added the old one.</para> - -<para>The author(s) and publisher(s) of the Document do not by - this License give permission to use their names for publicity for - or to assert or imply endorsement of any Modified Version.</para> -</sect3> - -<sect3 id="gfdl-5"> <title>COMBINING DOCUMENTS</title> - -<para>You may combine the Document with other documents released - under this License, under the terms defined in section 4 above for - modified versions, provided that you include in the combination all of - the Invariant Sections of all of the original documents, unmodified, - and list them all as Invariant Sections of your combined work in - its license notice.</para> - -<para>The combined work need only contain one copy of this - License, and multiple identical Invariant Sections may be replaced - with a single copy. If there are multiple Invariant Sections with - the same name but different contents, make the title of each such - section unique by adding at the end of it, in parentheses, the - name of the original author or publisher of that section if known, - or else a unique number. Make the same adjustment to the section - titles in the list of Invariant Sections in the license notice of - the combined work.</para> - -<para>In the combination, you must combine any sections entitled - "History" in the various original documents, forming one section - entitled "History"; likewise combine any sections entitled - "Acknowledgements", and any sections entitled "Dedications". - You must delete all sections entitled "Endorsements."</para> -</sect3> - -<sect3 id="gfdl-6"> <title>COLLECTIONS OF DOCUMENTS</title> - -<para>You may make a collection consisting of the Document and - other documents released under this License, and replace the - individual copies of this License in the various documents with a - single copy that is included in the collection, provided that you - follow the rules of this License for verbatim copying of each of - the documents in all other respects.</para> - -<para>You may extract a single document from such a collection, - and distribute it individually under this License, provided you - insert a copy of this License into the extracted document, and follow - this License in all other respects regarding verbatim copying of - that document.</para> -</sect3> - -<sect3 id="gfdl-7"> <title>AGGREGATION WITH INDEPENDENT WORKS</title> -<para>A compilation of the Document or its derivatives with other - separate and independent documents or works, in or on a volume - of a storage or distribution medium, does not as a whole count - as a Modified Version of the Document, provided no compilation - copyright is claimed for the compilation. Such a compilation is - called an "aggregate", and this License does not apply to the other - self-contained works thus compiled with the Document, on account - of their being thus compiled, if they are not themselves derivative - works of the Document.</para> - -<para>If the Cover Text requirement of section 3 is applicable to - these copies of the Document, then if the Document is less than - one quarter of the entire aggregate, the Document's Cover Texts - may be placed on covers that surround only the Document within - the aggregate. Otherwise they must appear on covers around the - whole aggregate.</para> -</sect3> - -<sect3 id="gfdl-8"> <title>TRANSLATION</title> - -<para>Translation is considered a kind of modification, so you may - distribute translations of the Document under the terms of section 4. - Replacing Invariant Sections with translations requires special - permission from their copyright holders, but you may include - translations of some or all Invariant Sections in addition to the - original versions of these Invariant Sections. You may include - a translation of this License provided that you also include the - original English version of this License. In case of a disagreement - between the translation and the original English version of this - License, the original English version will prevail.</para> -</sect3> - -<sect3 id="gfdl-9"> <title>TERMINATION</title> <para>You may not copy, -modify, sublicense, or distribute the - Document except as expressly provided for under this License. - Any other attempt to copy, modify, sublicense or distribute the - Document is void, and will automatically terminate your rights under - this License. However, parties who have received copies, or rights, - from you under this License will not have their licenses terminated - so long as such parties remain in full compliance.</para> -</sect3> - -<sect3 id="gfdl-10"> <title>FUTURE REVISIONS OF THIS LICENSE</title> - -<para>The Free Software Foundation may publish new, revised - versions of the GNU Free Documentation License from - time to time. Such new versions will be similar - in spirit to the present version, but may differ in - detail to address new problems or concerns. See <ulink - url="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</ulink>.</para> - -<para>Each version of the License is given a distinguishing - version number. If the Document specifies that a particular - numbered version of this License "or any later version" applies - to it, you have the option of following the terms and conditions - either of that specified version or of any later version that has - been published (not as a draft) by the Free Software Foundation. - If the Document does not specify a version number of this License, - you may choose any version ever published (not as a draft) by the - Free Software Foundation.</para> -</sect3> - -<sect3 id="gfdl-11"> <title>How to use this License for your -documents</title> - -<para>To use this License in a document you have written, include - a copy of the License in the document and put the following copyright - and license notices just after the title page:</para> - -<blockquote><para> Copyright (c) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.1 or any later version published by the Free Software - Foundation; with the Invariant Sections being LIST THEIR TITLES, - with the Front-Cover Texts being LIST, and with the Back-Cover - Texts being LIST. A copy of the license is included in the section - entitled "GNU Free Documentation License". -</para></blockquote> - -<para>If you have no Invariant Sections, write "with no Invariant - Sections" instead of saying which ones are invariant. If you - have no Front-Cover Texts, write "no Front-Cover Texts" instead of - "Front-Cover Texts being LIST"; likewise for Back-Cover Texts.</para> - -<para>If your document contains nontrivial examples of program - code, we recommend releasing these examples in parallel under your - choice of free software license, such as the GNU General Public - License, to permit their use in free software.</para> -</sect3> </sect2> </sect1> - -</article> - diff --git a/doc/mono-build-w32.sh b/doc/mono-build-w32.sh deleted file mode 100755 index 4e011f24d04..00000000000 --- a/doc/mono-build-w32.sh +++ /dev/null @@ -1,201 +0,0 @@ -#!/bin/bash - -# Script to automate the building of mono and its dependencies on -# cygwin. Relies on wget being installed (could make it fall back to -# using lynx, links, w3, curl etc), assumes that gcc, make, tar, -# automake, etc are already installed too (may be worth testing for -# all that right at the top and bailing out if missing/too old/too new -# etc). - - -# See where we are. This will become the top level directory for the -# installation, unless we are given an alternative location -here=$1 -test -z "$here" && here=`pwd` - -echo "Building Mono and dependencies in $here, installing to $here/install" - -PATH=$here/install/bin:$here/install/lib:$PATH - -# Make sure cygwin's libiconv is installed, or libtool blows its tiny mind -if [ ! -f /usr/lib/libiconv.la ]; then - echo "You need to install the cygwin \"libiconv\" package!" - exit -1 -fi - -# Check mono out first, so we can run aclocal from inside the mono dir (it -# needs to see which version of the real aclocal to run) -test -z "$CVSROOT" && CVSROOT=:pserver:anonymous@anoncvs.go-mono.com:/mono -export CVSROOT - -echo "Updating mono" - -# cvs checkout does the same as cvs update, except that it copes with -# new modules being added - -# Older versions of cvs insist on a cvs login for :pserver: methods -# Make sure cvs is using ssh for :ext: methods - -if [ ${CVSROOT:0:5} = ":ext:" ]; then - CVS_RSH=ssh - export CVS_RSH -elif [ ${CVSROOT:0:9} = ":pserver:" ]; then - if ! grep $CVSROOT ~/.cvspass > /dev/null 2>&1 ; then - echo "Logging into CVS server. Anonymous CVS password is probably empty" - cvs login || exit -1 - fi -fi - -cvs checkout mono || exit -1 - -echo "Checking automake version" -automake_required="1.6.2" -automake_version=`automake --version | head -1 | awk '{print $4}' | tr -d '[a-zA-Z]' | sed 's/-.*$//g'` -echo "Found automake version $automake_version" -if expr $automake_version \< $automake_required > /dev/null; then - echo "Your automake is too old! You need version $automake_required or newer." - exit -1 -else - echo "Automake version new enough." -fi - -# This causes libgc-not-found problem -# -## Select the stable version anyway... -#if [ ! -z "${AUTO_STABLE}" -o -e /usr/autotool/stable ]; then -# export AUTO_STABLE=${AUTO_STABLE:-/usr/autotool/stable} -# export AUTO_DEVEL=${AUTO_STABLE} -#fi - -# Need to install pkgconfig and set ACLOCAL_FLAGS if there is not a -# pkgconfig installed already. Otherwise set PKG_CONFIG_PATH to the -# glib we're about to install in $here/install. - - -# --print-ac-dir was added in 1.2h according to the ChangeLog. This -# should mean that any automake new enough for us has it. - -# This sets ACLOCAL_FLAGS to point to the freshly installed pkgconfig -# if it doesnt already exist on the system (otherwise auto* breaks if -# it finds two copies of the m4 macros). The GIMP for Windows -# pkgconfig sets its prefix based on the location of its binary, so we -# dont need PKG_CONFIG_PATH (the internal pkgconfig config file -# $prefix is handled similarly). For the cygwin pkgconfig we do need to -# set it, and we need to edit the mingw pc files too. - -function aclocal_scan () { - # Quietly ignore the rogue '-I' and other aclocal flags that - # aren't actually directories... - # - # cd into mono/ so that the aclocal wrapper can work out which version - # of aclocal to run, and add /usr/share/aclocal too cos aclocal looks there - # too. - for i in `(cd mono && aclocal --print-ac-dir)` /usr/share/aclocal $ACLOCAL_FLAGS - do - if [ -f $i/$1 ]; then - return 0 - fi - done - - return 1 -} - -function install_icuconfig() { - if [ ! -f $here/install/bin/icu-config ]; then - wget http://www.go-mono.com/archive/icu-config - mv icu-config $here/install/bin - chmod 755 $here/install/bin/icu-config - fi -} - - -function install_package() { - zipfile=$1 - markerfile=$2 - name=$3 - - echo "Installing $name..." - if [ ! -f $here/$zipfile ]; then - wget http://www.go-mono.com/archive/$zipfile - fi - - # Assume that the package is installed correctly if the marker - # file is there - if [ ! -f $here/install/$markerfile ]; then - (cd $here/install || exit -1; unzip -o $here/$zipfile || exit -1) || exit -1 - fi -} - -# pkgconfig is only used during the build, so we can use the cygwin version -# if it exists -if aclocal_scan pkg.m4 ; then - install_pkgconfig=no -else - install_pkgconfig=yes -fi - -# This causes libgc-not-found problem -# -## But we still need to use the mingw libs for glib & co -#ACLOCAL_FLAGS="-I $here/install/share/aclocal $ACLOCAL_FLAGS" - -#export PATH -#export ACLOCAL_FLAGS - -# Grab pkg-config, glib etc -if [ ! -d $here/install ]; then - mkdir $here/install || exit -1 -fi - -# Fetch and install pkg-config, glib, iconv, intl - -if [ $install_pkgconfig = "yes" ]; then - install_package pkgconfig-0.11-20020310.zip bin/pkg-config.exe pkgconfig -else - echo "Not installing pkgconfig, you already seem to have it installed" -fi -install_package glib-2.0.4-20020703.zip lib/libglib-2.0-0.dll glib -install_package glib-dev-2.0.4-20020703.zip lib/glib-2.0.lib glib-dev -install_package libiconv-1.7.zip lib/iconv.dll iconv -install_package libintl-0.10.40-20020101.zip lib/libintl-1.dll intl -install_package libgc-dev.zip lib/gc.dll gc-dev -install_package icu-2.6.1-Win32_msvc7.zip icu/bin/icuuc26.dll icu - -install_icuconfig - -if [ $install_pkgconfig = "no" ]; then - echo "Fixing up the pkgconfig paths" - for i in $here/install/lib/pkgconfig/*.pc - do - mv $i $i.orig - sed -e "s@^prefix=/target\$@prefix=$here/install@" < $i.orig > $i - done - export PKG_CONFIG_PATH=$here/install/lib/pkgconfig -fi - -# Needed to find the libgc bits -export CFLAGS="-I $here/install/include -I $here/install/icu/include" -export LDFLAGS="-L$here/install/lib -L$here/install/icu/lib" -export PATH="$here/install/icu/bin:$PATH" - -# Make sure we build native w32, not cygwin -#CC="gcc -mno-cygwin" -#export CC - -# --prefix is used to set the class library dir in mono, and it needs -# to be in windows-native form. It also needs to have '\' turned into -# '/' to avoid quoting issues during the build. -prefix=`cygpath -w $here/install | sed -e 's@\\\\@/@g'` - -# Build and install mono -echo "Building and installing mono" - -(cd $here/mono; ./autogen.sh --prefix=$prefix || exit -1; make || exit -1; make install || exit -1) || exit -1 - - -echo "" -echo "" -echo "All done." -echo "Add $here/install/bin and $here/install/lib to \$PATH" -echo "Don't forget to copy the class libraries to $here/install/lib" - diff --git a/doc/mono-build.sh b/doc/mono-build.sh deleted file mode 100755 index 17b604cc273..00000000000 --- a/doc/mono-build.sh +++ /dev/null @@ -1,254 +0,0 @@ -#! /usr/bin/env bash - -# Script to automate the building of mono and its dependencies. -# Relies on wget being installed (could make it fall back to using -# lynx, links, w3, curl etc), assumes that gcc, make, tar, automake, -# etc are already installed too (may be worth testing for all that -# right at the top and bailing out if missing/too old/too new etc). - - -# See where we are. This will become the top level directory for the -# installation, unless we are given an alternative location -here=$1 -test -z "$here" && here=`pwd` - -echo "Building Mono and dependencies in $here, installing to $here/install" - -PATH=$here/install/bin:$PATH -LD_LIBRARY_PATH=$here/install/lib:$LD_LIBRARY_PATH - -# Find a tool to fetch files. It must take an HTTP URL on the command line and -# save the file in the current directory. (It must also talk HTTP/1.1, which -# rules out BSD's ftp(1), at least on FreeBSD 4.4.) -viable_downloaders="wget fetch" -for i in $viable_downloaders -do - if which $i > /dev/null; then - downloader=`which $i` - break - fi -done - -if [ -z "$downloader" ]; then - echo "Can't find a commandline download tool (tried: $viable_downloaders)" - exit -1 -else - echo "Using $downloader to fetch files" -fi - -# We need to prefer GNU make if there's a choice. BSD make falls over in -# the glib build if gtk-doc is disabled. -viable_makers="gmake make" -for i in $viable_makers -do - if which $i > /dev/null; then - MAKE=$i - break - fi -done - -if [ -z "$MAKE" ]; then - echo "Can't find a make tool (tried: $viable_makers)" - exit -1 -else - echo "Using $MAKE" - export MAKE -fi - -# Need to install pkgconfig and set ACLOCAL_FLAGS if there is not a -# pkgconfig installed already. Otherwise set PKG_CONFIG_PATH to the -# glib we're about to install in $here/install. This script could -# attempt to be clever and see if glib 2 is already installed, too. - - -# --print-ac-dir was added in 1.2h according to the ChangeLog. This -# should mean that any automake new enough for us has it. - -function aclocal_scan () { - # Quietly ignore the rogue '-I' and other aclocal flags that - # aren't actually directories... - for i in `aclocal --print-ac-dir` $ACLOCAL_FLAGS - do - if [ -f $i/$1 ]; then - return 0 - fi - done - - return 1 -} - -function pkgconfig_scan () { - module=$1 - - echo "Finding pkgconfig files for $module..." - - # Should we use locate? or just a list of well-known directories? - # locate has the problem of false positives in src dirs - for i in /usr/lib/pkgconfig /usr/local/lib/pkgconfig - do - echo "Looking in $i..." - if [ -f $i/${module}.pc ]; then - echo $i - return - fi - done -} - -function install_package() { - tarfile=$1 - dirname=$2 - name=$3 - configure_options=$4 - - echo "Installing $name..." - if [ ! -f $here/$tarfile ]; then - (cd $here && $downloader http://www.go-mono.com/archive/$tarfile) - fi - - # Assume that the package built correctly if the dir is there - if [ ! -d $here/$dirname ]; then - # Build and install package - (cd $here && tar xzf $tarfile) || exit -1 - (cd $here/$dirname; ./configure --prefix=$here/install $configure_options || exit -1; $MAKE || exit -1; $MAKE install || exit -1) - success=$? - if [ $success -ne 0 ]; then - echo "***** $name build failure. Run rm -rf $here/$dirname to have this script attempt to build $name again next time" - exit -1 - fi - fi -} - -if aclocal_scan pkg.m4 ; then - install_pkgconfig=no -else - install_pkgconfig=yes -fi - -if aclocal_scan glib-2.0.m4 ; then - install_glib=no - if [ $install_pkgconfig = "yes" ]; then - # We have to tell the newly-installed pkgconfig about the - # system-installed glib - PKG_CONFIG_PATH=`pkgconfig_scan glib-2.0`:$PKG_CONFIG_PATH - fi -else - install_glib=yes - PKG_CONFIG_PATH="$here/install/lib/pkgconfig:$PKG_CONFIG_PATH" -fi - -if [ -f /usr/include/gc/gc.h ]; then - install_libgc=no -else - install_libgc=yes -fi - -if [ $install_pkgconfig = "yes" -o $install_glib = "yes" ]; then - ACLOCAL_FLAGS="-I $here/install/share/aclocal $ACLOCAL_FLAGS" -fi - -export PATH -export LD_LIBRARY_PATH -export ACLOCAL_FLAGS -export PKG_CONFIG_PATH - -# Freebsd puts iconv in /usr/local, so see if we need to add -# /usr/local/include and /usr/local/lib to CPPFLAGS and LDFLAGS. We could -# skip this if it would add /usr/include and /usr/lib, but leaving it -# shouldnt break anything. -# -# Actually, it does break stuff :-( gcc 3.2 prints gratuitous warnings -# and configure fails to find header files because of this cpp output. - -if [ ! -f /usr/include/iconv.h ]; then - iconvdirs="/usr/local/include" - for i in $iconvdirs - do - if [ -f $i/iconv.h ]; then - iconvh_dir=$i - break - fi - done - - if [ -z "$iconvh_dir" ]; then - echo "Can't find iconv headers (looked in $iconvdirs)" - exit -1 - fi - - iconvlib_dir=`echo $iconvh_dir | sed -e 's/include/lib/'` - - echo "Adding $iconvh_dir to CPPFLAGS" - echo "Adding $iconvlib_dir to LDFLAGS" - - CPPFLAGS="$CPPFLAGS -I$here/install/include -I$iconvh_dir" - LDFLAGS="$LDFLAGS -L$here/install/lib -L$iconvlib_dir" -else - CPPFLAGS="$CPPFLAGS -I$here/install/include" - LDFLAGS="$LDFLAGS -L$here/install/lib" -fi - -export CPPFLAGS -export LDFLAGS - -# Grab pkg-config, glib and libgc if necessary - -if [ $install_pkgconfig = "yes" ]; then - install_package pkgconfig-0.8.0.tar.gz pkgconfig-0.8.0 pkgconfig "" -else - echo "Not installing pkgconfig, you already seem to have it installed" -fi - -if [ $install_glib = "yes" ]; then - install_package glib-2.0.6.tar.gz glib-2.0.6 glib "" -else - echo "Not installing glib, you already seem to have it installed" -fi - -if [ $install_libgc = "yes" ]; then - install_package gc6.1alpha5.tar.gz gc6.1alpha5 libgc "--enable-threads=pthreads" - # make install didnt do the headers! - mkdir -p $here/install/include/gc - cp -r $here/gc6.1alpha5/include/* $here/install/include/gc -else - echo "Not installing libgc, you already seem to have it installed" -fi - -# End of build dependencies, now get the latest mono checkout and build that - -test -z "$CVSROOT" && CVSROOT=:pserver:anonymous@anoncvs.go-mono.com:/mono -export CVSROOT - -echo "Updating mono" - -# cvs checkout does the same as cvs update, except that it copes with -# new modules being added - -# Older versions of cvs insist on a cvs login for :pserver: methods -# Make sure cvs is using ssh for :ext: methods - -if [ ${CVSROOT:0:5} = ":ext:" ]; then - CVS_RSH=ssh - export CVS_RSH -elif [ ${CVSROOT:0:9} = ":pserver:" ]; then - # Chop off the trailing /mono because cvs 1.11 adds the port number - # into the .cvspass line - if ! grep ${CVSROOT%:/mono} ~/.cvspass > /dev/null 2>&1 ; then - echo "Logging into CVS server. Anonymous CVS password is probably empty" - cvs login - fi -fi - -(cd $here && cvs checkout mono) || exit -1 - -# Build and install mono -echo "Building and installing mono" - -(cd $here/mono; ./autogen.sh --prefix=$here/install || exit -1; $MAKE || exit -1; $MAKE install || exit -1) || exit -1 - - -echo "" -echo "" -echo "All done." -echo "Add $here/install/bin to \$PATH" -echo "Add $here/install/lib to \$LD_LIBRARY_PATH" -echo "Don't forget to copy the class libraries to $here/install/lib" - diff --git a/doc/mono-contribution-howto b/doc/mono-contribution-howto deleted file mode 100644 index ea3a4eaae53..00000000000 --- a/doc/mono-contribution-howto +++ /dev/null @@ -1,551 +0,0 @@ - - <Mono newbie coders start file> - <h1> A little help for mono newbie coders </h1> - - - For those who are new to Mono and are impatient to contribute - with code (uhh... you are brave!!) here is the document you - should read. - - - You will see all Mono hackers say the same (great minds have - similar way of thinking): First, DO WRITE TESTS!!!. In order - to do that: - - <ul> - * Start with the NUnit Tests Guidelines. In the cvs - they are located at: mcs/class/doc/NUnitGuideli... - - * But wait, this is a document for impatient - people. So EVERYTHING should be here. Well, it is. - </ul> - - - <h2> The NUnit Tests Guidelines document </h2> - - Mono NUnit Test Guidelines and Best Practices - - Authors: Nick Drochak <ndrochak@gol.com> - Martin Baulig <martin@gnome.org> - Last Update: 2002-03-02 - Rev: 0.3 - - <b> Purpose </b> - - This document captures all the good ideas people have had - about writing NUnit tests for the mono project. This document - will be useful for anyone who writes or maintains unit tests. - - <b> Other resources </b> - - - mcs/class/README has an explanation of the build process and - how it relates to the tests. - - http://nunit.sourceforge.net is the place to find out about - NUnit - - <b> Getting Started </b> - - If you are new to writing NUnit tests, there is a template - you may use to help get started. The file is: - - mcs/class/doc/TemplateTest.cs - - - (2.- This is the point two!. This file is just after the end - of the guidelines. Copy/paste it in another buffer. And keep - reading.) - - Save a copy of this file in the appropriate test subdirecty - (see below), and replace all the [text] markers with - appropriate code. Comments in the template are there to guide - you. You should also look at existing tests to see how other - people have written them. - - mcs/class/corlib/Test/System.Collections/CollectionBaseTest.cs - - is a small one that might help. - - (3.- You reached the third point. And as expected, it's just - here to tell you that the content of CollectionBaseTest.cs is - after the TemplateTest.cs code at the end of these - guidelines.) - - The directory that will contain your new file depends on the - assembly/namespace of the class for which you are creating the - tests. Under mcs/class there is a directory for each assembly. - In each assembly there is a Test directory, e.g. - mcs/class/corlib/Test. In the Test directory there are - sub-directories for each namespace in the assembly, e.g. - mcs/class/corlib/Test/Sytem. Put your new test file in the - appropriate sub-directory under Test for the class you are - testing. - - Once your test class is complete, you need to add it to the - AllTests.cs file in the same directory as your new test. Add a - call to "suite.AddTest()" passing the name of your new test - class's suite property as the parameter. You will see examples - in the AllTests.cs file, so just copy and paste inside there. - - Once all of that is done, you can do a 'make test' from the top - mcs directory. Your test class will be automagically included - in the build and the tests will be run along with all the - others. - - <b> Tips </b> - - <b> Provide an unique error message for Assert() </b> - - Include an unique message for each Assert() so that when the - assert fails, it is trivial to locate the failing one. - Otherwise, it may be difficult to determine which part of the - test is failing. A good way to ensure unique messages is to use - something like #A01, #A02 etc. - - Bad: -<pre> - AssertEquals("array match", compare[0], i1[0]); - AssertEquals("array match", compare[1], i1[1]); - AssertEquals("array match", compare[2], i1[2]); - AssertEquals("array match", compare[3], i1[3]); -</pre> - Good: -<pre> - AssertEquals("#A01", compare[0], i1[0]); - AssertEquals("#A02", compare[1], i1[1]); - AssertEquals("#A03", compare[2], i1[2]); - AssertEquals("#A04", compare[3], i1[3]); -</pre> - Once you used such a number in an Assert(), don't change it - later on - people might use it it identify the test in bug - reports or in mailing lists. - - <b> Use AssertEquals() to compare things, not Assert(). </b> - - Never compare two values with Assert() - if the test fails, - people have no idea what went wrong while AssertEquals() - reports the failed value. - - Bad: -<pre> - Assert ("A01", myTicks[0] == t1.Ticks); -</pre> - Good: -<pre> - AssertEquals ("A01", myTicks[0], t1.Ticks); -</pre> - - <b> Constructors </b> - - When writing your testcase, please make sure to provide a - constructor which takes no arguments: - -<pre> - public class DateTimeTest : TestCase - { - - public DateTimeTest() : base ("[MonoTests.System.DateTimeTest]") {} - public DateTimeTest (string name): base(name) {} - - public static ITest Suite - { - get { - TestSuite suite = new TestSuite (); - return suite; - } - } - } -</pre> - - <b> Namespace </b> - - Please keep the namespace within each test directory - consistent - all tests which are referenced in the same - AllTests.cs must be in the same namespace. Of course you can - use subnamespaces as you like - especially for subdirectories - of your testsuite. - - For instance, if your AllTests.cs is in namespace "MonoTests" - and you have a subdirectory called "System", you can put all - the tests in that dir into namespace "MonoTests.System". - - <b> Test your test with the microsoft runtime </b> - - If possible, try to run your testsuite with the Microsoft - runtime on Windows and make sure all tests in it pass. This is - especially important if you're writing a totally new testcase - - without this check you can never be sure that your testcase - contains no bugs .... - - Don't worry if you're writing your test on Linux, other people - can test it for you on Windows. - - Sometimes you may discover that a test doesn't show the - expected result when run with the Microsoft runtime - either - because there is a bug in their runtime or something is - misleading or wrong in their documentation. In this case, - please put a detailed description of the problem to - mcs/class/doc/API-notes and do also report it to the list - - we'll forward this to the Microsoft people from time to time - to help them fix their documentation and runtime. - -<pre> --------------------- TemplateTest.cs begins ---------- - - // this is a template for making NUnit tests. Text enclosed - // in square brackets (and the brackets themselves) should be - // replaced by appropiate code. - - // [File Name].cs - NUnit Test Cases for [explain here] - // - // [Author Name] ([Author email Address]) - // - // (C) [Copyright holder] - // - - // these are the standard namespaces you will need. You may - // need to add more depending on your tests. - using NUnit.Framework; - using System; - - // all test namespaces start with "MonoTests." Append the - // Namespace that contains the class you are testing, e.g. - // MonoTests.System.Collections - namespace MonoTests.[Namespace] - { - - // the class name should end with "Test" and start with the name - // of the class you are testing, e.g. CollectionBaseTest - public class [Class to be tested]Test : TestCase { - - // there should be two constructors for your class. The first - // one (without parameters) should set the name to something - // unique. - // Of course the name of the method is the same as the name of - // the class - public [Constructor]() : base ("[Namespace.Class]") {} - public [Constructor](string name) : base(name) {} - - // this method is run before each Test* method is called. You - // can put variable initialization, etc. here that is common to - // each test. - // Just leave the method empty if you don't need to use it. - protected override void SetUp() {} - - // this method is run after each Test* method is called. You - // can put clean-up code, etc. here. Whatever needs to be done - // after each test. Just leave the method empty if you don't need - // to use it. - protected override void TearDown() {} - - // this property is required. You need change the parameter for - // typeof() below to be your class. - public static ITest Suite { - get { - return new TestSuite(typeof([Classname here])); - } - } - - // this is just one of probably many test methods in your test - // class. each test method must start with "Test". All methods - // in your class which start with "Test" will be automagically - // called by the NUnit framework. - public void Test[Something] { - // inside here you will exercise your class and then - // call Assert() - } -} - ----------------------- TemplateTest.cs ends -------------- - ----------------------- CollectionBaseTest.cs begins ------ - // - // System.Collections.CollectionBase - // Test suite for System.Collections.CollectionBase - // - // Author: - // Nick D. Drochak II - // - // (C) 2001 Nick D. Drochak II - // - - - using System; - using System.Collections; - using NUnit.Framework; - - namespace MonoTests.System.Collections - { - - public class CollectionBaseTest : TestCase - { - public CollectionBaseTest () : base - ("System.Collection.CollectionBase testsuite") - {} - public CollectionBaseTest (String name) : base (name) - {} - - // We need a concrete class to test the abstract base - // class - public class ConcreteCollection : CollectionBase - { - // These fields are used as markers to test - // the On* hooks. - public bool onClearFired; - public bool onClearCompleteFired; - - public bool onInsertFired; - public int onInsertIndex; - public bool onInsertCompleteFired; - public int onInsertCompleteIndex; - - public bool onRemoveFired; - public int onRemoveIndex; - public bool onRemoveCompleteFired; - public int onRemoveCompleteIndex; - - public bool onSetFired; - public int onSetOldValue; - public int onSetNewValue; - public bool onSetCompleteFired; - public int onSetCompleteOldValue; - public int onSetCompleteNewValue; - - // This constructor is used to test OnValid() - public ConcreteCollection() - { - IList listObj; - listObj = this; - listObj.Add(null); - } - - // This constructor puts consecutive integers into the list - public ConcreteCollection(int i) { - IList listObj; - listObj = this; - - int j; - for (j = 0; j< i; j++) { - listObj.Add(j); - } - } - - // A helper method to look at a value in the - // list at a specific index - public int PeekAt(int index) - { - IList listObj; - listObj = this; - return (int) listObj[index]; - } - - // Mark the flag if this hook is fired - protected override void OnClear() { - this.onClearFired = true; - } - - // Mark the flag if this hook is fired - protected override void OnClearComplete() - { - this.onClearCompleteFired = true; - } - - // Mark the flag, and save the paramter if - // this hook is fired - protected override void OnInsert(int index, - object value) - { - this.onInsertFired = true; - this.onInsertIndex = index; - } - - // Mark the flag, and save the paramter if - // this hook is fired - protected override void OnInsertComplete(int index, - object value) - { - this.onInsertCompleteFired = true; - this.onInsertCompleteIndex = index; - } - - // Mark the flag, and save the paramter if this hook - // is fired - protected override void OnRemove(int index, - object value) - { - this.onRemoveFired = true; - this.onRemoveIndex = index; - } - - // Mark the flag, and save the paramter if this hook - // is fired - protected override void OnRemoveComplete(int index, - object value) - { - this.onRemoveCompleteFired = true; - this.onRemoveCompleteIndex = index; - } - - // Mark the flag, and save the paramters if this hook - // is fired - protected override void OnSet(int index, object oldValue, - object newValue) - { - this.onSetFired = true; - this.onSetOldValue = (int) oldValue; - this.onSetNewValue = (int) newValue; - } - - // Mark the flag, and save the paramters if this hook - // is fired - protected override void OnSetComplete(int index, - object oldValue, - object newValue) - { - this.onSetCompleteFired = true; - this.onSetCompleteOldValue = (int) oldValue; - this.onSetCompleteNewValue = (int) newValue; - } - } // public class ConcreteCollection - - public static ITest Suite { - get { - return new TestSuite - (typeof(CollectionBaseTest)); - } - } - - // Check the count property - public void TestCount() { - ConcreteCollection myCollection; - myCollection = new ConcreteCollection(4); - Assert(4 == myCollection.Count); - } - - // Make sure GetEnumerator returns an object - public void TestGetEnumerator() { - ConcreteCollection myCollection; - myCollection = new ConcreteCollection(4); - Assert(null != myCollection.GetEnumerator()); - } - - // OnValid disallows nulls - public void TestOnValid() { - ConcreteCollection myCollection; - try { - myCollection = new ConcreteCollection(); - } - catch (ArgumentNullException) { - } - } - - // Test various Insert paths - public void TestInsert() { - ConcreteCollection myCollection; - int numberOfItems; - numberOfItems = 3; - // The constructor inserts - myCollection = new ConcreteCollection(numberOfItems); - Assert(myCollection.onInsertFired); - Assert(myCollection.onInsertCompleteFired); - - // Using the IList interface, check inserts in the middle - IList listObj = myCollection; - listObj.Insert(1, 9); - Assert(myCollection.onInsertIndex == 1); - Assert(myCollection.onInsertCompleteIndex == 1); - Assert(myCollection.PeekAt(1) == 9); - } - - // Test Clear and it's hooks - public void TestClear() - { - ConcreteCollection myCollection; - int numberOfItems; - numberOfItems = 1; - myCollection = new ConcreteCollection(numberOfItems); - myCollection.Clear(); - Assert(myCollection.Count == 0); - Assert(myCollection.onClearFired); - Assert(myCollection.onClearCompleteFired); - } - - // Test RemoveAt, other removes and the hooks - public void TestRemove() - { - ConcreteCollection myCollection; - int numberOfItems; - numberOfItems = 3; - // Set up a test collection - myCollection = new ConcreteCollection(numberOfItems); - - // The list is 0-based. So if we remove the second one - myCollection.RemoveAt(1); - - // We should see the original third one in it's place - Assert(myCollection.PeekAt(1) == 2); - Assert(myCollection.onRemoveFired); - Assert(myCollection.onRemoveIndex == 1); - Assert(myCollection.onRemoveCompleteFired); - Assert(myCollection.onRemoveCompleteIndex == 1); - IList listObj = myCollection; - listObj.Remove(0); - // Confirm parameters are being passed to the hooks - Assert(myCollection.onRemoveIndex == 0); - Assert(myCollection.onRemoveCompleteIndex == 0); - } - - // Test the random access feature - public void TestSet() - { - ConcreteCollection myCollection; - int numberOfItems; - numberOfItems = 3; - myCollection = new ConcreteCollection(numberOfItems); - IList listObj = myCollection; - listObj[0] = 99; - Assert((int) listObj[0] == 99); - Assert(myCollection.onSetFired); - Assert(myCollection.onSetCompleteFired); - Assert(myCollection.onSetOldValue == 0); - Assert(myCollection.onSetCompleteOldValue == 0); - Assert(myCollection.onSetNewValue == 99); - Assert(myCollection.onSetCompleteNewValue == 99); - } -} - -} ------------------------ CollectionBaseTest.cs ends -------- - -</pre> - <ul> - * If you use Emacs, you might want to use the .emacs - file and the package developed by Brad Merrill - mailto:zbrad@cybercom.net. It will allow you to - highlight and indent in C# style in your Emacs - editor. (XEmacs will still work but it'll also - complain). - - * CSharpDevelop is a GPLed IDE developed by IC#Code. - Search for it at sourceforge if you are interested - in it. - - * For those who Java: "A comparison of Microsoft's - C# programming language to Sun Microsystem's Java - Programming language" by Dare Obasanjo is a really good - (very complete) text to read. - - * Suggest this point and more, now I can't think of - anything more. - </ul> - - Enjoy!!. - - (c) 2002, <a href="mailto:jaime@geneura.ugr.es">Jaime Anguiano Olarra</a>. - - The parts included in this document are property of their - respective authors. - - Note: The identation of the source code has been changed a bit - so it could fit better in the website. Anyway, as nothing more - changed, the files should work as expected. - diff --git a/doc/mono-hacking-roadmap.html b/doc/mono-hacking-roadmap.html deleted file mode 100644 index 0dc6b9a766b..00000000000 --- a/doc/mono-hacking-roadmap.html +++ /dev/null @@ -1,271 +0,0 @@ -<html> -<head><title>Mono Hacking Roadmap</title> -<style type="text/css"> -h1 { -color: #efefef; -font-size: 18pt; -font-family: "Trebuchet MS"; -border: 0; -margin: 0; -padding: 1em; -background: #666666; -} - -h2, h3, h4, h5, h6 { -font-family: Verdana,sans-serif; -font-weight: bold; -margin: 9pt; -} - -h2, h3 { -font-size: 18px; -} - -h2 { -padding: 3px; -color: #000000; -} - -h3 { -font-size: 13px; -border-bottom: 2px solid #dddddd; -} - -h4 { -border-bottom: 2px solid #dddddd; -} - -body, table { -background-color: #ffffff; -font-family: Verdana, sans-serif; font-size: 12px; -color: black; -margin: 0; -padding: 0; -border: 0; - margin-left: 20%; - margin-right: 20%; -} - -p { -margin-left: 2em; -margin-right: 2em; -} - -ul li { -margin-left: 2em; -} - -img { -border: 0; -vertical-align: top; -} - -</style> -</head> -<body> -<center> - <h1> - Mono Hacking Roadmap - <br> - - <font size=1>Miguel de Icaza (<a href="mailto:miguel@ximian.com">miguel@ximian.com</a>)</font> - - </h1> - <p> -</center> - -<h3>Introductory notes</h3> - - <p>The intention of this document and the <a - href="http://www.go-mono.com/mono-roadmap.html">Mono - Roadmap</a> is to be a basis for discussion. I want to build - on these two documents, and update as we get more insight into - the release process and the technologies we want to ship. - -<h3>Background</h3> - - <p>At the 2003 PDC Microsoft introduced many new technologies, - which many of us are very excited about. To me, it underlined - the importance of having a roadmap for users of Mono - technologies. That way they know precisely what to expect - from us when. We have been working on Mono for more than two - years, and it is important that we release a stable product to - the public. - - <p>We have various degrees of maturity and feature - completeness in our code base, and I do not believe that we - should aim to be full implementation .NET 1.0 or .NET 1.1 in - our 1.0 release, that would just push the release at least for - another year . The <a - href="http://www.go-mono.com/mono-roadmap.html">Mono - Roadmap</a> emphasizes this assumption. - - <p>The 1.0 release is critical for the adoption of Mono on the - Linux environment, even if it is not as complete as the - Framework, lets get something stable, and fun to people to - use. - -<h3>Mono 1.0: missing functionality.</h3> - - <p>For the 1.0 release, there are a number of features that we - will have to complete, in no particular order: - - <ul> - <li>We need to fix corcompare and our cor-compare - pages to support both 1.0 and 1.1 API API compares. - - We might want to move this outside of the Mono site, - to reduce the complexity of the HTML hackage, and use - ASP.NET to implement this. Bonus points if we use - Piers' nice dynamic tree to load the CorCompare data - dynamically. - - <li>Global Assembly Cache: Needed to support the - parallel installation of .NET 1.0 and 1.1 assemblies, - and to fix the various Assembly loading routines. - - <li>PowerPC port. - - <li>ECMA profile: We will like take care of this one - at Novell. - - <li>Assembly signing: I do not know what is the state - of this feature currently in Mono, maybe Sebastien and - Zoltan could give us an update here. - - <li>ASP.NET caching: Non-existant at this point, this - needs to be implemented. - - <li>Stability of ASP.NET and Mod_Mono. They are both - functional, but they fail under load. Much debugging - and testing must go into these components. As we use - more of it, we have found more little problems surface - on it. - - <li>Codebase audit: Duncan did an audit of Corlib, but - we must do an audit of all the assemblies that we we - are going to ship, just to get an idea of the major - areas missing. - </ul> - - <p>The team at Novell will focus on these areas. We of course - welcomes the contribution of the rest of the Mono team and - encourage the developers to focus on 1.0, to have a solid - release, and a solid foundation that can lead to 1.2 - - <p>We will use Bugzilla milestones to track these issues. - -<h3>Synchronized releases</h3> - - <p>It would be great if we can ship Mono 1.0 with Gtk# 1.0 and - a preview of Monodoc with the early documentation. - -<h3>Alpha components.</h3> - - <p>Various Mono developers are working on areas that will not - make it into the 1.0 timeframe: JScript, WSE, VB.NET, - Windows.Forms, Generics. We should continue to work on - those components, as they will come shortly after, and they - are probably more fun to develop than stabilizing the core. - -<h3>New components: Whidbey and Longhorn features</h3> - - <p>Everyone is probably very excited about the new features in - the Whidbey release of .NET, and most importantly the Longhorn - features. I am sure that many of us will not resist the urge - to put some of the new assemblies on CVS. - - <p>We will likely add a profile for those of you that want to - work on this, and can not wait to get your hands in the code, - although keep in mind that your contributions wont reach the - general audience until we successfully ship 1.0. - - <p>The things to keep in mind while adding code which is not - in .NET 1.0 and .NET 1.1: - - <ul> - <li>Make sure you surround new classes and methods - with the appropriate define: NET_1_2 for things - available on the .NET 1.2 SDK (Whidbey) and NET_3 - define for things only available on the Longhorn API. - We need this so that these methods do not appear on - the 1.0 and 1.1 builds. - - <li>If you add generic types or methods, also surround - the method with GENERICS for now, since our compiler - can not currently build this code yet. This is - redundant with the NET_1_2 define but important. - - <li>For every assembly you update, make sure that you - also add the relevant AssemblyInfo versioning - information. If possible, when you add methods from - .NET 1.2 to the build, also update the AssemblyInfo.cs - for the library. - </ul> - - <p>There are three areas of new hot features: - - <ul> - <li>Class library improvements (Whidbey, Mono 1.2 - time frames). - - <li>Indigo: They will release this in 2005 or 2006 and - wont make it into the 2004 Whidbey .NET 1.2 release. - - <li>Avalon: Definitely a Longhorn-bound feature. - </ul> - - <p>Most code that will reach the users in the short time frame - (next year) will be related to the Whidbey improvements, so I - encourage developers to work on those pieces, as they are the - ones that will help Mono the most. - -<h3>ASP.NET 2.0 plans</h3> - - <p>Gonzalo will continue to coordinate this effort; At this - time ASP.NET 2.0 features will not make it into Mono 1.0. - -<h3>Avalon plans</h3> - - <p>On the surface Avalaon seems like it uses something like - GdiPlus/Cairo for rendering. That was my initial feeling, but - it turns out that they had to rewrite everything to have a - performing rendering engine, and implement some very advanced - rendering features that include compositing with video - streams, also their brushes seem to be fairly powerful. - - <p>XAML, a new markup language that binds tags to .NET classes - was also presented, but this is the least interesting part. A - tiny compiler translates the XAML source files into C# code. - The whole process is just like Glade, and should be easy to - do. - - <p>The really elaborate parts are the rendering engine, and the - composition model for widgets. It is a complete new toolkit, - and if we want to implement this one, we will have to have a - new toolkit on Unix, incompatible with everything else, maybe - stressing the importance of working with other open source - projects in defining a cross-toolkit theming strategy to - address this particular problem. - - <p>A Mini-Avalon is easy to do, but a complete one will - require much interaction with other groups: the Cairo folks - are probably the most qualified to assist us. - -<h3>Indigo Plans</h3> - - <p>Indigo is still an early product (<a - href="http://msdn.microsoft.com/Longhorn/understanding/pillars/Indigo/default.aspx?pull=/library/en-us/dnlong/html/indigofaq1.asp">FAQ</a>), - but it could benefit from continued development of our WSE1 - and WSE2 components, later to bring some of the code to it. - - <p>Again, since people are visibly excited about this - technology, we will lay down in the next few days a framework - to contribute to it. - - -<p> -<i>Last Updated: Nov 1st, 2003</i> - -</body> -</html> diff --git a/doc/mono-roadmap.html b/doc/mono-roadmap.html deleted file mode 100644 index c57b040b058..00000000000 --- a/doc/mono-roadmap.html +++ /dev/null @@ -1,396 +0,0 @@ -<html> -<head><title>Mono Roadmap</title> -<style type="text/css"> -h1 { -color: #efefef; -font-size: 18pt; -font-family: "Trebuchet MS"; -border: 0; -margin: 0; -padding: 1em; -background: #666666; -} - -h2, h3, h4, h5, h6 { -font-family: Verdana,sans-serif; -font-weight: bold; -margin: 9pt; -} - -h2, h3 { -font-size: 18px; -} - -h2 { -padding: 3px; -color: #000000; -} - -h3 { -font-size: 13px; -border-bottom: 2px solid #dddddd; -} - -h4 { -border-bottom: 2px solid #dddddd; -} - -body, table { -background-color: #ffffff; -font-family: Verdana, sans-serif; font-size: 12px; -color: black; -margin: 0; -padding: 0; -border: 0; - margin-left: 20%; - margin-right: 20%; -} - -p { -margin-left: 2em; -margin-right: 2em; -} - -ul li { -margin-left: 2em; -} - -img { -border: 0; -vertical-align: top; -} - -</style> -</head> -<body> - -<center> - <h1> - Mono Project Roadmap - <br> - <font size=1>Miguel de Icaza (miguel@ximian.com)</font> - </h1> - <p> -</center> - -<i>Last update: Jan 18th, 2004</i> - -<h3>Introduction</h3> - - <p>This document describes the high-level roadmap for <a - href="http://www.go-mono.com">Mono</a>. - - <p>The Mono project started in 2001 as an effort to implement - the .NET Framework to Unix. To bring both the new programming - model based on the Common Language Infrastructure and C# as - well as helping people migrate their existing knowledge and - applications to Unix. Mono today supports a wide variety of - operating systems, CPUs and a large chunk of the functionality - available in the .NET Framework. - - <p>At the October 2003 PDC conference a number of new - technologies were announced. From the Mono release schedule - perspective, we should think about these technologies from - their release time standpoint, and the features that must be - supported. - - <p>This document outlines the roadmap for the Mono project - from my perspective: what we can effectively deliver on the - dates outlined. Since Mono is a large open source project, - things might change and new features can be incorporated - into the plan if external sources devote enough attention to - those problems. - - <p>This is the timeline: - <p> - <center> - <img src="roadmap.png"> - </center> - -<h3>Background</h3> - - <p>So far Microsoft has published two versions of the .NET - Framework: 1.0 and 1.1, the later with incremental updates to - the changes in 1.0 - - <p>The Mono project has been tracking some of the - improvements available in those two releases, some of the - highlights of our work so far are: - - <ul> - <li> Core: mscorlib, System, System.Security and - System.XML assemblies. - - <li> ADO.NET: System.Data and various other database - providers. - - <li> ASP.NET: WebForms and Web Services are - supported. Work on WSE1/WSE2 has also started. - - <li> Compilers: C#, VB.NET and various command line tools - that are part of the SDK. - - <li> Open Source, Unix and Gnome specific libraries. - </ul> - - <p>Other components like Windows.Forms, Directory.Services, - Enterprise Services and JScript are being developed but are not - as mature as the other components but are under development by - various people. - - <p>Some other smaller and less used components do not have yet - a Mono equivalent (System.Management, System.Drawing.Design). - -<h3>Mono release strategy</h3> - - <p>The levels of maturity of Mono fluctuate depending on the - development effort we have put into it, and the use we have - given to them. For example, the virtual machine and the C# - compiler very mature, while less commonly used functionality - in Mono like Windows.Forms or VB.NET are still under heavy - development. - - <p>Our strategy is to release the mature components as Mono - 1.0, and have upcoming versions of Mono add extra - functionality. - -<h3>Mono 1.0 goals</h3> - - <p>The Mono 1.0 release would include the following - components: - - <ul> - <li>C# compiler. - - <li>VM, with JIT and pre-compiler. - - <li>IL assembler, disassembler. - - <li>Development and security tools. - - <li>Core libraries: mscorlib, System, System.XML. - - <li>System.Data and Mono database providers. - - <li>System.Web: Web applications platform and Apache - integration module. - - <li>System.Web.Services: client and server support. - - <li>System.Drawing. - - <li>System.DirectoryServices - - <li>JIT support: x86 and PPC architectures - (interpreter available for other architectures). - - <li>ECMA profiles: special build options to build - Mono as an implementation of the various ECMA profiles - will be available. - - <li>Java integration through IKVM. - - <li>Embedding interface for the runtime. - </ul> - - <p>Packaging: - - <ul> - <li>mono: will contain the above features implementing - the .NET 1.1 API. - - <li>mono-1.0-compat: Will include a build of the - libraries with the .NET 1.0 API, this is a - compatibility build for people running .NET 1.0 - applications. - - <li>mono-unstable: Will contain a snapshot of the - other technologies under development for developer's - convenience, but will be unsupported at this time. - These include the Generics edition of the C# - compiler. - - <li>mono-ecma: A build that only includes the ECMA - components. - </ul> - - <p>Release target: Q2/2004. - - <p>Bug fix releases would be done on a monthly basis. - - <p>For a detailed list, see the <a - href="mono-1.0.html">mono-1.0 feature list.</a> - -<h3>Microsoft's Whidbey</h3> - - <p>To understand post 1.0 editions of Mono, it is important to - put it into perspective with the Microsoft Whidbey product, to - be released in 2004. - - <p>The new features in the Whidbey release of the .NET Framework - include: - - <ul> - <li><b>Generic types</b><br> - These introduce changes to the compiler, runtime and - class libraries. - - <li><b>ASP.NET 2</b><br> - Many tools to simplify web application development: - Master pages, new controls for common operations, - personalization and themes. - - <li><b>Remoting</b><br> - New security channels and version-resistant remoting - (good news in the interop department). - - <li><b>XML</b><br> - XQuery debuts on this release as well as an improved - XmlDocument system based on XPath: XPathDocument. - - <li><b>Networking</b><br> - FTP client, Ssl streams. - - <li><b>Console and Serial ports:</b></br> - Console terminal input/output is available as well as - serial port handling. - - <li><b>Windows.Forms</b><br> - Layout containers finally appeared on Windows.Forms as - well as various new controls. - - <li><b>ObjectSpaces</b><br> - An API for simpler data-base access. - </ul> - -<h3>Mono 1.2</h3> - - <p>The Mono team is developing in parallel some features that - wont make it to the 1.0 release in stable form. These will be - the foundation for the 1.2 release. The focus of this release - is to track the core API for the .NET Framework 1.2, but - again, only a subset of the total framework will be - available. - - <p>Mostly, Mono 1.2 consists of components that were not - stable enough for Mono 1.0, but that would be mature at this - point, plus the incorporation of some new features from - Whidbey. In addition to the Mono 1.0 components, this release - will add: - - <ul> - <li>Generic types support: C# compiler, execution - system and core class libraries. - - <li>ASP.NET 2.0 improvements. - - <li>Remoting improvements from Whidbey. - - <li>System.XML: simpler improvements from Whidbey, - lacking the large additions (XQuery for example). - - <li>Console and Serial ports support. - - <li>New compilers: VB.NET and JScript support. - - <li>WSE1/WSE2 implementations. - - <li>System.Windows.Forms officially debuts with .NET - 1.0 API; 1.2 API available as an unstable addition. - </ul> - - <p>This release will by default provide .NET 1.2 APIs, but - compatibility libraries for 1.0 and 1.1 will be distributed in - the mono-compat package. The unstable components of Mono will - be distributed on the `mono-unstable' package, the libraries - in this release will be unsupported. - - <p>Release target: Q4/2004. - -<h3>Mono 1.4</h3> - - <p>A refresh update on the Mono 1.2 release containing the - missing components from the previous release and complete any - under performing pieces. Updates to System.Xml, ASP.NET and - Windows.Forms to match the .NET 1.2 API. - - <p>Release target: Q2/2005. - -<h3>Peer projects</h3> - - <p>Other projects like the debugger, the documentation - browser, Java integration through IKVM and Gtk# will remain on - their own schedules. This page will be updated to contain - that information when it becomes available. - -<h3>Unscheduled activities</h3> - - <p>A missing component of Mono is the Code Access Security - (CAS). This functionality is not needed in today's Mono as - currently Mono is being used to run fully trusted - applications, and we are not using it on embedded scenarios - where assemblies would have different trust levels. - - <p>This is an important component, but requires three major - pieces of work: - - <ul> - <li>Runtime support for implementing the security - demands. - - <li>A guidelines document outlining what and where - must have security demands in place. - - <li>A full audit of our class libraries: method by - method - </ul> - - <p>All of these are major pieces of work, and we currently - have no plans to implement any of those. A volunteer effort might be - able to help with the runtime requirements and the document, - but until those are done, we are unlikely to start doing any - work on the actual class library audit and instrumentation. - -<h3>Mono and WinFX: 2006</h3> - - <p>WinFX is the name given to the new set of libraries that - makes up .NET in the Longhorn operating system: the existing - .NET set of class libraries, plus the new functionality - available in the OS. - - <p>WinFX adds things like storage facilities (WinFS), a - new versatile communications stack (Indigo) and a new - eye-candy packed GUI programming system (Avalon). - - <p>Although WinFS, Avalon and Indigo are very exciting - components, at this time it is too early to tell when those - components will be available for Mono. Open source developers - will very likely start work on these, but since they are still - far from being officially released, they are not in the radar - at this point. - -<h3>Unsupported technologies</h3> - - <p>Some technologies are very hard to implement or are being - phased out by components in the Longhorn time frame. In some - cases, we feel that they are not crucial to the future of the - open source desktop. - - <p>System.EnterpriseServices and System.Management come to - mind, and we are unlikely to put any resources into the task. - We would gladly host the code if someone cares to implement - it, but they would likely remain unsupported features of Mono. - -<h3>Mono Developer Strategy</h3> - - <p>Mono Developers should read the <a - href="mono-hacking-roadmap.html">Mono Hacking Roadmap</a> - -<h3>Comments</h3> - - <p>Feel free to send your comments or questions the roadmap to - <a href="mailto:miguel@ximian.com">miguel@ximian.com</a> - - -<p> -<i>Last Updated: Nov 1st, 2003</i>
\ No newline at end of file diff --git a/doc/mono-todo b/doc/mono-todo deleted file mode 100644 index 6f2a69c6fc7..00000000000 --- a/doc/mono-todo +++ /dev/null @@ -1,295 +0,0 @@ -* Mono hacking TODO list - - From time to time people that want to contribute to Mono ask - on the mailing list what they can help with. The generic - answer is always: - <ul> - <li> Write documentation. - <li> Write regression tests. - <li> Complete the implementations of the class libraries. - <li> Help fix the bugs filed in our bugzilla database. - </ul> - - The proposed tasks are very important for the Mono project and - are suitable for people that can dedicate even just an hour - per week to contribute. But some people may need something - more focused to work on, such as students that want to do a - thesis on their contribution to Mono. For such people (and - also for professors who want ideas for thesis regarding JIT or - VM technologies), here is a list of tasks that need attention. - - The estimated time to complete any of the tasks is between 1 - week to several months to accomodate for different hacking - possibilities. - - Note on the time estimates: they are very rough estimates, a - smart and dedicated hacker can complete the tasks in half of - the minimum time, a part-time hacker that also has a social - life can take more than double the max time, but there's - nothing to worry as long as progress is being done. - - If some people (or group of people) want to take on a task, - they should write to the mono-devel mailing list and in the - relative bugzilla bug report. Discussions about how to - implement a feature or additional information on the task - should be mailed to the list or in the bugzilla report as well - so that people can keep informed on the progress or have the - information needed to start contributing. - - Mono is an excellent platform for research on JITs, virtual - machines and specifically the CLR because it provides an - advanced free software implementation that can be used as a - basis for more optimizations, new approaches to problems and - new features. - - There are different areas of interest where high-level - contributions can be made: - - <ul> - * <b>JIT compiler</b>: tasks can be: adding more optimizations, reducing - compile time, porting to different architectures. - - * <b>AOT compiler</b>: optimizing the compiler output and the AOT loader, - better support for multiple application domains. - - * <b>VM runtime</b>: optimizing the runtime data structures, experimenting with - different garbage collectors, integration with different component models. - - * <b>Class library</b>: many opportunities in the implementation of regular - expressions, Xml related technologies (XPath, XLST, etc). - - * <b>Compilers</b>: writing compilers, interpreters and runtimes for langauges - so that they run on the CLR (using Reflection.Emit support, for example). - </ul> - -Happy hacking! - -<table border=1 cellspacing="0" cellpadding="0"> - <tr> - <th>Area<th>Description<th>Difficulty<th>Time estimate<th>Bugzilla ID - </tr> - - <tr> - <td>Runtime (mono/metadata) - <td>Optimize method vtable. Currently all the methods in a class - are added to the method vtable, including static and non-virtual methods. - This makes vtables bigger and the instructions to access them are longer, - increasing also code size. Some code in metadata/icall.c and maybe also some - remoting code may depend on the current layout: such code should be fixed as well. - <td>Medium - <td>1-2 weeks - <td>not assigned - </tr> - - <tr> - <td>System assembly (mcs/class/System/) - <td>Implement the IL-based regular expression engine. Instead of - intepreting the regular expression pattern, a method is created at runtime using - Reflection.Emit. This makes for faster pattern matching because there is no - intepreter overhead and the matching code is jitted to fast native code. - Bonus points if the compiled regular expression is compatible with the ones generated - by the MS runtime. - <td>Medium-hard (thesis subject) - <td>2-4 months - <td><a href="http://bugzilla.ximian.com/show_bug.cgi?id=52605">52605</a> - </tr> - - <tr> - <td>JIT (mono/mini/) - <td>Implement common subexpression elimination. - Global and local common subexpression elimination needs to be implemented - to achieve better performance. The local case is easier and may take just one month. - It should be implemented in the context of the SSA framework (mini/ssa.c). - <td>Hard (thesis subject) - <td>2-4 months - <td>not assigned - </tr> - - <tr> - <td>JIT (mono/mini/) - <td>Optimize AOT compiler output. - Currently the code generated by the AOT compiler may be significantly slower than - jitted code. This is mostly because the AOT code supports multiple application domains - and some values that are constant at JIT-time are not constant at AOT-time. It may be - needed to write a simple dynamic linker and/or binary object writer. Bonus poinst if - it supports ELF, PE/COFF and mach-O binary formats. A possible idea for improvements - is also the use of appdomain ID-indexed tables to get at the appdomain specific data. - <td>Medium-hard (thesis subject) - <td>3-6 months - <td>not assigned - </tr> - - <tr> - <td>JIT (mono/mini/) - <td>Implement generics support. - We need to add support for the additional instructions and change existing ones to - support the generics requirements. - <td>Medium-hard - <td>2-3 months - <td>lupus and Martin - </tr> - - <tr> - <td>JIT (mono/mini/) - <td>Port the JIT to additional architectures. - Currently ports are in the works for mips, arm, sparc, s390. None of the ports - are as feature-complete as the x86 one, yet, so help is needed in getting them - up to speed. Ports to more architectures are welcome as well. - <td>Medium-hard - <td>3-6 months per arch - <td>not assigned - </tr> - - <tr> - <td>Runtime and JIT (mono/metadata and mono/mini/) - <td>Add support for COM and/or XPCOM and/or ORBit. - We need a way to seamlessy use existing component technologies inside the mono runtime. - The COM support needs to match the MS runtime behaviour and is targeted at windows systems. - XPCOM and ORBit support are important on Unix platforms. Bonus points for developing - the runtime support so that different component systems can be used at the same time. - <td>Medium-hard (thesis subject) - <td>3-4 months for each - <td>not assigned - </tr> - - <tr> - <td>Runtime and JIT (mono/metadata and mono/mini/) - <td>Implement support for Code Access Security. - Support needs to be added to the JIT and the runtime to ensure - code that executes privileged operations is permitted to do so. - The task includes loading the security information from metadata, - collecting evidence, inserting calls to the permission objects, - stack walking to collect security info. - <td>Medium-hard (thesis subject) - <td>4-5 months - <td><a href="http://bugzilla.ximian.com/show_bug.cgi?id=52606">52606</a> - </tr> - - <tr> - <td>Runtime and JIT (mono/metadata and mono/mini/) - <td>Implement support for a generational GC. - We're currently using a conservative non-moving GC. - Support for a generational and moving GC requires changes to the JIT - (to record locations in frames as well as registers that may contain - pointers to GC-allocated memory) and to the runtime code (when - objects are manipulated directly we should make sure they are pinned - and reachable by the GC also in the C unmanaged code). Code from an existing - precise GC such as the ORP one could be reused or a new GC may be developed - (increasing the estimated development time). - <td>Hard (thesis subject) - <td>6-8 months - <td>not assigned - </tr> - - <tr> - <td>Compilers for dynamic languages - <td>Write a IL compiler and runtime support for dynamic languages like - Python, Perl, Ruby, PHP. - <td>Medium-hard (thesis subject) - <td>6-12 months - <td>not assigned - </tr> - - <tr> - <td>Tools - <td>Write an implementation of the MSBuild compilation tool available in .NET 1.2 - <td>Medium - <td>4-6 months - <td>not assigned - </tr> - <tr> - <td>Build tools. - <td>Currently it is easy for people doing daily - updates from CVS to break their installation. Design a mechanism by - which Mono never fails to compile. - <td>Easy - <td>1-2 weeks - <td>not assigned - </tr> - <tr> - <td>Documentation. - <td>Editorial review of the Monkeyguide: The monkeyguide is known to contain outdated - statements, it needs to be reviewed and it needs an - editor to take control over it. Some simple tasks - include flattening out the Monkeyguide, since it is - too nested today. - <td>Easy - <td>Ongoing work. - <td>not assigned - </tr> - <tr> - <td>Documentation - <td>GNOME.NET Chapter should probably be separated - from the Monkeyguide. This is probably the most - complete chapter, but it is burried in various nested - levels of stuff, and because of this, it is not being - updated. Write a chapter on custom control - authoring and common patterns of app development. - <td>Easy - <td>Ongoing work. - <td>not assigned - </tr> - <tr> - <td>Documentation Tools - <td>The Monodoc collaborative service needs a better - administration tool than it has today; Someone needs - to redo the UI and streamline its process. - <td>Easy - <td>2-3 months. - <td>not assigned - </tr> - <tr> - <td>Comment Service API - <td>Design a full system for comments and ratings so - people can annotate the documentation in Monodoc. - <td>Easy - <td>2-3 months. - <td>not assigned - </tr> - <tr> - <td>POSIX bindings. - <td>The Mono.POSIX assembly is a project to create a binding to - the various low-level calls in Unix which are not available - thought he regular assemblies in .NET. - - The work should be done in two steps: one step is doing the - low-level binding for the system call, and another possibly is - to expose .NET-level objects like Streams for common patterns: - for example Streams for socketpairs. - - <ul> - <li>Complete the bindings for all POSIX calls. - - <li>Design a glue layer, because the various low-level - structures and values differ from operating system to - operating system, so we must do the translation from - our own set of definitions to the OS definitions. - - The details are availble on bug <a - href="http://bugzilla.ximian.com/show_bug.cgi?id=51849">51849</a> - for details. - </ul> - - <td>Medium - <td>2-3 months + QA. - <td>not assigned - </tr> - <tr> - <td>System.Drawing CODECs - <td>Complete the JPEG and PNG codecs to be fully - finished; Implement EXIF data loading; Implement the missing image codecs. - <td>Medium - <td>2-3 months. - <td>not assigned - </tr> - <tr> - <td>System.Data updates - <td>.NET 1.2 introduced many new updates to the - System.Data namespace: MARS and ObjectSpaces are the - big ones. - <td>Medium - <td>6-9 months. - <td>Work with the mono-devel-list to keep track of things. - </tr> -</table> - diff --git a/doc/monodoc-xml b/doc/monodoc-xml deleted file mode 100644 index e8a5ffe2c71..00000000000 --- a/doc/monodoc-xml +++ /dev/null @@ -1,755 +0,0 @@ -* MonoDoc XML Tag Reference - -** Introduction - -<em> -[This documentation is in progress. Comments to -<a href="mailto:jbarn@httcb.net">jbarn@httcb.net</a> and/or -<a href="mailto:mono-docs-list@ximian.com">mono-docs-list@ximian.com</a>.] -</em> - -MonoDoc XML, our format for multilingual API documentation stored outside of -source files, is very similar to the output of Microsoft's csc /doc. Minor -alterations have been made to ease human parsing and hand-editing, but -the majority of the tags are identical. In fact, many of the descriptions -and examples below are taken from the ECMA C# Language Specification with -little or no alteration. - -This document provides a list of all available MonoDoc XML tags, with -syntax and examples. A complete example can be found in -<a href="#appendix-a">Appendix A</a>, and both a <a href="#">DTD</a> and -<a href="#">XSD schema</a> will be available very shortly. - -** MonoDoc XML Tags - -<dl> -<dt><code><a href="#c"><c></a></code></dt> -<dd>Mark short sections of text as code.</dd> - -<dt><code><code><a href="#code"><code></a></code></dt></code> -<dd>Mark one or more lines as code or output.</dd> - -<dt><code><a href="#doc"><doc></a></dt></code> -<dd>Root element of documentation XML.</dd> - -<dt><code><a href="#event"><event></a></dt></code> -<dd>Describe an event.</dd> - -<dt><code><a href="#example"><example></a></dt></code> -<dd>An example.</dd> - -<dt><code><a href="#exception"><exception></a></dt></code> -<dd>Specify an exception a method can throw.</dd> - -<dt><code><a href="#field"><field></a></dt></code> -<dd>Describe a field.</dd> - -<dt><code><a href="#list"><list></a></dt></code> -<dd>Create a list or table.</dd> - -<dt><code><a href="#method"><method></a></dt></code> -<dd>Describe a method.</dd> - -<dt><code><a href="#para"><para></a></dt></code> -<dd>Allow text to be structured in paragraphs.</dd> - -<dt><code><a href="#param"><param></a></dt></code> -<dd>Specify a parameter for a method.</dd> - -<dt><code><a href="#paramref"><paramref></a></dt></code> -<dd>Mark a word as a parameter.</dd> - -<dt><code><a href="#permission"><permission></a></dt></code> -<dd>Define the access level of a member.</dd> - -<dt><code><a href="#property"><property></a></dt></code> -<dd>Describe a property.</dd> - -<dt><code><a href="#remarks"><remarks></a></dt></code> -<dd>Provide verbose information for a type or member.</dd> - -<dt><code><a href="#returns"><returns></a></dt></code> -<dd>Specify the return value of a method.</dd> - -<dt><code><a href="#see"><see></a></dt></code> -<dd>Specify a link.</dd> - -<dt><code><a href="#seealso"><seealso></a></dt></code> -<dd>Specify a 'see also' entry.</dd> - -<dt><code><a href="#summary"><summary></a></dt></code> -<dd>Provide a brief (usually one sentence) description of a member or type.</dd> - -<dt><code><a href="#type"><type></a></dt></code> -<dd>Describe a type.</dd> -</dl> - -** Definitions and Examples - -*** <a name="c"><c></a> - -This tag can be used to mark short, inline fragments of text that should -be considered source code or program output. User agents should render -this tag in a special -- likely monospace -- font. For larger sections, -use <a href="#code"><code><code></code></a>. - -**** Syntax - -<pre> -<c>code or output text</c> -</pre> - -**** Example - -<pre> -<remarks> - Class <c>Point</c> models a point in two-dimensional space. -</remarks> -</pre> - -*** <a name="code"><code></a> - -This tag can be used to mark one or more lines of text as source code or -program output. User agents should render this tag in a special (likely -monospace) font, and preserve both whitespace and newlines. - -**** Syntax - - <code><code>source or program output</code></code> - -**** Example - -<pre> -<summary> - This method changes the point's location by the given - x- and y-offsets. - <example lang="C#"> - A C# example: - <code> - Point p = new Point(3, 5); - p.Translate(-1, 3); - // p == (2, 8); - </code> - </example> -</summary> -</pre> - -*** <a name="doc"><doc></a> - -This tag is the root element of the documentation file. It can contain -any number of <type> elements. - -**** Syntax - -<code><doc lang="language" assembly="assembly">typedocs</doc></code> - -<blockquote> -<em>lang="language"</em><br /> -The two-letter ISO code that specifies what language the contained -documentation is written in. -</blockquote> - -**** Example - -<pre> -<doc lang="en"> - <type name="Graphics.Point"> - <!-- ... --> - </type> -</doc> -</pre> - -*** <a name="event"><event></a> - -This tag documents an event. - -**** Syntax - -<code><event name="eventname">documentation</event></code> - -<blockquote> -<em>name="eventname"</em><br /> -The name of the event being documented. -</blockquote> - -**** Example - -<pre> -<event name="Click"> - <summary> - Occurs when the control is clicked. - </summary> - <data> - The event handler receives an argument of type EventArgs - containing data related to this event. - </data> - <remarks> - <para>The ControlStyles.StandardClick style must be set - for this event to be raised.</para> - <para>For more information about handling events, see - Consuming Events.</para> - </remarks> -</event> -</pre> - -*** <a name="example"><example></a> - -This tag marks a section of text as an example, and optionally specifies -what programming language <code><a href="#code"><code></a></code> portions of the example are written in. - -**** Syntax - -<code><example lang="language">example text and code</example></code> - -<blockquote> -<em>lang="language"</em><br /> -(optional) The name of the programming language <code><a href="#code"><code></a></code> blocks in this example -use. This information can be used by user agents to provide -intelligent access to examples in multiple languages. -</blockquote> - -**** Example - -See <code><a href="#code"><code><a/></code> for an example. - -*** <a name="exception"><exception></a> - -This tag provides a way to specify the exceptions a method can throw. - -**** Syntax - -<code><exception cref="exception-type">description</exception></code> - -<blockquote> -<em>cref="exception-type"</em><br /> -The name of an exception type. -</blockquote> - -**** Example - -<pre> -<exception cref="System.IO.FileNotFoundException"> - Thrown when the requested file is not found. -</exception> -</pre> - -*** <a name="field"><field></a> - -This tag is used to describe a field. - -**** Syntax - -<code><field name="fieldname">documentation</field></code> - -<blockquote> -<em>name="fieldname"</em><br /> -The name of the field being documented. -</blockquote> - -**** Example - -<pre> -<field name="x"> - <summary> - Instance variable <c>x</c> represents the point's - x-coordinate. - </summary> -</field> -</pre> - -*** <a name="list"><list></a> - -This tag is used to create a list or table of items. It may contain a -<code><listheader></code> block to define the heading row of either a table or -definition list. (When defining a table, only an entry for 'term' in the -heading need be supplied.) - -Each item in the list is specified with an <code><item></code> block. When creating a -definition list, both <code><term></code> and <code><description></code> must be specified. -However, for a table, bulleted list, or numbered list, only <code><description></code> -need be specified. - -**** Syntax - -<pre> -<list type="bullet" | "number" | "table"> - <listheader> - <term>term</term> - <description>description</description> - </listheader> - <item> - <term>term</term> - <description>description</description> - </item> - - ... - -</list> -</pre> - -<blockquote> -<em>term</em><br /> -The term to define, whose definition is in <code><description></code>. -<br /><br /> -<em>description</em><br /> -Either an item in a bullet or numbered list, or the definition of a <code><term></code>. -</blockquote> - -**** Example - -<pre> -<list type="bullet"> - <item> - <description>Item 1</description> - </item> - <item> - <description>Item 2</description> - </item> -</list> -</pre> - -*** <a name="method"><method></a> - -This tag is the overall containing tag for documenting a method. - -**** Syntax - -<code><method name="methodname">documentation</method></code> - -**** Example - -<pre> -<method name="op_Equality(Graphics.Point,Graphics.Point)"> - <summary> - This operator determines whether two points have - the same location. - </summary> - <param name="p1"> - <c>p1</c> is the first Point to be compared. - </param> - <param name="p2"> - <c>p2</c> is the second Point to be compared. - </param> - <returns> - True if the points have the same location and they - have the exact same type; otherwise, false. - </returns> - <seealso cref="Equals(System.Object)" /> - <seealso cref="op_Inequality(Graphics.Point,Graphics.Point)" /> -</method> -</pre> - -*** <a name="para"><para></a> - - -This tag is for use inside other tags such as <code><remarks></code> or <code><returns></code>, and -allows text to be structured into paragraphs. - -**** Syntax - -<code><para>text</para></code> - -**** Example - -<pre> -<summary> - <para> - This is the entry point of the <c>Point</c> class testing - program. - </para> - <para> - This program tests each method and operator, and - is intended to be run after any non-trivial maintenance has - been performed on the <c>Point</c> class. - </para> -</summary> -</pre> - -*** <a name="param"><param></a> - -This tag is used to describe a parameter for a method, constructor, or -indexer. - -**** Syntax - -<code><param name="name">description</param></code> - -<blockquote> -<em>name</em><br /> -The name of the parameter. -</blockquote> - -**** Example - -<pre> -<summary> - This is the entry point of the <c>Point</c> - class. -</summary> -<param name="xor"><c>xor</c> is the new x-coordinate.</param> -<param name "yor"><c>yor</c> is the new y-coordinate.</param> -</pre> - -*** <a name="paramref"><paramref></a> - -This tag is used to indicate that a word is a parameter. User agents -could use this information for special formatting or hyperlink insertion. - -**** Syntax - -<code><paramref name="name" /></code> - -<blockquote> -<em>name</em><br /> -The name of the parameter. -</blockquote> - -**** Example - -<pre> -<summary> - This constructor initializes the new Point to - (<paramref name="xor" />,<paramref name="yor" />). -</summary> -<param name="xor"><c>xor</c> is the new x-coordinate.</param> -<param name "yor"><c>yor</c> is the new y-coordinate.</param> -</pre> - -*** <a name="permission"><permission></a> - -This tag allows the security accessibility of a member to be documented. - -**** Syntax - -<code><permission cref="member">description</permission></code> - -<blockquote> -<em>cref="member"</em><br /> -The name of a member.</br> -</blockquote> - -**** Example - -<pre> -<permission cref="System.Security.PermissionSet"> - Everyone can access this method. -</permission> -</pre> - -*** <a name="property"><property></a> - -This tag is the overall containing tag for documenting a property. - -**** Syntax - -<code><property name="propertyname">documentation</property></code> - -<blockquote> -<em>name="propertyname"</em><br /> -The name of the property. -</blockquote> - -**** Example - -<pre> -<property name="X"> - <summary> - Gets or sets the point's x-coordinate. - <value> - The point's x-coordinate. - </value> -</property> -</pre> - - -*** <a name="remarks"><remarks></a> - -This tag contains extended discussion and information about a member or -a type. <em>[jbarn: This differs from both the ECMA docs and -portions of Microsoft's documentation, but seems consistent with both -common usage, and, more importantly, NDoc convention.]</em> - -**** Syntax - -<code><remarks>description</remarks></code> - -**** Example - -<pre> -<type name="Graphics.Point"> - <summary> - Models a point in a two-dimensional plane. - </summary> - <remarks> - Herein I might have an extended discussion of - the validity of Cartesian coordinate systems, - with examples pro and con, and perhaps - some code. - </remarks> - - <!-- ... --> -</type> -</pre> - -*** <a name="returns"><returns></a> - -This tag is used to describe the return value of a method. - -**** Syntax - -<code><returns>description</returns></code> - -**** Example - -<pre> -<method name="op_Inequality(Graphics.Point,Graphics.Point)"> - <summary> - This operator determines whether two points have the - same location. - </summary> - <param name="p1"><c>p1</c> is the first Point to be compared.</param> - <param name="p2"><c>p2</c> is the second Point to be compared.</param> - <returns> - True if the points do not have the same location and they - have the exact same type; otherwise, false. - </returns> -</method> -</pre> - -*** <a name="see"><see></a> - -This tag allows a link to be specified within documentation text. (Use -<code><seealso></code> to indicate links that should appear in a 'See Also' section.) - -**** Syntax - -<code><see cref="destination" /></code> - -<blockquote> -<em>cref="destination"</em><br /> -A destination, such as a type or a member of a type. -</blockquote> - -**** Example - -<pre> -<summary> - This method changes the point's location to the given - coordinates. This is an asinine way to insert a link, - but <see cref="Equals(Object)" /> to understand - how points are compared. -</summary> -</pre> - -*** <a name="seealso"><seealso></a> - -This tag allows an entry to be generated for the 'See Also' section. (Use -<code><see></code> to specify a link from within text.) - -**** Syntax - -<code><seealso cref="destination" /></code> - -<blockquote> -<em>cref="destination"</em><br /> -A destination, such as a type or a member of a type. -</blockquote> - -**** Example - -<pre> -<summary> - This method determines whether two Points have the - same location. -</summary> -<seealso cref="op_Equality(Graphics.Point,Graphics.Point)" /> -<seealso cref="op_Inequality(Graphics.Point,Graphics.Point" /> -</pre> - -*** <a name="summary"><summary></a> - -This tag contains a short summary of a member or type, -often one sentence. <em>[jbarn: This differs from both the ECMA docs and -portions of Microsoft's documentation, but seems consistent with both -common usage, and, more importantly, NDoc convention.]</em> - -**** Syntax - -<code><summary>description</summary></code> - -**** Example - -<pre> -<summary> - This is the entry point of the <c>Point</c> class testing - program. -</summary> -<remarks> - This program tests each method an operator, and is intended - to be run after any non-trivial maintenance is performed - on the <c>Point</c> class. -</remarks> -</pre> - -*** <a name="type"><type></a> - -This tag is the overall containing tag for documenting a type. - -**** Syntax - -<code><type name="typename" assembly="assemblyname">documentation</type></code> - -<blockquote> -<em>name="typename"</em><br /> -The name of the type being documented. -<br /><br /> -<em>assembly="assemblyname"</em><br /> -The assembly this type resides in. This attribute is not required for nested types. -</blockquote> - -**** Example - -<pre> -<type name="Graphics.Point" assembly="Point"> - <summary> - Models a point in two-dimensional space. - </summary> - - <!-- members --> - - <field name="x"> - <summary> - Represents the point's x-coordinate. - </summary> - </field> -</type> -</pre> - -** <a name="appendix-a">Appendix A: Complete Example</a> - -<em>[jbarn: Please, please, don't take the human-readable portions of -this example to be good guidelines for writing your own documentation. -this XML is intended only to show structure.]</em> - -<pre> -<?xml version="1.0" encoding="UTF-8"?> -<doc lang="en"> - <type name="Graphics.Point" assembly="Point"> - <summary> - Models a point in a two-dimensional plane. - </summary> - <remarks> - No useful remarks. - </remarks> - - <!-- fields --> - <field name="x"> - <summary> - Instance variable <c>x</c> represents the point's x-coordinate. - </summary> - </field> - - <field name="y"> - <summary> - Instance variable <c>y</c> represents the point's y-coordinate. - </summary> - </field> - - <!-- methods --> - <method name="#ctor"> - <summary> - Initializes the new point to <c>(0,0)</c>. - </summary> - </method> - - <method name="#ctor(System.Int32,System.Int32)"> - <summary> - Initializes the new Point to (<paramref name="xor" />,<paramref name="yor" />). - </summary> - <param name="xor"><c>xor</c> is the new x-coordinate.</param> - <param name="yor"><c>yor</c> is the new y-coordinate.</param> - </method> - - <method name="Move(System.Int32,System.Int32)"> - <summary> - This method changes the point's location to the given coordinates. - </summary> - <param name="xor"><c>xor</c> is the new x-coordinate.</param> - <param name="yor"><c>yor</c> is the new y-coordinate.</param> - <seealso cref="Translate(System.Int32,System.Int32)" /> - </method> - - <method name="Translate(System.Int32,System.Int32)"> - <summary>This method changes the point's location by the given x- and y-offsets.</summary> - <remarks> - <example lang="C#"> - A C# example: - <code> - Point p = new Point(3, 5); - p.Translate(-1, 3); - </code> - This code results in <c>p</c> having the value (2,8). - </example> - </remarks> - <param name="xor"><c>xor</c> is the relative x-offset.</param> - <param name="yor"><c>yor</c> is the relative y-offset.</param> - <seealso cref="Move(System.Int32,System.Int32)" /> - </method> - - <method name="Equals(System.Object)"> - <summary>This method determines whether two points have the same location.</summary> - <param name="o"><c>o</c> is the object to be compared to the current object.</param> - <returns>True if the Points have the same location and they have the exact same - type; otherwise, false.</returns> - <seealso cref="op_Equality(Graphics.Point,Graphics.Point)" /> - <seealso cref="op_Inequality(Graphics.Point,Graphics.Point" /> - </method> - - <method name="ToString"> - <summary>Report a point's location as a string.</summary> - <returns>A string representing a point's location, in the form (x,y), without any - leading, trailing, or embedded whitespace.</returns> - </method> - - <method name="op_Equality(Graphics.Point,Graphics.Point)"> - <summary>This operator determines whether two points have the same location.</summary> - <param name="p1"><c>p1</c> is the first Point to be compared.</param> - <param name="p2"><c>p2</c> is the second Point to be compared.</param> - <returns>True if the points have the same location and they have the exact same - type; otherwise, false.</returns> - <seealso cref="Equals(System.Object)" /> - <seealso cref="op_Inequality(Graphics.Point,Graphics.Point)" /> - </method> - - <method name="op_Inequality(Graphics.Point,Graphics.Point)"> - <summary>This operator determines whether two points have the same location.</summary> - <param name="p1"><c>p1</c> is the first Point to be compared.</param> - <param name="p2"><c>p2</c> is the second Point to be compared.</param> - <returns>True if the points do not have the same location and they have the exact same - type; otherwise, false.</returns> - <seealso cref="Equals(System.Object)" /> - <seealso cref="op_Equality(Graphics.Point,Graphics.Point)" /> - </method> - - <method name="Main"> - <summary> - This is the entry point of the Point class testing program. - </summary> - <remarks> - <para>This program tests each method and operator, and is intended to be run after - any non-trivial maintenance has been performed on the Point class.</para> - </remarks> - </method> - - <!-- properties --> - <property name="X"> - <value>Property <c>X</c> represents the point's x-coordinate.</value> - </property> - - <property name="Y"> - <value>Property <c>y</c> represents the point's y-coordinate.</value> - </property> - </type> -</doc> -</pre> - diff --git a/doc/mysql b/doc/mysql deleted file mode 100755 index 169aae5bae3..00000000000 --- a/doc/mysql +++ /dev/null @@ -1,329 +0,0 @@ -* MySQL Data Provider - - <p>There are two ADO.NET providers in Mono - for a <a href="http://www.mysql.com/">MySQL</a> database: - -<ul> - <li><a href="http://sourceforge.net/projects/mysqlnet/">ByteFX.Data.MySQLClient</a> - <ul> - <li>Written in 100% C#</li> - <li>Does not require a client library</li> - <li>Works on Mono and Microsoft .NET</li> - <li>Requires at least Mono 0.18 and MySQLNet 0.65 for it to work on Mono</li> - <li>Works in the SQL# command-line and GTK# GUI version</li> - </ul> - </li> - - <li>Mono.Data.MySql (deprecated) - <ul> - <li>Deprecated in favor of ByteFX.Data.MySQLClient - - <li>Written in C# and uses - the MySQL C Client Library</li> - - <li>Exists in namespace Mono.Data.MySql and assembly Mono.Data.MySql</li> - - <li>Works on Windows and Linux via the MySQL client shared library - (libmySQL.dll on Windows and libmysqlclient.so on Linux).</li> - - <li>Started by Daniel Morgan using - <a href="http://www.cybercom.net/~zbrad/DotNet/MySql/">C# Bindings to MySQL</a> from <a href="mailto:zbrad@cybercom.net">Brad Merill</a></li> - </ul> - </li> - - <li>Bugs with Mono or the data provider should be reported - in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you - do not have Bugzilla user account, it is free - and easy to - create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> - -</ul> - - <p><a href="http://www.mysql.com/articles/dotnet/">Exploring MySQL - in the Microsoft .NET Environment</a> is an article - by Mr. Venu who is a MySQL AB developer.</li> - - <p>Testing for Mono's Mono.Data.MySql and ByteFX's ByteFX.Data.MySqlClient is below. - -** Current Status - - Current Status of the MySQL providers: - -<ul> - - <li>ByteFX.Data.MySqlClient - <ul> - <li>Build and Runs on Microsoft .NET and Mono</li> - <li>Works with SQL# (command-line and GTK# GUI versions)</li>
- <li>MySQLCommandBuilder now implemented</li>
- <li>Transaction support now implemented (not all table types support this)</li>
- <li>GetSchemaTable fixed to not use xsd (for Mono)</li>
- <li>Driver is now Mono-compatible</li>
- <li>TIME data type now supported</li>
- <li>More work to improve Timestamp data type handling</li>
- <li>Changed signatures of all classes to match corresponding SqlClient classes</li>
- <li>Protocol compression using <a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/default.asp">SharpZipLib</a></li>
- <li>Named pipes on Windows now working properly</li>
- <li>Work done to improve Timestamp data type handling</li>
- <li>Implemented IEnumerable on DataReader so DataGrid would work</li>
- <li>Speed increased dramatically by removing bugging network sync code</li>
- <li>Driver no longer buffers rows of data (more ADO.Net compliant)</li>
- <li>Conversion bugs related to TIMESTAMP and DATETIME fields fixed</li>
- - </ul> - </li> - - <li>Mono.Data.MySql (deprecated) - <ul> - <li>Currently, only works with version 3.23.x of MySQL</li> - - <li>can connect</li> - - <li>can execute non-queries via ExecuteNonQuery()</li> - - <li>can execute aggregates via ExecuteScalar() and retrieve the - single row/single column result</li> - - <li>can execute queries and retrieve results using a data reader.</li> - - <li>a schema DataTable has been partially - implemented which is returned from GetSchemaTable() in MySqlDataReader.</li> - - <li>a DataTable in a DataSet can be filled via a MySqlDataAdapter</li> - - <li>The shared client libraries - between windows version and linux are different: windows has libmySQL.dll - while linux has libmysqlclient.so. This is handled by the - file etc/mono/config which is mapped by the mono runtime in knowing - which native shared library to load. In cvs, this file is mono/config.in and - can be modified with a text editor.</li> - - <li>Works in the SQL# command-line and GTK# GUI version</li> - </ul> - </li> - -</ul> - -** Action plan - - The current plan for the MySQL data providers: - - <ul> - <li>ByteFX.Data.MySqlClient - <ul> - <li>Testing and fixes</li> - <li>Implement missing features</li> - <li>Only fixes for bugs to build and run MySQLClient on Mono - will be accepted in mono-cvs. Most bugs and any new features will - go into sourceforge cvs. Anytime there is a release of MySQLClient, - the source code will be copied from sourceforge cvs to mono-cvs</li> - <li>Releases of MySQLClient are determined by Reggie Burnett and releases - of Mono are determined by Miguel de Icaza</li> - <li>Implement any missing features or fix any bugs in Mono to get new - features all of MySQLClient to work on Mono</li> - </ul> - </li> - <li>Mono.Data.MySql (deprecated) - <ul> - <li>Testing and bug fixes</li> - <li>Mono.Data.MySql is deprecated and therefore maybe removed - at a later date. It will stay in Mono for now because other - programs maybe using it now.</li> - </ul> - </li> -</ul> - -** Testing for MySQLNet provider (ByteFX.Data.MySQLClient) - -<ul> - <li>Have access to a MySQL database or download it from - <ul> - <li><a href="http://www.mysql.com/downloads/index.html">MySQL AB</a></li> - </ul> - </li> - - <li>MySQLNet can be gotten from <a href="http://sourceforge.net/projects/mysqlnet/">here</a> and the - binary assembly ByteFX.Data.dll needs to be installed - in the same place as the mono class libraries.</li> - - <li>MySQLNet requires <a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/default.asp">SharpZipLib</a> which is - a Zip Library written in 100% C#. This is used for compression/decompression of data - sent/received over the network. The SharpZipLib binary assembly SharpZipLib.dll should - be installed in the same place as the mono class libraries.</li> - - <li>Has a ConnectionString format: -<pre> -"Server=hostname;" + -"Database=database;" + -"User ID=username;" + -"Password=password" -</pre> - </li> - <li>C# Example: -<pre> - using System; - using System.Data; - using ByteFX.Data.MySqlClient; - - public class Test - { - public static void Main(string[] args) - { - string connectionString = - "Server=localhost;" + - "Database=test;" + - "User ID=myuserid;" + - "Password=mypassword;"; - IDbConnection dbcon; - dbcon = new MySqlConnection(connectionString); - dbcon.Open(); - IDbCommand dbcmd = dbcon.CreateCommand(); - // requires a table to be created named employee - // with columns firstname and lastname - // such as, - // CREATE TABLE employee ( - // firstname varchar(32), - // lastname varchar(32)); - string sql = - "SELECT firstname, lastname " + - "FROM employee"; - dbcmd.CommandText = sql; - IDataReader reader = dbcmd.ExecuteReader(); - while(reader.Read()) { - string FirstName = (string) reader["firstname"]; - string LastName = (string) reader["lastname"]; - Console.WriteLine("Name: " + - FirstName + " " + LastName); - } - // clean up - reader.Close(); - reader = null; - dbcmd.Dispose(); - dbcmd = null; - dbcon.Close(); - dbcon = null; - } - } -</pre> - </li> - <li>Building C# Example: - <ul> - <li>Save the example to a file, such as, TestExample.cs</li> - <li>Build on Linux: -<pre> - mcs TestExample.cs -r System.Data.dll \ - -r ByteFX.Data.dll -</pre> - </li> - <li>Build on Windows via Cygwin: -<pre> - mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \ - TestExample.cs \ - -lib:C:/cygwin/home/MyHome/mono/install/lib \ - -r System.Data.dll -r ByteFX.Data.dll -</pre> - </li> - </ul> - </li> - <li>Running the Example: -<pre> -mono TestExample.exe -</pre> - </li> - -</ul> - -** Testing for Mono's MySQL provider (Mono.Data.MySql) - -<ul> - <li>Have access to a MySQL database or download it from - <ul> - <li><a href="http://www.mysql.com/downloads/index.html">MySQL AB</a></li> - </ul> - </li> - - <li>Take a look at MySqlTest.cs in mcs/class/Mono.Data.MySql/Test</li> - <li>On Linux, you may need to make a symbolic link from libmySQL.dll to libmysqlclient.dll</li> - - <li>Has a ConnectionString format: -<pre> - "Server=hostname;Database=database;User ID=username;Password=password" - (or) - "Host=hostname;Dbname=database;User=username;Passwd=password" -</pre> - - <li>C# Example: -<pre> - using System; - using System.Data; - using Mono.Data.MySql; - - public class Test - { - public static void Main(string[] args) - { - string connectionString = - "Server=localhost;" + - "Database=test;" + - "User ID=myuserid;" + - "Password=mypassword;"; - IDbConnection dbcon; - dbcon = new MySqlConnection(connectionString); - dbcon.Open(); - IDbCommand dbcmd = dbcon.CreateCommand(); - // requires a table to be created named employee - // with columns firstname and lastname - // such as, - // CREATE TABLE employee ( - // firstname varchar(32), - // lastname varchar(32)); - string sql = - "SELECT firstname, lastname " + - "FROM employee"; - dbcmd.CommandText = sql; - IDataReader reader = dbcmd.ExecuteReader(); - while(reader.Read()) { - string FirstName = (string) reader["firstname"]; - string LastName = (string) reader["lastname"]; - Console.WriteLine("Name: " + - FirstName + " " + LastName); - } - // clean up - reader.Close(); - reader = null; - dbcmd.Dispose(); - dbcmd = null; - dbcon.Close(); - dbcon = null; - } - } -</pre> - </li> - <li>Building C# Example: - <ul> - <li>Save the example to a file, such as, TestExample.cs</li> - <li>Build on Linux: -<pre> - mcs TestExample.cs \ - -r System.Data.dll \ - -r Mono.Data.MySql.dll -</pre> - </li> - <li>Build on Windows via Cygwin: -<pre> - mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \ - TestExample.cs \ - -lib:C:/cygwin/home/MyHome/mono/install/lib \ - -r System.Data.dll \ - -r Mono.Data.MySql.dll -</pre> - </li> - </ul> - </li> - <li>Running the Example: -<pre> -mono TestExample.exe -</pre> - </li> - -</ul> diff --git a/doc/odbc b/doc/odbc deleted file mode 100755 index 80143fcb7eb..00000000000 --- a/doc/odbc +++ /dev/null @@ -1,218 +0,0 @@ -* ODBC Data Provider - -<ul> - - <li>ADO.NET Data Provider for Data Sources - that have <a href="http://www.microsoft.com/data/odbc/">ODBC</a> support.</li> - - <li>Exists in namespace System.Data.Odbc and assembly System.Data</li> - - <li>Works on Windows and Linux. Should have no problems working on UNIX too.</li> - - <li>Works on Windows via the native Windows odbc32.dll</li> - - <li>Works on Linux via: - - <ul> - <li><a href="http://www.unixodbc.org/">unixODBC</a> which has - commercial support - from <a href="http://www.easysoft.com/">Easysoft</a></li> - - <li><a href="http://www.iodbc.org/">iODBC</a> which has - commercial support - from <a href="http://oplweb.openlinksw.com:8080/download/">OpenLink Software</a></li> - </ul> - - <li>List of unixODBC <a href="http://www.unixodbc.org/drivers.html">drivers</a> - - <li>List of <a href="http://www.sqlsummit.com/odbcvend.htm">ODBC Vendors</a> - - <li>ODBC can connect to various databases which has an ODBC driver installed: - <ul> - <li><a href="http://www.mysql.com/">MySQL</a></li> - <li><a href="http://www.postgresql.org/">PostgreSQL</a></li> - <li><a href="http://www.oracle.com/">Oracle</a></li> - <li><a href="http://www.borland.com/products/downloads/download_interbase.html">Interbase</a></li> - <li><a href="http://www.sybase.com/downloads">Sybase</a> ( - via <a href="http://www.freetds.org/">FreeTDS</a> on UNIX)</li> - <li><a href="http://www.microsoft.com/sql/default.asp">Microsoft SQL Server</a> ( - via <a href="http://www.freetds.org/">FreeTDS</a> on UNIX)</li> - <li><a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a></li> - <li><a href="http://www.microsoft.com/office/access">MS Access</a> - (via <a href="http://mdbtools.sourceforge.net/">MDB Tools</a> on UNIX)</li> - </ul> - - <li>ODBC Provider created by Brian Ritchie.</li> - - <li>Does not support trusted connections</li> - -</ul> - -** Current Status - -<ul> - <li>Can Connect on: - <ul> - <li>Windows via native Windows odbc32.dll</a></li> - <li>Linux via: - <ul> - <li>unixODBC's libodbc.so</li> - <li>iODBC's libiodbc.so</li> - </ul> - </li> - </ul> - </li> - - <li>Various databases have been tested using their - ODBC drivers: MySQL, PostgreSQL, Oracle, IBM DB2, and Microsoft SQL Server</li> - - <li>Can execute non-query commands via ExecuteNonQuery of a OdbcCommand</li> - - <li>Can execute aggreates and retrieve a single row single column result via - ExecuteScalar of a OdbcCommand</li> - - <li>Can execute queries via ExecuteReader of a OdbcCommand and - retrieve results using an OdbcDataReader</li> - - <li>Can get a DataTable containing schema info via GetSchemaTable() in a OdbcDataReader</li> - - <li>Can Fill a DataTable in a DataSet via an OdbcDataAdapter</li> - - <li>Works in SQL#, but Column names don't show up correctly.</li> - - <li>Bugs with Mono or the data provider should be reported - in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you - do not have Bugzilla user account, it is free - and easy to - create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> - - -</ul> - -** Action Plan - -<ul> - - <li>Fixing bugs - - <li>Testing with other setups -</ul> - -** Testing ODBC provider with IBM DB2 Universal Database - -<ul> - <li>You need a working mono and mcs</li> - - <li>For Unix, you will need unixODBC or iODBC installed</li> - - <li>Have acess to a <a href="http://www-306.ibm.com/software/data/db2/">IBM DB2 Universal Database</a> or - you can download from IBM</li> - - <li>Read these web pages about Unix, ODBC, and IBM DB2 - - <ul> - <li><a href="http://www.unixodbc.com/doc/db2.html">unixODBC web page about IBM DB2</a></li> - <li><a href="http://www-306.ibm.com/software/data/db2/udb/ad/v8/cli/t0010406.htm">IBM web page about unixODBC and DB2</a></li> - </ul> - </li> - - <li>The ODBC provider is similar to the <a href="http://www.go-mono.com/ibmdb2.html">IBM DB2</a> provider.</li> -</ul> - -** Testing ODBC provider with MySQL - -<p>You can test Mono's ODBC provider System.Data.Odbc with the MySQL ODBC driver MyODBC - -<p><ul> - <li>Take a look at OdbcTest.cs in mcs/class/System.Data/Test</li> - - <li>Here is a ConnectionString format if you have a DSN setup: -<pre> -"DSN=dataSetName;UID=myuserid;PWD=mypassword" -</pre> - </li> - <li>Here is a ConnectionString format if you do not have a DSN (have not - gotten this to work though): -<pre> -"DRIVER={MySQL ODBC 3.51 Driver};" +
-"SERVER=localhost;DATABASE=test;" +
-"UID=myuserid;PASSWORD=mypassword;" +
-"OPTION=3";
- -</pre> - </li> - <li>C# Example: -<pre> - using System; - using System.Data; - using System.Data.Odbc; - - public class Test - { - public static void Main(string[] args) - { - // have an ODBC DSN setup named MYSQLDSN - // that accesses a MySQL database via - // MyODBC driver for ODBC with a - // hostname of localhost and database test - string connectionString = - "DSN=MYSQLDSN;" + - "UID=myuserid;" + - "PWD=mypassword"; - IDbConnection dbcon; - dbcon.Open(); - dbcon = new OdbcConnection(connectionString); - IDbCommand dbcmd = dbcon.CreateCommand(); - // requires a table to be created named employee - // with columns firstname and lastname - // such as, - // CREATE TABLE employee ( - // firstname varchar(32), - // lastname varchar(32)); - string sql = - "SELECT firstname, lastname " + - "FROM employee"; - dbcmd.CommandText = sql; - IDataReader reader = dbcmd.ExecuteReader(); - while(reader.Read()) { - string FirstName = (string) reader["firstname"]; - string LastName = (string) reader["lastname"]; - Console.WriteLine("Name: " + - FirstName + " " + LastName); - } - // clean up - reader.Close(); - reader = null; - dbcmd.Dispose(); - dbcmd = null; - dbcon.Close(); - dbcon = null; - } - } -</pre> - </li> - <li>Building C# Example: - <ul> - <li>Save the example to a file, such as, TestExample.cs</li> - <li>Build on Linux: -<pre> - mcs TestExample.cs -r System.Data.dll -</pre> - </li> - <li>Build on Windows via Cygwin: -<pre> - mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \ - TestExample.cs \ - -lib:C:/cygwin/home/MyHome/mono/install/lib \ - -r System.Data.dll -</pre> - </li> - </ul> - </li> - <li>Running the Example: -<pre> -mono TestExample.exe -</pre> - </li> - -</ul> diff --git a/doc/oldnews b/doc/oldnews deleted file mode 100644 index 55632f3ffbb..00000000000 --- a/doc/oldnews +++ /dev/null @@ -1,2917 +0,0 @@ -@item Dec 21st 2003: Mono on PowerPC Progress. - - Paolo reports today that the Mono JIT on the PowerPC was able - to successfully run the Mono C# compiler to build its first - programs. This is by no means complete (exception handling is - missing, and Boehm GC seems to fail on MacOS X), this shows - the excellent progress Paolo has been making. - - Zoltan has added support for modules to MCS (generation and - consumption). - -@item Dec 10th, 2003: Mono Debugger 0.5 released - - Martin Baulig has <a - href="http://primates.ximian.com/~martin/blog/archives/000231.html">released</a> - a new version of the Mono Debugger. - -@item Dec 2nd, 2003: Mono 0.29 has been released - - Check out the <a - href="http://www.go-mono.com/archive/mono-0.29.html">Release - notes</a> for details on Mono 0.29. - - This release includes the PPC JIT engine running `Hello World' - and ASP.NET is considered feature-complete. - -@item Nov 25th, 2003: Gtk# 0.14, System.DirectoryServices - - Gtk# 0.14 has been released, and it is available from <a - href="http://gtk-sharp.sf.net">the Gtk# web site</a>. - - Sunil has checked in the implementation of - System.DirectoryServices as well as the Novell.Directory.Ldap - code into Mono CVS. - -@item Nov 14th, 2003: Gtk# 0.13 released. - - Mike Kestner has <a - href="http://lists.ximian.com/archives/public/mono-list/2003-November/016943.html">announced</a> - the release of the <a href="http://gtk-sharp.sf.net">Gtk#</a> - GUI toolkit for .NET and Mono. - -@item Nov 13th, 2003: Managed LDAP binding for Mono and .NET - - Sunil Kumar at Novell has <a - href="http://lists.ximian.com/archives/public/mono-list/2003-November/016907.html">announced</a> - the availability of a fully managed implementation of LDAP for - Mono and the .NET Framework. - - You can obtain the library from <a - href="http://forge.novell.com">Novell Forge's</a> <a - href="http://forge.novell.com/modules/xfmod/cvs/cvsbrowse.php/ldapcsharp/CsharpLDAP">CSharpLDAP</a> - module. - -@item Nov 4th, 2003: Mono Roadmap announced. - - The <a href="mono-roadmap.html">Mono Roadmap</a> and <a - href="mono-hacking-roadmap.html">Mono Hackers Roadmap</a> have - been released. - -@item Oct 28th, 2003: Mono Get Together at the PDC. GTK# 0.12 Released. - - We will be getting together at the West Tower Lobby on Tuesday - 28th at 6pm to talk about the Mono project. You have 24 hours to - notify all of your friends, open source buddies and free software - folks. - - We will bring Mono t-shirts. - - Mike Kestner released <a href="http://gtk-sharp.sourceforge.net">Gtk#</a> 0.12 today. GTK# source tar balls - and RPMs are available. A windows installer was contributed by Johannes Roith. - -@item Oct 26th, 2003: Last Minute Mono BOF - - The first in a series of undercover Mono BOFs at the PDC will take - place tonight at 7pm on the Academy meeting, in room 411. Come join us - to plot the evolution. - - -@item Oct 25th, 2003: GTK# 0.11+ Windows Installer available - - Johannes created a Windows - Installer for GTK# 0.11+ and works - with Mono 0.28 for Windows. - -@item Oct 21st, 2003: Mono Community at Novell Forge - - Mono Developers that are looking for a public repository for - hosting their projects can now use <a - href="http://forge.novell.com">Novell Forge's</a> which hosts - a <a - href="http://forge.novell.com/modules/xfmod/community/?monocomm">Mono - Community</a>. - - Novell Forge offers mailing lists, cvs repository, bug - tracking and mailing list services and all the other services - you expect. Mono will continue to be hosted in our own CVS - repository, and using our <a href="anoncvs.html">anonymous CVS - servers</a> - -@item Oct 13th, 2003: SPARC V9, HPPA, Internationalization, GdiPlus - - Dick Porter has checked in our rewrite of the international - substrate in Mono that uses the <a - href="http://oss.software.ibm.com/icu/">International - Components for Unicode</a> library from IBM. This means that - we got CultureInfo support through the whole code base now. - - Alexandre Pigolkine has checked-in the new implementation of - System.Drawing. We have now dropped the old implementation - with multiple-backends that we had, and replaced it with an - implementation that P/Invokes into GDI+. A GDI+ - implementation on top of <a - href="http://www.cairographics.org">Cairo</a> is used on Unix - systems. This step vastly simplifies the development and - maintenance of System.Drawing. - - There are plenty of updates to Mono as well, we encourage you - to read the <a - href="http://www.go-mono.com/monologue">Monologue</a> to keep - an eye on recent developments. - - Bernie Solomon just <a - href="http://lists.ximian.com/archives/public/mono-devel-list/2003-October/002460.html">checked - in</a> 64-bit support for SPARC v9 and HPPA into the Mono - runtime. This also improves the SPARC-32 support. - -@item Oct 6th, 2003: Linux s390 Mono packages available. - - Neale Ferguson has contributed Mono packages for the - Linux/s390. You can get them from the <a - href="download.html">download</a> page. - -@item Oct 5th, 2003: Monologue aggregates Mono Blogs - - You can now read an aggregated view of the <a - href="blogs.html">blogs</a> maintained by Mono developers in - <a href="http://www.go-mono.com/monologue">Monologue</a>. - Monologue is available as an HTML page or as an <a - href="monologue/index.rss">RSS feed</a>. - -@item Oct 2nd, 2003: Windows packages, MonoDoc 0.7 - - Windows packages for Mono 0.28 are now available from our <a - href="download.html">download</a> page. - - A new version of MonoDoc has been released. The new version - is available <a href="archive/monodoc-0.7.tar.gz">here</a> - -@item Oct 1st, 2003: Mono 0.28 has been released. - - Check out the <a - href="http://www.go-mono.com/archive/mono-0.28.html">Release - notes</a> for details on Mono 0.28. This release marks the - completion of the SourceGear project to add web services - functionality to Mono and improve its reliability. - -@item Sep 30th, 2003: Mono Kick Start book available - - The Mono Kick Start book is now <a - href="http://www.amazon.com/exec/obidos/tg/detail/-/0672325799/qid=1064937318/sr=8-1/ref=sr_8_1/103-9624440-8714218?v=glance&s=books&n=507846">available</a> - in English. Originally available only in <a - href="http://www.amazon.de/exec/obidos/ASIN/3827264928/qid=1050051051/sr=2-1/ref=sr_2_3_1/028-2755135-1623712">German</a>. - The book technical review was done by <a - href="http://www.maurer-it.com/">Dietmar Maurer</a> JIT - architect at the Mono team. - -@item Sep 26th, 2003: DiaCanvas# 0.1 released, Gtk# 0.11 released. - - Mike Kestner has <a - href="http://lists.ximian.com/archives/public/gtk-sharp-list/2003-September/002475.html">released</a> - a new version of <a href="http://gtk-sharp.sf.net">Gtk#</a>. - - Martin has also - <a href="http://mwh.sysrq.dk/programs/announcements/diacanvas-sharp-0.1.0.html">released</a> - his binding to <a href="http://diacanvas.sf.net">DiaCanvas</a> for C#. - -@item Sep 16th, 2003: WineLib, Authenticode, Generics, Xslt updates, Wsdl compiler, WSE. - - <b>WineLib:</b> Vladimir has added new libraries to the Wine - process, which we will soon bring into our packages: the - various Windows common dialogs can now be used (screenshots: - <a href="images/colordlg.png">here</a>, <a - href="images/fontdlg.png">here</a>, <a - href="images/filedlg.png">here</a> and <a - href="images/finddlg.png">here</a>. - - Johannes has patches to have Wine track the Gtk theme, - screenshot here (link got broken). - - <b>Security:</b> New authenticode support from Sebastien has - been checked into CVS. - - <b>Xslt:</b> Plenty of conformance updates to the managed - implementation of Xslt, as well as breaking the libxslt speed - barrier. Our managed implementation is now faster than the - C-based libxslt that we used before. - - <b>Generics:</b> Work continues on generics support, feel free - to try it out. The compiler is currently on a separate - directory until we stability it (gmcs) and you need to compile - the class libraries with the `generics' profile to try it - out. Sample generic programs are included in the CVS module. - - <b>Wsdl:</b> We now have Wsdl support in Mono: a wsdl compiler - command line tool, and support on ASP.NET to generate the wsdl - file from an .asmx file. - - <b>AOT:</b> Many robustness updates to the ahead-of-time - compiler and a new locking and threading system that avoids - having "big locks" around the mono kernel, and moves to a - fine-grained locking system. The design includes a lattice to - avoid deadlocks. - - <b>Dogfooding:</b> We are now running Mono's ASP.NET on - go-mono.com to find problems. It is currently hosting our - Monodoc documentation. The <a - href="http://www.go-mono.com/docs/index.html">Apache module - version</a> and the <a href="http://www.go-mono.com:8080/">XSP - version</a>. - - <b>WSE:</b> The Web Services Enhancements season has begun. - The Microsoft.Web.Services namespace and classes are now - checked into CVS. - -@item Sep 1st, 2003: Ice for Mono; XmlSerializer generators; Monodoc progress. - - <b>Ice:</b> Vladimir has checked into CVS (Module ginzu) an - implementation of <a href="http://www.zeroc.com">ZeroC's</a> - <a href="http://www.zeroc.com/ice.html">ICE</a> protocol. It - is implemented using Remoting. If you were looking for an - efficient binary protocol to use with Remoting, this is it. - - ICE is simpler to use than CORBA, and was created by people - who were deeply involved in CORBA and wanted to fix its - problems (you can see a <a - href="http://www.zeroc.com/iceVsCorba.html">list of - differences</a>). - - <b>XmlSerializer</b>: Lluis has checked in a new technology - for use in our XmlSerializer: the XmlSerializer code - generator. Currently our XmlSerializer generates a - description of instructions for serializing data, these - instructions are later interpreted while using it: Reflection - is used to pull all the data. The code generator is the first - step into turning the Serializer from an intepreter into a - compiler and improving the performance of it. - - Currently was used internally to implement the WSDL - serializer, in the future it will just be part of the standard - serialization process. - - <b>MonoDoc:</b> New providers! Thanks to <a - href="http://www.jaggersoft.com/">Jon Jagger</a> for providing - us with his master XML files for the C# specification we now - have integrated the C# spec into Monodoc. Another provider is - the Error provider: now we include all the C# compiler errors - in the help system. - - Alp has contributed various user interface improvement, and - updated our list widget for key navigation; Ben made the - matches window more useful and Joshua has helped us clean up - the ECMA provider even more. - -@item Aug 14th, 2003: Mono 0.26 has been released - - A new version of Mono is available, the new features include: - <a href="http://www.cairographics.org/">Cairo support</a>, <a - href="http://remoting-corba.sf.net">Remoting.Corba</a> - support, as well as a managed XSLT implementation. - - Existing features have been improved vastly: better - Windows.Forms, runtime, faster compiler, web services, better - compliance to the spec and more. - - Check out the <a - href="http://www.go-mono.com/archive/mono-0.26.html">Release - notes</a> for details. - -@item Aug 9th, 2003: Python for .NET Preview 2 available; Mono Documentation site up. - - Brian Lloyd has <a - href="http://lists.ximian.com/archives/public/mono-list/2003-August/015313.html">announced</a> - the availability of his Python binding to .NET. This works - with .NET and Mono. For more information about it, see - Brian's site at <a href=" - http://zope.org/Members/Brian/PythonNet/">http://zope.org/Members/Brian/PythonNet/</a> - - We have uploaded the current Mono Documentation (core - libraries and Gtk#) to <a - href="http://mono.ximian.com:8080"/>http://mono.ximian.com:8080</a>. - The site is running the ASP.NET edition of <a - href="archive/monodoc-0.6.tar.gz">MonoDoc 0.6</a> on XSP. - -@item Aug 6th, 2003: Winforms samples - - Timothy Parez is coordinating the effort to create sample - programs that exercise the various Windows.Forms controls. We - are using this as graphical regression test suite for the Mono - implementation. - - The screenshots of the various widgets, together with the - source code is available on the <a - href="http://www.nullenvoid.com/mono/wiki/index.php/WineSamples">WineSamples</a> - page on the <a - href="http://www.nullenvoid.com/mono/wiki/">Mono Wiki</a>. - - A new cvs module called `winforms' has been created that - contains the source code for the samples. To run the samples, - you can install the WineLib packages available from our <a - href="download.html">download page</a>. - -@item Aug 5th, 2003: New Apache Module architecture: 1.3 and 2.x supported - - Gonzalo rearchitected our Apache module for hosting Mono and - ASP.NET. The previous incarnation hosted a Mono runtime on - each Apache process, which lead to a slow setup for webforms. - The new setup uses a shared mono process for all the incoming - requests. Daniel later improved up the new architecture and - added dual support, so now in addition to Apache 2.x, we - support Apache 1.3 with the same codebase. - - The new code is available on CVS, on module `mod_mono', and - now requires an XSP installation to be available. - -@item Aug 4th, 2003: Ximian acquired by Novell. - - Today <a href="http://www.novell.com">Novell</a> acquired <a - href="http://www.ximian.com">Ximian</a>. The press release is - available <a - href="http://www.ximian.com./about_us/press_center/press_releases/index.html?pr=novell">here</a>. - - Mono and Gnome form an integral part of the Novell strategy. - -@item Jul 30th, 2003: Remoting.CORBA, Managed XSLT. - - Today Lluis announced that Mono CVS contains all the fixes to - run <a - href="http://remoting-corba.sourceforge.net/">Remoting.CORBA</a>: - both client and server channels work; We are interested in people - testing it with other ORBs. - - Ben checked-in today his managed implementation of Xslt that - we mentioned on Jul 19th; This uncovered various limitations - on the XPath implementation, which Piers has swifly removed. - Monodoc, NUnit and our Corcompare work with it. Since this is - implementation is not completed yet, we still support the - libxslt-based version by default. For more details on how to - try the new XSLT implementation, see <a - href="http://lists.ximian.com/archives/public/mono-devel-list/2003-July/001681.html">Ben's - post</a> - -@item Jul 27th, 2003: Wine packages and Daily Snapshots - - MonoWine packages (used to run System.Windows.Forms) software - are now available from our (<a - href="download.html">download</a> page). You can track the - progress on our <a - href="http://www.nullenvoid.com/mono/wiki/index.php/WineSamples">Wiki - page.</a> - - We're now building daily snapshots of Mono. They come in - three distinct flavors: - - <ul> - * mono snapshot tarballs - These are 'release-style' tarballs and - contain everything necessary to setup a new - installation from scratch. This includes the Mono - runtime and all the assemblies we distribute. - - * monocharge tarballs - These tarballs contain only - the assemblies built on that day. - - * monolite tarballs - These tarballs contain a copy of - 'corlib.dll', 'mcs.exe', 'System.dll', 'System.Xml.dll' and - 'Mono.CSharp.Debugger.dll'. They can be used to - re-bootstrap an out-of-sync installation. - </ul> - - The daily builds are availble here: <a href="http://go-mono.com/daily">http://go-mono.com/daily</a> - - If you find that the builds are broken, please notify Duncan. - -@item Jul 19th, 2003: Recent developments - - Since Mono has matured, we have limited the news on the site - to major accomplishments that are finished, but this week, it - is worth devoting some time to talk about some of the - work-in-progress projects that are progressing. - - Jackson has added support to the IL assembler for generics as - well as to the PEAPI library, and it has assembled its first - generic program. Support for handling images with generics - has been on our file format reader for a while, but the JIT - engine is still incomplete. - - On the XSLT world, Atsushi and Ben continue to make big - improvements. Ben recently got the prototype managed XSLT - implementation to run its first stylesheet. Although - currently Mono uses libxslt to implement the System.Xml.Xsl - namespace, to have a fully .NET compliant implementation we - will need a managed version, and this is the beginning of it. - - Lluis recently posted an update on the <a - href="http://lists.ximian.com/archives/public/mono-devel-list/2003-July/001550.html">state - of WSDL</a> in Mono. Now that the web services runtime is - ready, the WSDL compiler becomes more important as a - development tool. - - Atsushi continues his work on the DTD validating reader in - System.Xml, as well as improving our XML Schema support. - -@item Jul 14th, 2003: New build system; IPV6 support. - - Peter Williams has contributed a new build system that - addresses many of the annoyance we had with our previous build - system. He has worked on this for a few weeks, and Gonzalo - helped test it and get it into CVS. We no longer have the - historical dual build system: make for Unix and nant for - Windows. - - This system also offers the opportunity to compile our class - libraries with different profiles (.NET 1.0, .NET 1.1 and the - various ECMA subsets). - - Peter explains the new build system <a - href="http://lists.ximian.com/archives/public/mono-devel-list/2003-July/001506.html">here</a> - - Jerome's IPV6 code has been checked into CVS; With Peter's new - build system, we will be able to expose it (as part of the - NET_1_1 build). - -@item Jul 9th, 2003: ASP.NET web services, coverage tools. - - Web Services keep advancing: now we also support server-side - authoring of Web Services as well as web service clients - (which shipped in Mono 0.25). This works using our ASP.NET - runtime, so it works with either XSP or the Apache module. The - new Web Services work from Lluis added the missing bits: - <ul> - <li> .asmx files. - <li> Method calls with complex parameters (whatever XmlSerializer can currently serialize, which is a quite a lot). - <li> ref and out parameters. - <li> Soap headers (In, Out and InOut). - <li> Soap extensions, both global (configured in web.config) and particular to methods (configured using attributes). - </ul> - - For more details, see Lluis <a href="http://lists.ximian.com/archives/public/mono-devel-list/2003-July/001449.html">post</a> - - GUI-wise: Work on <a href="http://xr.xwin.org">Xr</a> to - implement System.Drawing continues. This will provide a full - GDI+ implementation for Mono, and this will be hooked up into - Gtk# and System.Windows.Forms. - - MonoDoc keeps moving along, with a new web-based version - coming up next, and we are also exploring a collaborative - extension to allow people to contribute documentation through - their web browsers. - - Zoltan's Coverage analysis tool has been checked into CVS. - With this tool it is now possible to find which class library - code paths are missing regression tests. The module is - `monocov'. Details are <a - href="http://www.nexus.hu/vargaz/">here</a>. A fresh Gtk# - version is available now. - - Jean's remoting-based Soap implenentation is also maturing. - -@item Jun 26th, 2003: Mono 0.25 has been released. - - We have released Mono 0.25. A list of the new features is - available <a href="archive/mono-0.25.html">here</a>. - - Packages for Windows, and various Linux distributions are - available on our <a href="download.html">download</a> page. - -@item Jun 17th, 2003: Web Services client; Profiling hooks - - Lluis and Gonzalo have checked into CVS the support for web - services in the Mono runtime. This allows Mono to work as a - web services client. We still require a WSDL compiler to - compile the initial stub, but Erik has the beginning of a WSDL - compiler ready and Atsushi has continued work on his - experimental Xml Schema to C# class generator. - - As part of this, the Mono Http runtime has been rewritten to - increase reliability, scalability and conformance to the - specs. Also our io-layer has been extended to not have - arbitrary limits. This was done as part of our collaboration - with SourceGear. - - Paolo has commited the new pluggable profiling API to the Mono - runtime: now the profiler is built as a module, and a new code - coverage analysis has been checked in (and Zoltan already - added improvements to it). - - Mark's Mozilla bindings continue to improve, and we will shortly - migrate the Mono documentation browser to use Mozilla, to take - advantage of the tutorial's use of CSS. - - Jackson's work on the IL assembler and Ben on running - regression tests have provided us with a very needed tool in - the Mono toolkit. One of the last missing pieces on the SDK. - - On the crypto world, we got Sebastien's certificate viewer - checked into CVS and the crypto code keeps advancing by leaps - and bounds. - - Alexandre and Aleksey Work continues on Windows.Forms on top - of Wine and Gtk# (the former for full compatibility, the later - for ease-of-authoring). - - Cesar checked in the beginning of the semantic analysis code - for his JScript compiler, and will be working on it full time. - -@item Jun 11th, 2003: SourceGear and Ximian announce partnership - - Ximian, Inc., the leading provider of desktop and server - solutions enabling enterprise Linux adoption, today announced - that SourceGear Corporation will use Mono\x{2122} Project - technology to offer cross-platform versions of its - products. In addition, the companies have entered into a - development partnership under which Ximian will provide - custom Mono development to enable delivery of SourceGear - products later this year. As a result, SourceGear will offer - both UNIX and Linux clients for its SourceGear Vault source - code management tool, enabling broader use of its solutions in - mixed-platform development organizations. - - <a href="http://www.ximian.com/about_us/press_center/press_releases/index.html?pr=sourcegear">Read more...</a> - - Some technical details are available <a - href="http://lists.ximian.com/archives/public/mono-list/2003-June/014334.html">here</a>. - -@item May 20th, 2003: OpenLink releases WineLib patches. - - OpenLink <a - href="http://lists.ximian.com/archives/public/mono-winforms-list/2003-May/000284.html">announced</a> - the release of Vladimir's work to turn Wine into a library - that can be used dynamically from Mono. This work simplifies - the work on System.Windows.Forms as it is no longer necessary - have a special version of the GC, nor have a stub program. - The patches are available <a - href="http://www.openlinksw.com/mono/">here</a>. - - Mono packages for the Linux/s390 are available now in the <a - href="download.html">download page</a>. - -@item May 10th, 2003: Eclipse runs on Mono - - Today Zoltan Varga announced that he got the <a - href="http://www.eclipse.org">Eclipse IDE</a> running on top - of Mono+<a href="http://www.ikvm.net">IKVM</a>. - - A screenshot of Eclipse running with Mono can be found <a - href="images/ikvm-screenshot.png">here</a> - -@item May 6th, 2003: Mono 0.24 ships - - We have released Mono 0.24 which includes our new code - generation engine. A list of the new features is available <a - href="archive/mono-0.24.html">here</a>. - - Packages for Windows, and various Linux distributions are - available on our <a href="download.html">download</a> page. - We are shipping Gtk# and MonoDoc packages for the first time. - -@item Apr 21st, 2003: Virtuoso 3.0 ships. - - <a href="http://www.openlinksw.com">OpenLink's</a> released - their <a href="http://www.openlinksw.com/press/virt3rel.htm">Virtuoso - 3.0</a> database system. Virtuoso ships on Windows and Linux. - On Linux they use Mono as their runtime to host C#, .NET and - ASP.NET. Congratulations to OpenLink for their release. - - Virtuoso can be downloaded <a - href="http://oplweb2.openlinksw.com:8080/download/virtuoso.vsp">here</a> - and a demo is available <a - href="http://demo.openlinksw.com:8890/tutorial/hosting/ho_s_2/ho_s_2.vsp">here</a>. - - OpenLink is contributing fixes and code to the Mono project on - an ongoing basis. - - Jon Udell wrote a small <a - href="http://www.infoworld.com/article/03/03/14/11stratdev_1.html">entry</a> - -@item Apr 19th, 2003: RelaxNG validating reader; Activities. - - Atsushi has created a <a - href="http://www24.brinkster.com/ginga/RelaxngValidatingReader/">RelaxNG</a> - validating XML reader. - - There is activity on the <a - href="http://www.gotmono.com">GotMono forums</a> and the <a - href="http://www.nullenvoid.com/gtksharp/wiki/">Gtk# Wiki</a> - -@item Apr 11th, 2003: First Mono Book is out; Team pages. - - The first book to cover Mono is out. This book is currently - only available in German, you can find it <a - href="http://www.amazon.de/exec/obidos/ASIN/3827264928/qid=1050051051/sr=2-1/ref=sr_2_3_1/028-2755135-1623712">here</a> - - We now have a page for the <a href="team.html">Mono Team</a> - where we include a list of some of the people who have made - Mono possible. If you have CVS access, please update the page - to include your information. - -@item Apr 5th, 2003: New compilation engine. - - The new Mono compilation engine has been placed on CVS, the - details are <a - href="http://lists.ximian.com/archives/public/mono-list/2003-April/013269.html">here</a> - - Zoltan has commited his <a - href="http://lists.ximian.com/archives/public/mono-devel-list/2003-April/000274.html">typed - allocation</a> patches to CVS as well. - -@item Apr 3rd, 2003: NUnit 2.0 GTK# GUI; GtkMozEmbed; SWT# - - Gonzalo has checked in his <a href="http://gtk-sharp.sf.net">Gtk#</a>-based - <a href="http://nunit.org">NUnit</a> tool. Screenshots are <a - href="http://primates.ximian.com/~gonzalo/mono/shots/running.png">here</a> - and <a - href="http://primates.ximian.com/~gonzalo/mono/shots/finished.png">here</a> - - Mark has checked his bindings for Gtk-based Mozilla into CVS, - module name: `GtkMozEmbed'. Read the <a - href="http://lists.ximian.com/archives/public/mono-list/2003-April/013247.html">details</a> - - The SWT port to C# using Gtk is <a - href="http://lists.ximian.com/archives/public/sd-mono-port/2003-March/000114.html">progressing</a>. Screenshots are - <a href="http://www.roboto.ch/swt">here</a>. - -@item Mar 28th, 2003: Mono community site. - - <a href="http://www.gotmono.com">www.gotmono.com</a> has - openend its door: Got Mono is a Mono Community site. - -@item Mar 25th, 2003: Second Mono Survey - - <table width="100%" cellpadding="0" cellspacing="1" border="0" bgcolor="blue"> - <tr> - <td valign="top"> - <div style="background: #c0d0ff; margin: 0px 0px 0px 0px; padding: 1px;"> - What do you think about Mono? - - Is your company involved with the development and - deployment of web applications? Is Linux becoming an - important part of your company's business application - strategy? Are you considering Mono for your next - project? Would you like to shape the future of Mono - and the use of Linux in business critical - applications? - - If you answered yes to any of these questions, we - would like to talk with you. If interested, please - email us at <a - href="mailto:mbadgett@ximian.com">mbadgett@ximian.com</a>. - </div> - </td> - </tr> - </table> - -@item Mar 20th: Windows.Forms and Wine. - - Alexandre has provided a modified version of the GC system - that will work with and Mono. See the mono-winforms-list. It - is now possible to run our Win32-based implementation of - Windows.Forms with Mono on Linux. - -@item Mar 7th, 2003: Mono 0.23 - - A new freshly baked release of Mono is available. Release - notes are <a href="archive/mono-0.23">here</a>. This is mostly a - bug fix release. No new features. - -@item Mar 5th, 2003: Mono 0.22; MonoDoc 0.2; Debugger 0.2.1: Release-o-Rama. - - Mono 0.22 has been released. See the <a - href="archive/mono-0.22">release notes</a>. This is a bug fix - release. - - A new preview of MonoDoc 0.2, the Mono Documentation browser - has been <a href="http://lists.ximian.com/archives/public/gtk-sharp-list/2003-March/001266.html">released</a>. - - Martin also announced a <a - href="http://lists.ximian.com/archives/public/mono-list/2003-March/012756.html">new - release</a> of the Mono Debugger (both GUI and command line). - -@item Mar 3rd, 2003: The Mono Hackers Hall Of Fame welcomes Zoltan Varga - - The <a href="hackers.html">Mono Hackers Hall Of Fame</a> - continues to show our appreciation to the excellent - contributors that make <b>mono::</b> a successful free - software project. - - Zoltan has contributed significantly to Mono, with bug reports and bug - fixes as well as pushing the envelope of the things that can be done in - and with the mono runtime: the gcc-based ngen compiler, code coverage - and more recently his work with Reflection.Emit that got mono to the - point of running the <a href="http://www.ikvm.net">IKVM</a> Java virtual - machine. - -@item Mar 2nd, 2003: New Mono mailing list. - - A new mailing list for <a - href="http://lists.ximian.com/mailman/listinfo/mono-devel-list">Mono - Development</a> has been created. - -@item Feb 27th, 2003: Mono 0.21 released - - Mono 0.21 has been released. This is only a bug fix release. - The <a href="archive/mono-0.21">release notes</a> are available. - - Windows binary is available <a href="archive/mono-0.21-win32-1.exe">here</a> - -@item Feb 25th, 2003: Mono 0.20 for Windows released; New Apache module released. - - Packages of Mono for Windows have been <a - href="archive/mono-0.20-stable-win32-2.exe">released</a>. - Thanks to Daniel, Johannes and Paolo for setting this up. - - Daniel has released a new version of his Mono Apache module that - handles ASP.NET. The code is available at <a - href="http://apacheworld.org/modmono/">here</a> - - Nick has posted an update on the progress on our <a - href="http://lists.ximian.com/archives/public/mono-list/2003-February/012467.html">regression - tests</a>. We are looking for more tests, and more volunteers to write them. - - Also, remember to contribute to the Gtk# documentation effort, - momentum is picking up! See the entry for Feb 18th for more details. - -@item Feb, 23rd, 2003: Mono 0.20 released; Gtk# 0.8 released. - - Mono 0.20 has been released. Check out the <a - href="archive/mono-0.20">release notes</a> for an overview of - the changes. You can get it <a href="download.html">here</a>. - There are no major features in this release, mostly bug fixes - and performance improvements. - - Gtk# 0.8 has been <a - href="http://lists.ximian.com/archives/public/gtk-sharp-list/2003-February/001114.html">released</a> - - <b>Important</b>: The contributed binaries for Windows - binaries of Mono 0.20 contain a virus. Please read <a - href="virus.html">this</a> if you installed the binary. - -@item Feb 18th, 2003: Volunteers to document Gtk# - - With the availability of a documentation browser, we are - looking for volunteers to help us complete the documentation - of the Gtk# binding for Mono. - - Experience with Gtk is useful, but not mandatory. We have - checked in stubs, and we have instructions, and resources to - how to complete this process <a - href="documentation.html">here</a>. Mail the <a - href="mailto:mono-docs-list@ximian.com">mono-docs-list@ximian.com</a> - for further discussion. - -@item Feb 14th, 2003: OpenGL# bindings for Mono; Mono Basic updates. - - Mark Crichton has completed his OpenGL/GLUT bindings for - Gnome. A screenshot can be seen <a - href="sshots/oglcs.png">here</a>. The bindings are available - on the Mono CVS repository on the module `glgen'. This is a - straight binding to the C API. - - Marco has <a - href="http://lists.ximian.com/archives/public/mono-list/2003-February/011752.html">posted - an update</a> on the current state of the free VB.NET compiler - for Mono. - - We are looking for contributors and maintainers to the - JavaScript compiler as well (Janet) - -@item Feb 12th, 2003: New assemblies, Gtk# stub documentation, Authenticode, Polish site - - Mono now distributes a few new assemblies: Mono.Security.Win32 - as a layer to use the crypto functionality on Win32. The - Mono.Posix assembly which contains functionality for taking - advantage of Unix facilities. - - A <a href="http://www.go-mono.pl/">Mono site in Poland</a>. - - Stubs for the Gtk# documentation have been checked into CVS. - If you want to contribute please read <a - href="http://lists.ximian.com/archives/public/mono-list/2003-February/012108.html">this - message</a> - - Mono development is moving quickly: Tim and Daniel have been - improving the Oracle database provider and Sebastien Pouliot - has got code signing to work using Authenticode with pure open - source and managed code. Plenty of new VB.NET work from Marco - (compiler) and Daniel (runtime). Also Jackson has resumed - work on the IL assembler and the fully managed library to - generate CIL images (Sergey wrote the first Mono.PEToolkit). - -@item Feb 11th, 2003: Mono Weekly News, New assemblies. - - <a href="http://monoevo.sourceforge.net/mwn/index.html">Mono - Weekly News</a>: Includes a new interview, software - announcements and the PHP/Mono integration. - -@item Feb 5th, 2003: MonoDoc 0.1 - - A <a - href="http://www.go-mono.com/archive/monodoc-0.1.tar.gz">preliminary - release</a> of the Mono Documentation Browser is now availble. - Release <a - href="http://lists.ximian.com/archives/public/mono-list/2003-February/011935.html">notes</a> - -@item Jan, 22th, 2003: Mono wins award, OpenLink releases Virtuoso. - - Mono won the `Best Open Source Project' award at the Linux - World Expo. A description is <a - href="http://linuxtoday.com/news_story.php3?ltsn=2003-01-23-024-26-OP-EV">here</a> - - Open Link has a <a - href="http://biz.yahoo.com/prnews/030123/neth013_1.html">press - release</a> about Virtuoso 3.0: the first commercial product - shipping that uses Mono. - -@item Jan, 20th, 2003: Mono 0.19 released; Screenshots page; Gtk# 0.7 - - Mono 0.19 has been released. Check out the <a - href="archive/mono-0.19">release notes</a> for an overview of - the changes. You can get it <a href="download.html">here</a>. - There are no major features in this release, mostly bug fixes - and performance improvements. - - We have now a new section <a href="screenshots.html">with - screenshots</a> of various Mono applications. You can see - there the new released Debugger, as well as the work in - progress on the documentation browser. - - <a href="http://gtk-sharp.sf.net">Gtk# 0.7</a> has been <a - href="http://lists.ximian.com/archives/public/mono-list/2003-January/005222.html">released</a> - -@item Jan, 19th, 2003: Mono Debugger released. - - After six month of extensive development, Martin Baulig has - released the first version of the Mono debugger. The Mono - debugger is written in C# and can debug both managed and - unmanaged applications, support for multiple-threaded - applications and should be relatively easy to port to new - platforms. - - Details of the release are available in <a - href="http://lists.ximian.com/archives/public/mono-list/2003-January/005192.html">post</a>. - - The debugger contains both Gtk# and command line interfaces. - The debugging file format used in Dwarf (its already supported - by our class libraries and the Mono C# compiler; To debug C - applications, you need a recent GCC, or to pass the -gdwarf-2 - flag to gcc). - -@item Jan, 17th, 2003: DB2 provider, MacOS X - - Christopher Bockner has contributed a DB2 System.Data client. - - MacOS X support on the runtime has been integrated into the - distribution, and MCS works with it. - - Zoltan has managed to get <a - href="http://radio.weblogs.com/0109845/">IKVM</a> (a Java VM - for .NET) to run with Mono. The HelloWorld.class runs with - the Mono runtime. - -@item Jan, 13th, 2003: Mono 0.18 released - - Mono 0.18 has been released. Check out the <a - href="archive/mono-0.18">release notes</a> for an overview of - the changes. You can get it <a href="download.html">here</a>. - -@item Jan 10th, 2003: Mono Weekly News. - - A new issue of the <a - href="http://lists.ximian.com/archives/public/mono-list/2003-January/004903.html">Mono - Weekly News</a> has been published. - - Check out the <a href="crypto.html">Crypto status</a> page - that Sebastien has put together. - -@item Jan 3rd, 2003: Glade#, Code Coverage, Apache, MBas, Debugger. - - Rachel has made Glade# use attributes so binding C# widgets to - the designed widgets is now easier than ever. Alp has - improved this to use implicit names as well. - - Martin's Mono debugger now has support for multi-thread - debugging. Special feature: breakpoints can be defined in a - per-thread basis now. - - Daniel López has checked in his Apache module to integrate - Mono and Mono's ASP.NET support as an Apache module. Gonzalo - has folded his new Mono hosting classes into this module (they - are now shared between XSP and mod_mono). You can get the - mod_apache from CVS (module name: mod_mono). - - Mono Basic improvements: Marco has added support for more - statements on the grammar. - - Zoltan has <a href="http://www.nexus.hu/vargaz2/">posted</a> - his Code Coverage analysis tool for Mono. - -@item Dec 17th, 2002: Mono: Commercial uses. - - <a href="http://www.tipic.com">Tipic</a> today <a - href="http://www.ximian.com/about_us/press_center/press_releases/index.html?pr=tipic_mono">announced</a> - their work on porting their Instant Messaging Server platform - to run on Mono. - - <a href="http://www.winfessor.com">Winfessor</a> also <a - href="http://www.winfessor.com/press.asp">announced</a> the - availability of their Jabber SDK to run on Mono. - - Also two weeks ago we mentioned <a - href="http://www.openlinksw.com">OpenLink Software's</a> <a - href="http://www.ximian.com/about_us/press_center/press_releases/index.html?pr=openlink_mono">announcement</a> - of their product, also using Mono. - -@item Dec 10th, 2002: Gtk# 0.6 released; Mono 0.17 packages for Windows and Debian. - - Mike Kestner <a - href="http://lists.ximian.com/archives/public/mono-list/2002-December/003961.html">announced - Gtk# 0.6</a>. This new release includes many new features and - bug fixes, and is the perfect companion to the <a - href="archive/mono-0.17">Mono 0.17</a> release. - - Johannes has contributed a Windows-ready package of Mono 0.17, - and its available from our <a - href="download.html">download</a> page. - - Alp Toker has <a href="http://www.atoker.com/mono/">Debian packages</a> - -@item Dec 9th, 2002: Mono 0.17 has been released - - Mono 0.17 has been released. Check out the <a - href="archive/mono-0.17">release notes</a> for a more detailed - list. You can get it <a href="download.html">here</a>. - - Many new features as well as plenty of bug fixes. Many new - System.Data providers and a more mature System.Web (ASP.NET) - which can now be hosted in any web server. A simple <a - href="archive/xsp-0.2.tar.gz">test web server</a> to host - asp.net has been released as well. - - This version also integrates Neale's s390 port. - - This release also includes a new exception handling system - that uses the gcc exception information that vastly improves - our internalcall speed (15% faster mcs compilation times). - -@item Dec 8th, 2002: VB.NET, Oracle Provider. - - Marco has got the Mono Basic compiler up to speed (support for - classes, modules, expressions, object creation, method - invocation, local variables, and some statements). The - compiler is based on the work from Rafael Teixeira on MCS. - - Screenshots: <a - href="http://modgb.sourceforge.net/monobasic_snap.png">in - Windows doing Windows.Forms</a> and in Linux doing <a - href="images/gtk-vb.png">VB with Gtk#</a> (courtesy of Alp). - - Daniel Morgan has checked in his Oracle provider to the CVS - repository as well. - -@item Nov 27th, 2002: Press release, tutorials, Windows Forms, ADO.NET, Magazine. - - <a - href="http://www.business2.com/articles/mag/0,1640,45454,FF.html">The - Penguin Takes Flight</a>: an article written by Erick - Schonfeld appears on the December issue of <a - href="http://www.business2.com/">Business 2.0</a> magazine. - - <a href="http://www.openlinksw.com">OpenLink</a> and <a - href="http://www.ximian.com">Ximian</a> made <a - href="http://www.ximian.com/about_us/press_center/press_releases/index.html?pr=openlink_mono">joint - announcement</a> on the plans of OpenLink to ship their <a - href="http://www.openlinksw.com/virtuoso/index.htm">Virtuoso</a> - server on Unix using Mono. - - Martin Willemoes's <a href="gnometutorial">GNOME.NET - tutorial</a> is now available from the main Mono site. This - tutorial is a collaborative effort to teach developers how to - use Mono to create Mono applications using <a href="http://gtk-sharp.sf.net">Gtk#</a> - - Dennis Hayes has posted and <a - href="http://lists.ximian.com/archives/public/mono-list/2002-December/003800.html">update</a> - on the work to get Windows.Forms working on Mono. There is a - new test application that people can use to test their - controls. If you are interested in working on Windows.Forms, - you can participate in the <a - href="http://lists.ximian.com/mailman/listinfo/mono-winforms-list">mono-winforms - mailing list</a> - - Brian Ritchie has been working on an ADO.NET <a - href="http://brianritchie.webhop.net/ideas/adocodegen.aspx">data - layer</a> and an <a - href="http://brianritchie.webhop.net/ideas/appserver.aspx">application - server</a> for Mono. - - Dan Morgan has checked in his Oracle provider, and Tim Coleman - continues to work on the TDS implementation of the data classes. - - The rest of the team has been working on bug fixing in the - runtime, the compiler, and the class libraries. Also, - compilation speed has increased recently by performing a - number of simple optimizations in the compiler. - -@item Nov 19th, 2002: Crypto update; Books; Gtk# Datagrid; .NET ONE Slides - - Sebastien has got DSA and RSA signatures <a - href="http://lists.ximian.com/archives/public/mono-list/2002-November/003497.html">working</a> - as well as RSA <a - href="http://lists.ximian.com/archives/public/mono-list/2002-November/003502.html">encryption</a>. - We now distribute Chew Keong TAN's BigInteger classes. - - Brian has contributed a System.Data multiplexor in Mono, it - can be found in the Mono.Data assembly. The details of this - new technology are <a - href="http://lists.ximian.com/archives/public/mono-list/2002-November/003400.html">here</a>. - It works in Mono and the .NET Framework. - - Larry O'Brien has announced the candidate book for <a - href="http://lists.ximian.com/archives/public/mono-list/2002-November/003500.html"> - Thinking in C#</a>. The book is Mono-friendly. - - Another book that covers mono (available in German only) is <a - href="http://www.databecker.de/frames.php?PHPSESSD=4948515556575049525459495248485949485348&PHPSESSID=6cc68dbcfbcbacd7b82a984b0700d5d6&t=2"> - here</a>. - - Dan Morgan has implemented a DataGrid widget for Gtk#, you can - see Windows screenshots for it <a - href="images/GtkSharpDataGridScreenshot.png">here</a> and <a - href="images/SqlSharpGtkScreenshot4.png">here</a>. - - Slides from the Mono developers for the .NET ONE conference are available now: - <ul> - <li><a - href="http://primates.ximian.com/~miguel/slides-europe-nov-2002/DotNetOneKeynote.sxi"> - Mono Keynote presentation</a> - - <li><a href="http://primates.ximian.com/~lupus/slides/embed/">Hosting the Mono Runtime</a><br> - The simple embedding of Mono in Perl is available <a - href="http://primates.ximian.com/~lupus/slides/embed/Mono-0.01.tar.gz">here</a> - - <li><a href="http://primates.ximian.com/~lupus/slides/jit/">The Mono JIT compiler</a> - - <li><a href="http://primates.ximian.com/~miguel/slides-europe-nov-2002/Mono_C_Sharp_Overview_1007.sxi"> - Mono C# Compiler Overview</a> - </ul> - - A couple of other presentations from Miguel's trip to Europe - are available <a - href="http://primates.ximian.com/~miguel/slides-europe-nov-2002/">here</a> - in Open Office file format. - -@item Nov 8th, 2002: Mono s390, Database work, new JIT updates. - - Neale Ferguson has contributed <a href="download.html">RPM - packages</a> of Mono for the Linux/s390. - - Tim Coleman posted an <a - href="http://lists.ximian.com/archives/public/mono-list/2002-November/003329.html">update</a> - on the improvements in the System.Data - - The new JIT engine can run 72 out of our 154 tests for the - virtual machine, and it also got exception support this week. - -@item Nov 1st, 2002: TDS, Crypto, Gtk#, Winforms, bug fixes. - - Tim's SqlClient is <a - href="http://lists.ximian.com/archives/public/mono-list/2002-November/003161.html">now - capable</a> of communicating with the Microsoft SQL server - using the TDS protocol. A screenshot showing a sample client - running with <a href="http://gtk-sharp.sf.net">Gtk#</a> on - Windows is shown <a - href="images/SqlSharpGtkSceenshot3.png">here</a> - - Sebastien has made all symetric ciphers functional on all - supported modes; All the classes in Security.Cryptography are - present and the X590 certificates are now in too. Jackson has - been working on the Security classes. - - Many bug fixes all over the place: class libraries (Dick, - Piers, Ville, Zoltan, Gonzalo, Dan, Atsushi, Nick, Phillip), - compiler, runtime engine. A big thank goes for everyone who - has been providing bug reports for us to track down. - - Gaurav has been working on multiple WebControls. Gonzalo migrated - the ASP.NET engine to use POST for interaction. - - In the Gtk# land saw the integration of gda, gnome-db and GStreamer - bindings. - - Windows.Forms classes now build on Linux and Windows, check - out the status pages for areas of collaboration. - -@item Oct 24th, 2002: S390 support, XSP/ASP.NET, Win32 contributors, TDS. - - Today Neal Ferguson's support for the IBM S390 was checked - into CVS. - - The XSP processor has been fully integrated into the - System.Web assembly, and Gonzalo has finished the hosting - interfaces in Mono. This means that it is possible to embed - ASP.NET with the same APIs used in Windows, and is possible to - easily embed it with Apache for example. The XSP module has - now become a shell for testing the System.Web classes. - - We are looking for contributors that know Win32 to contribute - to the Windows.Forms implementation. If you want to help - write some controls using the Win32 API, get in touch with our new <a - href="http://lists.ximian.com/mailman/listinfo/mono-winforms-list">mono-winforms-list@ximian.com - list</a> mailing list. - - Tim's TDS System.Data set of classes can now talk to SQL - servers using the TDS protocol (version 4.2) with - connection pooling. Currently it can connect, run - transactions, update/insert/delete, and read some types. A - data adapter is also coming soon. - -@item Oct 21th, 2002: Crypto, Winforms list, Database, GConf, Debugger. - - Sebastien Poliot has made a lot of progress, he reports that - DES and TripleDES have been fixed; Rijndael and CFB modes - still have problems in some configurations and some areas that - are not supported by the .NET framework. - - Last week we created a new <a - href="http://lists.ximian.com/mailman/listinfo/mono-winforms-list">mailing - list</a> to discuss the Mono Winforms implementation. - - Tim has started a full C# implementation of the TDS protocol - and the providers, and Brian continues his work on his ODBC - binding. - - Rachel Hestilow has also checked in a binding for GConf. This - binding <a - href="http://toxic.magnesium.net/~hestilow/gconfsharp/intro.html">is - unique</a> in that it uses some features in the CLI to support - complex data types, and allows the user to keep only one - representation of the types instead of two (the master types - is defined in CLI-land). Also Property Editors (<a - href="http://primates.ximian.com/~miguel/shots/gconf-shot.png">shot</a>) - simplify the creation of user interfaces that bind their - configuration to backend keys, following the <a - href="http://developer.gnome.org/projects/gup/hig/1.0/">GNOME - Human Interface Guidelines.</a> - - Martin is now on vacation, but before leaving he produced a - number of documents detailing the state of the debugger. The - major missing feature is full support for debugging unmanaged - applications (it requires dwarf-2 handlers for types). We - will do some polishing of the user interface (<a - href="http://primates.ximian.com/~miguel/shots/debugger-4.png">new - shot</a>) to expose the existing and rich functionality to the - users and try to release a preview of the debugger at the same - time as Mono 0.17. - -@item Oct 14th, 2002: Crypto, Database work, Debugger, Documentation. - - Brian, Daniel and Rodrigo have been busy working on the ODBC - provider for Mono. Daniel posted some <a - href="http://lists.ximian.com/archives/public/mono-list/2002-October/002755.html">updates</a>. - Brian posted <a - href="http://lists.ximian.com/archives/public/mono-list/2002-October/002758.html">details - about the ODBC.NET</a> provider. - - Also Sebastien Pouliot has been improving the various - cryptographic classes in Mono, something that we had not done - in quite some time. We are looking for a way to handle - big-nums. We need either a managed or unmanaged set of - classes for handling large numbers, and some volunteers to - expose this functionality to C# (Either as an internal - assembly, or as a set of P/Invoke, Internal call wrappers). - - Martin has got our debugger to support adding breakpoints at - file/line combos. This was more complex than generic - breakpoints in routines, because these breakpoints are set on - routines that probably have not been JITed just yet. Martin's - focus now is on stabilizing our debugger and aim for a public - release of it. - - We have also imported the ECMA documentation into a separate - module, and with the help from Scott Bronson we will have the - necessary XSLT tools to finish our native documentation - browser for Mono. This together with the work from Adam will - be the foundation for the <a href="classlib-doc.html">Mono - Documentation Tools</a>. - -@item Oct 9th, 2002: Various Mono updates. - - Brian Ritchie, Daniel Morgan, Rodrigo Moya and Ville Palo have - been working on various database providers. The MySQL has - seen a lot of work, and a new ODBC provider is now on CVS and - more extensive regression tests have been checked in. - - Dick Porter is our background hero and keeps fixing the - low-level bugs in the portability layer. Now the Mono handle - daemon should be a lot more robust and will no longer leave IPC - regions. Gonzalo Paniagua has initiated the migration of XSP - into the System.Web class libraries now that we have a - complete HttpRuntime implementation. This means that you are - able to embed the ASP.NET processor into any web server you - want. This also includes support for the system-wide - configuration file `machine.config'. - - Martin Baulig has been busy with the Mono Debugger, you can see how - it looks <a - href="http://primates.ximian.com/~miguel/debugger-1.png">here</a> - and <a - href="http://primates.ximian.com/~miguel/debugger-2.png">here</a>. - Now local variables and breakpoints are supported, and we are - working on the UI elements to simplify their use (as seen on - the screenshot). - - <a href="http://gtk-sharp.sf.net">Gtk#</a> has seen a lot of - activity specially as we start to build larger applications. - Vladimir Vukicevic, Kristian Rietveld, Rachel Hestilow, Mike - Kestner and Miguel de Icaza have been busy improving it. - mPhoto which is a Photo management application for Mono and - Gtk# is seen <a - href="http://primates.ximian.com/~miguel/shots/mphoto-2.jpg">here</a>. - - Chris Toshok the man behind LDAP in Evolution continues to - work on the Mono.LDAP# implementation. - - Dietmar Maurer and Paolo Molaro are still busy working on our - new optimized JIT/ATC engine and are making great progress. - The code base has been designed to ease the implementation of - more advanced compiler optimizations, and optimizations can be - chosen individually so they can be tuned for a particular - processor, or use profile-based information to improve the - performance. - -@item Oct 1st, 2002: Mono 0.16 released; Debugger updates. - - Mono 0.16 has been released. Source and RPMs are <a - href="download.html">available</a>. The release notes are <a - href="archive/mono-0.16">here</a>. - - Martin's debugger can debug both managed and unmanaged code. - Recently Martin added support for locals, parameters, and - breakpoints on top of the existing infrastructure (his - debugger supported instruction-level and source-code level - single-stepping). - -@item Sep 19th, 2002: Mono Survey. - - Help us plan for the future of Mono by filing out the <a - href="http://primates.ximian.com/~miguel/monosurvey">First Mono - Survey</a> - -@item Sep 17th, 2002: Mono Hackers Hall of Fame: Sergey Chaban - - The <a href="hackers.html">Mono Hackers Hall Of Fame</a> - continues to show our appreciation to the excellent - contributors that made <b>mono::</b> a successful free - software project. - - This time the Hall of Fame welcomes Sergey Chaban. Sergey has - been a long time contributor to the project, from the early - work on the class libraries that were critical to Mono's - origin: every time you use a Hashtable in Mono, it runs - Sergey's code, to the low-level optimizations on the JIT - engine and to his work on ILASM and the PEToolkit. - - -@item Sep 16th, 2002: Documentation Tools, ILASM, Debugger, Mono LDAP, Winforms - - Adam Treat has started moving the documentation universe again. We - have a new strategy to document our APIs (given that we have - chosen <a href="classlib-doc.html">not to document the code - inline</a>). This includes the use of a master reference file - that will hold the entry points to document. All master files - for our assemblies have been checked into CVS now. - - Sergey Chaban's Mono.PEToolkit and ILASM tools have been - checked into CVS. Although ILASM is old and will soon be - updated, we wanted to get the build issues sorted out. - - Martin Baulig's Mono Debugger is still on its early stages, - but you can run and run step by step your C# code and C code - (including the Mono runtime). Dwarf-2 is required to compile - your code. The regular step, step-into, and assembly-level - step and step-into are supported. And comes with a Gtk# - UI. The debugger is written mostly in C# with some C glue - code. Most of the work is on the engine, we will be working - on making a good UI in the future. - - Chris Toshok of the Hungry Programmer's fame has checked in - Mono.Directory.LDAP, a C# wrapper for the LDAP libraries. - This is the substrate for implementing the - System.DirectoryServices assembly. - - Andrew has also continued with some of the cryptographic - classes implementation. - - After much public debate, we have chosen a new <a - href="winforms.html">strategy to implement winforms</a>. - Implementing a Gtk, Qt or Aqua based version of Winforms was - going to be almost as complex as implementing Wine itself. So - the new strategy is to only roll out a WineLib-based - implementation. - -@item Sep 4th, 2002: .NET One 2002 Program available - - The <a - href="http://www.sigs-datacom.de/sd/kongresse/dotnet_2002/index.htm">.NET - ONE 2002</a> conference in Frankfurt is now available. Paolo - will be talking about the Mono JIT and embedding the Mono - runtime in your Windows and Linux applications. Mike Kestner - will talk about <a href="http://gtk-sharp.sf.net">Gtk#</a> and - the automatic binding generator used by Gtk# and Miguel will - be talking about the Mono project on Monday's keynote and on - the Mono C# compiler on Tuesday. - -@item Sep 3rd, 2002: Apache integration - - <a - href="http://lists.ximian.com/archives/public/mono-list/2002-September/001862.html">Sterling</a> - announced an Apache module that hosts - Mono, and allows CIL code to run from within Apache, giving the - module access to the Apache runtime. This uses the Mono embedding - API. - -@item Aug 24th, 2002: Gtk# 0.4 released - - Shortly after <a href="download.html">Mono 0.15</a> was - released a fresh version of <a - href="http://gtk-sharp.sf.net">Gtk#</a> was <a - href="http://lists.ximian.com/archives/public/mono-list/2002-August/001702.html">announced</a>. - -@item Aug 23rd, 2002: Mono 0.15 released - - Mono 0.15 has been released. Source and RPMs are <a - href="download.html">available</a>. The release notes are <a - href="archive/mono-0.15">here</a> - -@item Aug 21th, 2002: Portable.NET encodings integrated into Mono. - - Rhys Weatherley has contributed the Portable.NET encoders to - the Mono class libraries. This is a great step towards - cooperation between these projects. Thanks to Paolo for doing the - merger on our side. - - His encoders are more complete than the iconv-based approach - that mono used, which was unreliable under certain - circumstances. - -@item Aug 20th, 2002: Remoting work, Resources, SPARC checkins, ADO.NET - - <b>San Francisco</b>: August 14th. Linux World Expo. - - Mark Crichton has checked in his patches to get the SPARC port - on par with the PPC port. - - Dick has checked-in the resource reader and resource writers - to the class libraries, and Dietmar checked in the C# support - code for the remoting infrastructure. - - More work on System.Data: the LibGDA (our OleDB backend) based - providers are quickly maturing, and recently they executed - their first query. - -@item Aug 13th, 2002: MCS news, Gtk# progress, Windows.Forms, ADO.NET - - Martin Baulig has been fixing all the known bugs in the C# - compiler and now has moved into improving the compilation - speed and the generated code quality of MCS. Today we got a - 50% speedup in the bootstrap of MCS going from 24 seconds to 12 seconds. - - Gtk# has been making a lot of progress, some interesting - corner cases are now supported:, you can now create canvas items as - well as using the tree widget. Here is a shot of <a - href="images/mocil.png">MonoCIL</a>. - - On the runtime front, focus has been on improving remoting - support, exception handling, as well as completing the support - for structure marshaling. - - Patrik is also back in action: the HttpRuntime infrastructure - is rapidly improving, and Gonzalo is working into moving XSP - into our main class library and providing the missing pieces - to integrate with Patrik's code. - - Dennis and his team are working on a WineLib-based - implementation of Windows Forms to guarantee that the corner - cases of Windows.Forms can be handled, and we are back on track again. - - A lot more work on the ADO.NET and WebServices has also been - checked into CVS. - -@item Aug 1st, 2002: Mono Hackers Hall of Fame - - The <a href="hackers.html">Mono Hackers Hall Of Fame</a> has been started - to show our appreciation to the excellent contributors that made <b>mono::</b> - a successful free software project. - - The first, deserved, entry goes to - Nick Drochak, who joined us in the first days of Mono and built the testing - infrastructure for the C# assemblies, fixed tons of bugs and even adventured - himself in the lands of the C runtime. His work is invaluable for keeping - Mono on the right track through the daily changes in the codebase. - -@item Looking for volunteers - - We are looking for volunteers to help complete various pieces - of Mono and help move the project forward, we need - contributions to: - - <ul> - * More tests to the existing class libraries. - - * Finish existing class libraries, check our <a - href="class-status.html">class status</a> pages to see - all the missing things. There are open tasks all over - the place: XML, Database access, enterprise services, - configuration, ASP.NET, Drawing APIs, and more. - - * Since we have now ASP.NET running, we would like to - create an ASP.NET application to maintain our class - library documentation. - - We have some special needs (read them <a - href="classlib-doc.html">here</a>). There is a - prototype written using Windows.Forms, but we believe - it will be faster to have this done using ASP.NET (and - it is also a nice way of stress testing it). - - * Support for the VB runtime: we need contributions - to make our VB runtime mature enough to host - applications compiled with the VB.NET to run with - Mono. - - * We need people to help write the documentation: you - can start editing our XML files by hand, and once we - have the ASP.NET tool, upgrade to that. - </ul> - -@item July 31st, 2002: Flow Analysis - - Martin has checked into CVS the data flow analysis patch for - MCS, this means that we now correctly implement definite - assignment in the C# language. - -@item Jul 31st, 2002: Most ASP.NET controls render, Gtk# structs. - - Gonzalo <a - href="http://lists.ximian.com/archives/public/mono-list/2002-August/001234.html">posted - an update</a> on the ASP.NET widgets that are still pending. Patrik is back, and he is - working with Gonzalo to streamline the pipeline - - Rachel quietly committed to Gtk-Sharp support for marshaling - structures (very important for Gtk#). This uses extensively - the new marshaling code that Dietmar added to the runtime. - - Dietmar is also now sharing more code for P/Invoke using his - intermediate representation. Another step to share more code, and - simplify the porting and maintenance process. - -@item Jul 27th, 2002: NGEN tool for Mono. - - Zoltan <a - href="http://lists.ximian.com/archives/public/mono-list/2002-July/001117.html">announced</a> - the availability of his CIL to C compiler. This allows your Mono assemblies to be pre-compiled - and optimized by GCC in your platform, increasing the speed significantly of your code. - -@item Jul 26th, 2002: Mono 0.13 has been released. - - <b>Mono 0.13 has been released!</b> (details <a - href="archive/mono-0.13">here</a>). Get - your sources for the <a - href="archive/mono-0.13.tar.gz">runtime</a> and - <a href="archive/mcs-0.13.tar.gz">compiler and class libraries</a>. - <p> - Alp made Debian packages and they are <a - href="http://www.atoker.com/mono/">here</a>. Cristophe made - packages for Red Hat and they are <a - href="http://mono.baselabs.org/software">here</a>. - And Windows packages have been <a href="http://www.superin.formativ.net/mono/mono.htm">contributed</a> - -@item Jul 23rd, 2002: Mono Verifier, System.Web.Services, ASP.NET samples. - - Mono now has a verifier. It is used by the runtime, or you can invoke it manually to - verify an image by using the `pedump' tool. - - Tim Coleman has started work on the System.Web.Services - assembly (you can also track the status here on the web page). - Contact him if you want to help in this assembly or with the - associated web service tools. - - Various samples for ASP.NET have landed in CVS. - -@item Jul 20th, 2002: Spanish Mono Tutorial. - - A Spanish tutorial on using Mono is <a - href="http://mono.es.gnome.org/tutoriales/mono-linux/">here</a>. - Also the <a - href="http://mono.es.gnome.org/tutoriales/mono-puf/">FAQ</a> - has been translated as well. - -@item Jul 19th, 2002: File handle redirection, Embeddable Mono and Mono Linux compilation. - - Dick's code for file handle redirection is complete and has - now landed on the CVS repository. - - The Mono runtime can now be embedded into your application - (also known as "CLR hosting"). See the sample in - mono/samples/embed. This allows your application to link with - the Mono runtime, then your C code can call into the C#/CIL - universe and back. - - Peter Williams and Martin contributed some Makefiles to - compile all of Mono on Linux. Details are <a - href="http://lists.ximian.com/archives/public/mono-list/2002-July/000916.html">here</a>. - -@item Jul 17th, 2002 - - The first documentary on Ximian's development team is now - available online, from young director <a - href="mailto:erik.pukinskis@uconn.edu">Erik Pukinskis</a>: <a - href="http://www.ximian.com/devzone/projects/codemonkey.html">"Code - Monkey At Work"</a>. - - A Tutorial on getting Mono installed from sources is now <a - href="http://www.go-mono.com/mono-beginning/x70.html">online</a>. - - More progress on the ASP.NET front: user defined controls are - now being rendered, as well as many of the sample programs - from www.asp.net. Gonzalo's work can be found on module XSP - (this implements the .aspx compiler). - - Sergey Chaban has got Gtk# working on Windows, you can see - some screenshots: <a href="sshots/Gtksharp-1.jpg">sample apps</a> and - <a href="sshots/Gtksharp-2.jpg">running with a Russian charset</a>. - -@item Jul 16th, 2002 - - Paolo today got mono to complete host itself on Linux. This - means that we can now compile the `corlib' using the Mono C# - compiler and the Mono runtime. - - Compiling the corlib was rather tricky, because the types that - the compiler uses during the compilation process will come - from the source code it is compiling. - - After a few months of work, we have finally fleshed out all - the remaining bugs. Now the next step is to update the makefiles - to compile with the Mono tool-chain. - - A recapitulation: - <ul> - * The Mono C# compiler was able to compile itself on December 28th, 2001. - The resulting image contained errors though. - - * The Mono C# compiler was able to self-compile in on - January 3rd, 2002. Becoming a self-hosting compiler on Windows. - - * The Mono runtime matured enough by March 12, 2002 that it - was able to bootstrap the Mono C# compiler on Linux using our interpreter. - This means that our development tool was self sufficient. - - * On March 26th, the JIT engine was fixed, so we could use this to - run the compiler on Linux. - - * Martin fixed the remaining bugs in the compiler that stopped it from - compiling the `corlib'. The resulting image still contained errors though. - - * On July 8th, Radek got the PowerPC port to bootstrap - the C# compiler. This is important, because it exposed - various tricky issues in a big-endian system. - - * Today: we can bootstrap the compiler using libraries - and the compiler compiled with itself on Linux. The process is complete. - </ul> - - In the meantime, Dietmar has quietly implemented the remaining - pieces of Marshalling in the Mono runtime. This is very - important for the Gtk# guys to move on with their bindings. - - To make things more interesting, he replaced most of the - architecture specific code generation for trampolines - (delegates, invocations, function and p/invoke trampolines) to - use CIL. This CIL is then compiled on the flight by the JIT - Compiler engine. By doing this, we have reduced the burden to - port the JITer to new architectures, and that our trampoline - code is cross platform. - -@item Jul 9th, 2002 - - Ajay was the first to notice <a - href="http://lists.ximian.com/archives/public/mono-list/2002-July/000641.html"> - Mono's first birthday</a>. - - In a year, we have achieved plenty: - <ul> - * 94 contributors with CVS access (84 non-Ximian developers). - * A complete CLI implementation: - <ul> - <li> A fast and performing x86 JIT engine (inlining, constant propagation). - <li> An interpreter for other systems (PPC, Sparc, StrongArm). - </ul> - * A self-hosting C# compiler, which can compile its class libraries. - * 37,140 file changes in CVS. - * 92,000 lines of C code. - * 437,000 lines of C# code (compiler, classes, tests) - * A working core for ASP.NET and ADO.NET. - * Major subsystems are functional: RegularExpressions, - System.XML, XML.Schema, System.Data, System.Web. - * The Gtk# project, which is maturing rapidly. - </ul> - - Thanks to everyone who has made Mono possible with their - feedback, regression tests, their comments, their help on the mailing - list, code contributions, complete classes, bug reporting, the - countless hours of bug hunting. This project would not have - been possible without every contribution. - - It has been a great year for everyone involved in the - project. I think we have built a new and exciting community. - - Now we have a solid foundation to build on, so this next year - looks even more exciting: not only because we will see more - Mono applications, but we will begin using Mono as an - `library' to be linked with applications that want to get - scripting-like features; Gtk# is our ticket to create nice - GNOME applications; And we will be developing CORBA bindings - to integrate with other object systems. - - Also, for those interested in optimizations and tuning, this - year we will get to play with more advanced optimizations and - all kinds of interesting research ideas for improving Mono - code generation. - - A special thanks to the Mono developers at Ximian for managing - to survive their manager and a special thanks to our - regression test marshal Nick Drochak, who has been hunting - down, and fixing code in our class libraries and keeping us on - track for so long. - -@item Jul 8th, 2002 - - Radek today fixed the last bugs to get Mono to self host on - Linux/PowerPC. - - Alp Toker has released version 0.5 of <a - href="http://www.atoker.com/phonic/">Phonic</a>, a media - player for .NET. Phonic makes extensive use of Mono-developed - technologies such as Gtk# and csvorbis (Ogg player ported by - Mark). Hopefully we will be seeing many more exciting - applications like these in the near future. - - Dietmar has been moving a lot of the architecture specific - code in the JIT engine to our internal representation. This - means that porting the JIT is simpler now, as there is less - architecture-specific code to maintain. The inliner, constant - folder and constant propagation are also done at the - architecture independent layer. - - Gonzalo is now running the sample ASP.NET applications on - Linux with the Mono runtime. It still needs polishing though, - and help with the various ASP.NET controls would be - appreciated. The ASP.NET community seems more poor than the - PHP community, we need to have a few open source controls to - do things dynamic rendering (libart+gdk-pixbuf again can do - most of the work), charts and components like the kind of - thing you see in the PHP universe: to bring nice GPL code to - the masses of Windows developers, lure them into the world of - Linux. - - Dick has also got us the new Process implementation that - implements the Win32 semantics. Now only redirection is - missing. - -@item Jul 3rd, 2002 - - Listen to Paolo Molaro do a talk on Mono at the WebIT - conference in Padova, Italy this coming friday. Details are - <a href="http://www.webbit2001.org/event/eventview/534/">here</a> - - You can also see a trip report from the Gnome in the South trip: - <a href="http://primates.ximian.com/~miguel/sur.html">here</a> - - Miguel will be doing a couple of talks at the O'Reilly - conference about Mono: status update, progress and developing - applications with it. Details are <a - href="http://conferences.oreillynet.com/cs/os2002/view/e_sess/2994">here</a> - and <a - href="http://conferences.oreillynet.com/cs/os2002/view/e_sess/2996">here</a> - -@item Jun 30, 2002 - - Martin Baulig fixed the remaining bugs that prevented MCS to - compile our corlib. The compilation was tricky because of the way - MCS bootstraps the compile (internally mcs uses the types that are - being defined at that point to perform compares). - - Martin and Paolo have been working hard on fixing the - remaining issues. Currently 102 test pass and 15 fail with - our resulting corlib. - - Jesus' SoapFormatter classes are now in CVS. - - I have been redoing the type lookup system for MCS. The - interesting bit is that I did most of this work on an airplane - using MCS itself. Which is a good test that the compiler is - now a good development tool. - - Duncan, Mike and Rachel have been hard at work with Gtk#, now - there are bindings for the GtkHTML widget (the one used by - Evolution's composer). And Rachel also got the beginning of GNOME - bindings, that should simplify application development. - - A big thanks goes to Dennis Hayes for getting the - Windows.Forms work together, and committing so many stubs for Windows.Forms. - -@item Jun 25, 2002 - - I am updating the Mono site from the UNESCO offices in - Uruguay, the <a href="http://www.gnome.org/resources/calendar/roadshow/GNOMEenelSur.html">South-America trip</a> - to promote free software is going very well. - - Many news in Mono-land this week so far: - - Mike Kestner got bindings for GtkHTML last night for Gtk#, - this is using GtkHTML 2.0. - - On Monday Piers Haken <a - href="http://lists.ximian.com/archives/public/mono-list/2002-June/000380.html">contributed</a> - the core to support XPath in Mono: most of the w3c spec is - implemented (modulo a few pending bits). - - Dick checked in his implementation of the Process classes: - process forking and waiting support committed, with some functions to - query status. This was complex as we had to emulate the Win32 - environment, but this is another step to be fully compatible. - This means for example that any process can check on the - status of any other process (without the parent/child relationship) - - Of course, those interested - in only the Unix semantics can always P/Invoke the Unix calls. - -@item Jun 24, 2002 - - - Duncan has written a few sample <a - href="http://primates.ximian.com/~duncan/Mono">Gtk# demo - applications</a> (<a - href="http://primates.ximian.com/~duncan/Mono/img/ImageViewer.png">screen - shot</a>, <a - href="http://primates.ximian.com/~duncan/Mono/img/ImageBrowser.png">another</a>) - - Rachel also got the beginning of Gnome bindings (<a - href="http://primates.ximian.com/~tvgm/gnome-hello.png">screenshot</a>). - She also got some <a - href="http://primates.ximian.com/~tvgm/gtk-sharp-docs/">documentation</a> - up now. - -@item Jun 22, 2002 - - Mono's ASP.NET has rendered its first page on Linux for the - first time (Gonzalo and Paolo). - - Also, we are getting close to - self hosting. Paolo posted a <a - href="http://lists.ximian.com/archives/public/mono-list/2002-June/000345.html">list - of pending issues</a> which are now very small. - - Steam is picking up in <a - href="http://gtk-sharp.sf.net">Gtk#</a> as the bindings become more - complete and small applications are starting to emerge. Gtk# - now compiles completely on Linux. This uses a lot of the XML - libraries, which is nice to see. - -@item Jun 20, 2002 - - Gonzalo has got the Mono ASP.NET implementation can now render all Html - Controls, and 21 out of the 26 Web Controls. Session tracking is - next. Look in xsp/test for a collection of tests that render with Mono. - - Ajay has been very busy improving and extending the - XmlSerialization code. All fields had to be re-ordered to - match the Microsoft implementation. - -@item Jun 19, 2002 - - You can now download a fresh tarball of the libraries and the MCS - compiler daily from <a href="http://www.atoker.com/mono/">Alp Toker's - website</a>. - - New libgc RPMS for Redhat 7.3 are available on <a href=" - http://java.thn.htu.se/~toor/">Richard Torkar's site</a>. - -@item Jun 10, 2002 - - Ajay <a - href="http://lists.ximian.com/archives/public/mono-list/2002-June/000128.html">announced</a> - today that the reading code for XmlSchemas is almost complete. - -@item Jun 7, 2002 - - <b>Mono 0.12 is out!</b> More classes! More working code! - Better compiler! Faster runtime! Less bugs! - - You can get it <a - href="download.html#jun-7">Here</a> (quick links: <a - href="archive/mono-0.12.tar.gz">runtime</a> and <a - href="archive/mcs-0.12.tar.gz">compiler/classes</a>). - -@item Jun 3rd, 2002 - - CodeDOM implementation from Daniel Stodden has got C# output support. - -@item May 31, 2002 - - Gonzalo got the Mono XSP page parser to render its first ASP.NET - .aspx file today without using MS System.Web.Hosting classes. - It is currently on its infancy. But very good news, now we need to - upgrade our System.Web runtime to run natively on Linux. - - Sergey's code for architecture and size-specific CPBLK has - been checked into CVS. - - Paolo has checked the configuration code for Mono (to map - PInvoke dlls to other libraries). - - <a href="ado-net.html">ADO support</a>: Daniel has checked in - a modified version of the MySQL data provider from Brad. And Rodrigo - started the OleDB using LibGDA. - -@item May 27, 2002 - - An <a href="index.rss">RSS feed</a> is now available for the - Mono news. I find it surprising that there are so many tools - that process this data. - - Binaries for <a href="http://www.superin.formativ.net/mono/mono.htm">Windows</a> are - now location independent, do not require Cygwin and come with a Wizard. - -@item May 26, 2002 - - Daniel Morgan checked in his Sql# Cli tool into the - System.Data class library. - -@item May 24, 2002 - - Ajay <a - href="http://lists.ximian.com/archives/public/mono-patches/2002-May/003953.html">has - checked in</a> a major update to the System.Xml.Schema namespace. - - Gonzalo moved XSP along this week: Added support for - templates, columns inside DataGrid, HTML comments, code render - and data binding tags, style properties in style tags, - ListItem inside list controls, float and double properties. - -@item May 22, 2002 - - <a href="http://monologo.sourceforge.net/">MonoLogo</a> runs - on the Mono runtime. This <a - href="http://monologo.sourceforge.net/gtk.png">screenshot</a> shows - MonoLogo running Gtk#. - -@item May 21, 2002 - - Martin has improved the debugging infrastructure in Mono, now - it is possible to get <a - href="http://lists.ximian.com/archives/public/mono-list/2002-May/005717.html">line - number</a> information on stack traces. - -@item May 20, 2002 - - XSP <a href="asp-net">our ASP.NET</a> .aspx page parser is now - available on the AnonCVS servers. This is part of the ASP.NET - support in Mono. Gonzalo is the developer on charge of it. - - Many updates to the <a href="ado-net.html">ADO.NET - implementation</a> from Dan, Tim and Rodrigo. - - Radek got the Mono C# compiler running on Linux/PPC and - compiling most of our regression test suite. - - Lawrence has been working really hard in fixing, improving and - polishing the underlying network infrastructure. - - The Rafael and Chris have committed the beginning of the - VisualBasic.NET runtime support to CVS. - - Jesus has contributed the beginning of the SoapFormatter - -@item May 9, 2002 - - Linear register allocator has been deployed in the Mono JIT - engine. Read <a - href="http://lists.ximian.com/archives/public/mono-list/2002-May/005489.html">about - it</a> - -@item May 5, 2002 - - We are able to retrieve simple data from the database - using our ADO.NET like functionality. Only string and integer data - types are supported right now but more are in the works. - - You can find more information - at <a href="http://www.go-mono.com/ado-net.html">The Mono ADO-NET Page</a> - - Thanks goes to Chris, Daniel, Duncan, Gonzalo, Miguel, Rodrigo, Tim, - and others for these bits. - -@item May 4th, 2002 - - Rodrigo Moya announced <a - href="http://lists.ximian.com/archives/public/mono-list/2002-May/005366.html">new - LibGDA</a>: LibGDA is an ADO-like library for Unix systems. - This one removes all the CORBA and GConf dependencies, which - should make it easier to use and compile. - - This is another milestone for our <a - href="ado-net.html">ADO.NET implementation plans</a> - - We have a little surprise for everyone tracking the news on Tuesday ;-) - -@item May 2nd, 2002 - - Mark Crichton csvorbis port (C# port of Vorbis player) and - Richard Hestilow's <a href="http://monologo.sf.net">MonoLogo compiler</a> are now - on the CVS, and you can get them from AnonCVS. - - Dick implemented inter-process sharing of handles as well as - simplifying the implementation of WaitForMultipleObjects, now - we have a `handles' subsystem in Mono. This is needed to fully - emulate the handle behavior that Win32 exposes, and that the .NET API - expose to applications. - - News from the <a - href="http://gtk-sharp.sourceforge.net">Gtk#</a> front: <a - href="http://gtk-sharp.sourceforge.net/menu.png">Menu - support</a>, Mike <a - href="http://lists.ximian.com/archives/public/gtk-sharp-list/2002-May/000064.html">tells - the story</a> - -@item May 1st, 2002 - - Daily packages for <a href="http://www.debian.org">Debian</a> are available - <a href="http://www.atoker.com/mono/">here</a> - -@item Apr 26, 2002 - - Binary packages of Mono 0.11 are available for <a - href="http://www.superin.formativ.net/mono/mono.htm">Windows</a> - (Thanks to Johannes Roith) and for - <a - href="http://mono.baselabs.org/index.php/software/">Linux</a> (thanks - to BaseLabs). - -@item Apr 24, 2002 - - <b>Mono 0.11 is out!</b> Mostly performance improvements, bug - fixes and more classes are included. - - A new version of the runtime, compiler and class libraries has - been packaged for your download pleasure. Binaries are - included. The <a href="archive/mono-0.11">Release Notes</a> - are available. - - You can get it <a - href="download.html#apr-24">Here</a> (quick links: <a - href="archive/mono-0.11.tar.gz">runtime</a> and <a - href="archive/mcs-0.11.tar.gz">compiler/classes</a>). - -@item Apr 23, 2002 - - SharpDevelop 0.88a <a href="http://www.icsharpcode.net/OpenSource/SD">is out!</a> - - Congratulations to the developers behind SharpDevelop for - their new release. - -@item Apr 20, 2002 - - Some updates from the hacking lines: - - <b>The web:</b> Patrik Torstensson last week contributed the - http runtime support and started work on thread pools. This - is part of the ASP.NET support. - - <b>Docs:</b> John Barnette, John Sohn and Adam Treat have been - hacking on MonoDoc. - - <b>ADO.NET:</b> Daniel Morgan and Rodrigo Moya have been - working on the <a href="ado-net">ADO.NET</a> support, and got - the first signs of life this week (we can connect, insert - rows; do transactions: commit/rollback; SQL errors and - exceptions work). Check <a - href="mailing-lists.html">mono-patches</a> for all the - goodies. - - <b>Optimizations:</b> A number of optimizations in the runtime - made the compiler twice as fast this week: - - Early this week Patrik started the string - rewrite in the runtime. Today Dietmar finished the - constructors and deployed the new layout. - - Paolo got the JIT engine to generate profiles, which were in - turn used to find hot spots in Reflection, which he improved. - - Daniel Lewis (of Regex fame) noticed the performance issues - with our current array layout, and contributed a new array - representation. - - At the same time Dietmar started the the JIT inline code and - implemented constant propagation. These two optimizations - together are very powerful. - - <b>Bug fixing:</b> And of course everyone has been helping out - with the bug fixing (Duncan, Gonzalo, Jonathan, Miguel, Nick, - Ravi, Sergey) - - -@item Apr 18, 2002 - - Dietmar's inlining for the JIT engine just landed into - CVS. This is only a first cut and more improvements will come later. - - Patrik, Paolo, Dietmar and Gonzalo have been busy optimizing - our class libraries and runtime engine to become faster. Many changes - on CVS as well. - -@item Apr 11, 2002 - - Gtk# 0.1 "ButtonHook" has been <a - href="http://lists.ximian.com/archives/public/gtk-sharp-list/2002-April/000048.html">released</a> - - Binaries for the Mono Regression Test Suite are <a - href="archive/mono-tests.tar.gz">available</a> for - people porting the Mono Runtime to new platforms. - -@item Apr 6, 2002 - - <a href="http://www.dotnetremoting.cc/book/AdvancedDotNetRemoting.asp"> - Advanced .NET Remoting</a> from Ingo Rammer is now available. Ingo - helped us to implement the proxy support and the book is a valuable - resource for anyone interested in remoting. - -@item Apr 5, 2002 - - Transparent proxy support has been finished, congrats to - Dietmar. Our JIT engine on CVS contains the implementation. - This should enable people to test the remoting framework on - Mono. - -@item Mar 28, 2002 - - Debugging information is now generated by the compiler thanks - to Martin's work. The resulting dwarf file can be used to - single step C# code in GDB. A document will be shortly published with - the details. - -@item Mar 27, 2002 - - <b>Mono 0.10 is out!</b> The self hosting release of Mono has - been released. - - A new version of the runtime, compiler and class libraries has - been packaged for your download pleasure. Binaries are - included. The <a href="archive/mono-0.10">Release Notes</a> - are available. - - You can get it <a - href="download.html#mar-27">Here</a> (quick links: <a - href="archive/mono-0.10.tar.gz">runtime</a> and <a - href="archive/mcs-0.10.tar.gz">compiler/classes</a>). - -@item Mar 26, 2002 - - Paolo finally fixed the last bug in the JITer that stopped - us from using it to run the Mono C# compiler. Goodies are on - CVS. - - <a href="http://gtk-sharp.sourceforge.net">Gtk#</a> runs <a - href="http://gtk-sharp.sourceforge.net/gtk-hello-world.png">Hello - World</a>. Mike posted some <a - href="http://lists.ximian.com/archives/public/gtk-sharp-list/2002-March/000034.html">details.</a> - - -@item Mar 19, 2002 - - Martin has been working on our debugging infrastructure, both - on the JIT side of things (adding dward support) as well as on - the class libraries (so that MCS can start generating - debugging information). - - Jason and Kral keep working on the System.Xml namespace, - allowing Mike to move more to self-hosting his Gtk# code. - - The System.Web classes are now part of the build (and they are - also part of the class status now). Ajay contributed a large - chunk of code to the System.Xml.Schema namespace - - Dan (of regex fame) has been working on internal calls - support: moving more code from the old monowrapper to become - internal calls. - - Paolo and Dietmar are working steadily on our runtime - environment, fixing bugs, adding missing features and allowing - us to run the compiler on Linux. - - Remember to post your bug reports. - - The nice class status on the right is brought to you by - endless hacking hours from Piers and Nick. These status - report pages have been helping us track down various mistakes - in our classes (very useful, check it out for yourself) - -@item Mar 12, 2002 - - At midnight, in Italy, Paolo got the Mono C# compiler to self - host on Linux, the last bug has been squashed to self - hostingness. We have now a fully self hosting compiler in Linux. - - A release will follow up shortly. - -@item Mar 9, 2002 - - Updated the <a href="class-status.html">class status</a>, now - it is possible to use the right-side menu to browse a specific - assembly. - -@item Mar 7, 2002 - - MCS compiles on Linux! - - Today Paolo got the <a - href="http://lists.ximian.com/archives/public/mono-list/2002-March/003726.html">MCS - compiler compiling itself on Linux</a> - completely for the first time! The resulting image still contains - some errors, but the whole compiler process goes now. Later in the day - and a couple of small optimizations and bug fixes, the compile - speed was improved in 400% - - We are very close to have a complete self hosting environment now. - - Mono is temporarily using the Bohem GC garbage collector while - we deploy the more advanced ORP one. - -@item Mar 5, 2002 - - The CVS repository <a href="http://cvs.hispalinux.es/cgi-bin/cvsweb/?hidenonreadable=1&f=u&logsort=date&sortby=file&hideattic=1&cvsroot=Mono">can be browsed</a> - - Jason has got an incredible amount of work on the Xml - classes during the weekend, and Gaurav is very close to have - the complete System.Web.UI.WebControls namespace implemented. - - Martin and Duco have been killing bugs by using the recently - revamped regression test suite. - - Piers has updated our <a href="class-status.html">class - status</a> page again, with even more information available. - - The C# compiler has full constant folding implemented now and Ravi - killed bugs of bugs in the <a href="http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FClass+Libraries&product=Mono%2FMCS&product=Mono%2FRuntime&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&order=%27Importance%27&form_name=query">Mono Bug List</a> - -@item Mar 1, 2002 - - RPMs of Mono 0.9 are available at <a href="http://mono.baselabs.org/#download">mono.baselabs.com</a> - -@item Feb 28, 2002 - - <a - href="http://lists.ximian.com/archives/public/mono-list/2002-February/003464.html">Christophe</a> - has setup his <a href="http://mono.baselabs.org">First Steps in Mono</a> web site, which - shows you a step-by-step process on getting Mono running on your system. - - RPMs of Mono 0.9 are available at <a href="http://mono.baselabs.org/index.php/software/">mono.baselabs.org</a> - -@item Feb 27, 2002 - - New <a href="class-status.html">class status</a> engine that - provides detailed information about missing functionality in - our class libraries. Nick built the cormissing tool and Piers - did the XSLT and DHTML magic. - - More compiler progress on Linux: our support runtime now - enables the compiler to compile `MIS' on Linux (MIS being - Dick's Mono sample HTTP server ;-) - -@item Feb 26, 2002 - - Paolo posted a list of <a - href="http://lists.ximian.com/archives/public/mono-list/2002-February/003266.html">ways - you can help</a> if you do not have Windows right now. Sergey followed up with - <a href="http://lists.ximian.com/archives/public/mono-list/2002-February/003268.html">his</a> - suggestions. - -@item Feb 25, 2002 - - StrongARM port from Sergey Chaban has been checked into CVS. - -@item Feb 24, 2002 - - SPARC: 44 out of 74 tests pass now (Jeff) - - Power PC: delegates are working now (Radek) - -@item Feb 22, 2002 - - <b>Mono 0.9 has been released!</b> - - A new version of the runtime, compiler and class libraries has - been packaged for your download pleasure. The <a - href="archive/mono-0.9">Release Notes</a> - - You can get it <a - href="download.html#feb-22">Here</a> (quick links: <a - href="archive/mono-0.9.tar.gz">runtime</a> and <a - href="archive/mcs-0.9.tar.gz">compiler/classes</a>). - -@item Feb 21, 2002 - - Paolo got our compiler natively to compile 117 of our tests. - Self hosting is closer every day. - - Unsafe support is finished in the C# compiler. - -@item Feb 20, 2002 - - Gaurav got DataGrid and DataGridItemCollection done. - - C# compiler: Unsafe support is mostly complete (only stackalloc is missing). - - New easy to run scripts for compiling Mono on Unix and Windows - is <a href="download.html">available</a>. We can now easily compile - Mono on Windows and Linux. If you had trouble before, use the - above scripts which will get the setup right for you. - - There are now three machines that can provide AnonCVS, just - use anoncvs.go-mono.com as the hostname for your CVSROOT and - you will get one of the machines. - -@item Feb 19, 2002 - - Do you want to see what <a href="http://people.debian.org/~lupus/mono/">Mono Looks Like?</a> - -@item Feb 18, 2002 - - Application Domains now support the two LoaderOptimization - modes: share code or do not share code, and you can control - this with the --share-code command line option. - - Paolo has now 100+ test cases run on Linux now with our class - libraries. - - PowerPC and SPARC ports are moving along (Radek and Jeff) - -@item Feb 13, 2002 - - Excellent news since the 11th, here is a quick rundown: - - AppDomains have been deployed (Dietmar). Socket work is done - (Dick). Corlib compiled with no refs to mscorlib (Dan). New - comprehensive tests for corlib bits (David). Nick is driving the - regression test suite efforts and class library completeness. - New System.Data work (Chris). Bug fixes (Paolo, Duncan, Ravi, Miguel) - - Miguel is off to the <a - href="http://www.fosdem.org">FOSDEM</a> conference in Brussels. - -@item Feb 11, 2002 - - <b>Mono 0.8 has been released!</b> - - A new version of the runtime, compiler and class libraries has - been packaged for your download pleasure. - - You can get it <a - href="download.html#feb-11">Here</a> (quick links: <a - href="archive/mono-0.8.tar.gz">runtime</a> and <a - href="archive/mcs-0.8.tar.gz">compiler/classes</a>) - -@item Feb 11, 2002 - - We would like to welcome all the new developers that have - joined the project in the last couple of days. The classes - are rapidly moving. - - An explanation of the relationship between <a - href="http://mail.gnome.org/archives/gnome-hackers/2002-February/msg00031.html">GNOME - and Mono</a>. - - Nick is still leading our test suite platform. I can not - stress how important it is to have a good regression test suite - for our platform, as buggy class libraries are what are - stopping the compiler from running completely on Linux. - - We are of course psyched to see Mono run on - non-Linux systems. Work is moving on native code generation - for StrongARM, PowerPC, and SPARC as well as porting Mono to - other systems. - - There are a couple of debates on the Mono list on implementing - a set of web server classes for <a - href="http://lists.ximian.com/archives/public/mono-list/2002-February/002911.html">enabling - ASP.NET</a> on Mono. - - Paolo also <a - href="http://lists.ximian.com/archives/public/mono-list/2002-February/002944.html"> - posted a list of pending tasks</a> to enable the compiler to run on Linux - -@item Feb 10, 2002 - - Mike Kestner has posted an <a - href="http://lists.ximian.com/archives/public/gtk-sharp-list/2002-February/000024.html">Update - on his Gtk#</a> activities. - -@item Feb 4, 2002 - - Adam has done <a - href="http://lists.ximian.com/archives/public/mono-list/2002-February/002808.html">Qt - bindings</a> for .NET. Adam is cool. - -@item Jan 29, 2002 - - Dan Lewis has contributed a major missing set of classes to - Mono: <a - href="http://lists.ximian.com/archives/public/mono-list/2002-January/002745.html"> - System.Text.RegularExpressions</a>. - - This is a fully .NET compatible implementation of the .NET regular expressions, - fully Unicode aware. This contribution is very appreciated, as implementing this - was not entirely trivial (supporting Unicode, plus a regex engine which is a super - set of the Perl regex engine). - -@item Jan 28, 2002 - - The Mono contributors have relicensed the Class Libraries under - the terms of the - <a href="http://www.opensource.org/licenses/mit-license.html">MIT X11</a> license. - - This license is an Open Source license, and is used by other projects - (most notably, the XFree86 project). - - The runtime (JIT, metadata library, interpreter) remains under - the LGPL and the C# compiler remains under the GPL. - - Our <a - href="http://www.ximian.com/about_us/press_center/press_releases/mono_partners.html">Press - Release</a> - - Press coverage: <a - href="http://news.com.com/2100-1001-823734.html">CNet</a>, <a - href="http://www.wired.com/news/technology/0,1282,50037-2,00.html">Wired</a>, - <a href="http://www.infoworld.com/articles/hn/xml/02/01/28/020128hnopennet.xml">InfoWorld</a>, - <a href="http://www.newsforge.com/article.pl?sid=02/01/27/2232231">NewsForge</a>. - -@item Jan 23, 2002 - - New mailing list: <a href="mailto:mono-patches-request@ximian.com">mono-patches@ximian.com</a>. - This mailing list will receive automatically the patches that are submitted - to the Mono CVS to any of its modules. - - This allows anyone who wants to participate in the peer-review of the - code submitted to CVS to receive patches on e-mail. It should also - expose to everyone the changes that are being done by the team every day. - -@item Jan 21, 2002 - - Dick has got a simple web server running with Mono (`MIS: Mono - Internet Server') that is mostly used to test our IO layer, a - <a href="http://primates.ximian.com/~miguel/dick-mis-server.png">screenshot</a> - - Paolo and Dietmar are busy making our runtime self sufficient on - non-Windows platforms. - - C# compiler front: A lot of focus in the past weeks after - the C# became self hosting has been in making the compiler a useful - tool for development: improve error handling, provide better error - reports, fixing all known bugs, and finally profiling of the compiler - has begun. - -@item Jan 8, 2002 - - Our compiler has been self-supporting since January 3rd. In - the meantime, we have been busy working on making it run on - Linux. Today Paolo got more work done on Reflection.Emit and - the compiler compiled `console.cs' (a sample Mono program) on - Linux. - -@item Jan 4, 2002 - - Dietmar landed the Unicode support patch. Class libraries and - runtimes are now fully Unicode aware. The details are <a href= - "http://lists.ximian.com/archives/public/mono-list/2002-January/002409.html"> - here</a> - - Last minute breaking news: Paolo got our compiler in Linux to - compile fib.cs, patches are coming tomorrow once we have - ChangeLog entries. - -@item Jan 4, 2002 - - Mike Kestner posted an update on Gtk# <a - href="http://lists.ximian.com/archives/public/gtk-sharp-list/2002-January/000021.html"><i>New - year, new direction</i></a>. - - Gtk# will be our foundation on which we will be implementing - System.Windows.Forms. - -@item Jan 3, 2002 - - Mono C# compiler becomes self-sufficient. We can now continue - development of the compiler with itself. - - Work on the class libraries is still underway for having a full - self hosting system. We hope to achieve our goal of self-hosting - on Linux before the end of the month. - - Join the fun by downloading either tonight's <a - href="snapshots">snapshot</a> or getting your sources from our - <a href="anoncvs.html">Anonymous CVS server</a>. - -@item Dec 28, 2001 - - After a lot of work, the C# compiler can compile itself. - There are still errors in the generated image, but they are - being fixed quickly. - - We will soon have the first non-Microsoft C# implementation! - -@item Dec 18, 2001 - - JIT: More work on our IO abstraction layer (Dick). - - JIT: exception handling for unmanaged code (Dietmar) - - System.Reflection: Support for PropertyInfo and - PropertyBuilder as well as the various queries for MethodBase. - - C#: Pre-processor; Rewrite of MemberLookup which fixed many of - the outstanding issues. More bug fixing allows it to compile - more programs. - -@item Dec 14, 2001 - - Dietmar has improved the register allocation and now Mono performs - two to three times as fast as it did yesterday. Amazing. - - The compiler keeps moving along, explicit interface - implementation is there. - -@item Dec 11, 2001 - - The JIT engine can now run all the compiler regression tests as - well as assorted other programs, many more opcodes added - recently. Currently the JIT engine uses a very simplistic register - allocator (just enough to allow us to focus on feature completeness) - and that will be the next major task to improve performance and - reduce spills and reloads. - - On the C# compiler front: language features are now pretty - much complete. The big missing tasks are unsafe code support, - visibility, explicit interface implementation plus static flow - analysis. There are many small bugs that need to be addressed. - - You can get your copy of the <a href="snapshots">latest Mono</a> - - More work is also required on fixing the foundation class - libraries, it is easy to find spots now since Nick got the - `make test' going. - -@item Dec 1, 2001 - - AnonCVS access to Mono is here (updated every hour). Thanks - to <a href="http://www.hispalinux.es">HispaLinux</a> and Jesus - Climent for helping to set this up. - -@item Nov 30, 2001 - - All tests from the mono runtime work with the JIT engine now - (Dietmar). - - Recursive enumeration definition in the C# compiler are - working now (Ravi). - - More work on the Web classes (Gaurav). - -@item Nov 28, 2001 - - JIT land: Paolo got GDB support into the JIT engine while - Dietmar added exceptions support to it. - - The C# compiler supports all array initializations now, and the - switch statement as well as fixing many existing bugs. Many - new more tests. - - Nick keeps working on improving our class library test suite. - - Dick has almost completed the Mono IO layer. - -@item Nov 16, 2001 - -<blockquote> - Mike Kestner has posted an <a - href="http://lists.ximian.com/archives/public/gtk-sharp-list/2001-November/000015.html">update</a> - on Gtk# development. -</blockquote> - -@item Nov 14, 2001 - -<blockquote> - Paolo today got the Mono C# compiler running <a - href="http://lists.ximian.com/archives/public/mono-list/2001-November/001941.html">on - Linux</a>. It compiles a sample program and then the sample - program is executed. - - Mutator unary operators (++ and --) in the compiler are fully - functional, they used to only work on variables, and now they - are complete. - - To sum things up: The Mono C# compiler is written in C# and - uses the .NET classes to get its work done. To make this work - on Linux work has to happen in various fronts: -<ul> - * The C# compiler is being worked on and can compile - many programs now (our test suite at this point is - made up of 40 tests). - - * The class libraries need to be mature enough to support - the compiler, particularly System.Reflection.Emit (which is - what Paolo has been working on lately). - - The compiler currently requires 103 classes from the - .NET runtime (you can get the list by running: <b>monodis --typeref mcs.exe</b> - - * The interpreter should be mature enough to run the actual - compiler byte codes and the corlib bytecodes. -</ul> - - At the same time, Dietmar is working on the JIT engine which will - replace our interpreter in production. -</blockquote> - -@item Nov 12, 2001 - -<blockquote> - Dietmar got value types working on the JIT engine. Sean has - got assembly loading in the runtime (required for NUnit). - - More progress on enumerations and attributes from Ravi. - - Nick keeps working on improving our class libraries. -</blockquote> - -@item Nov 8, 2001 - -<blockquote> - Enumerations, array access and attributes for the C# compiler are into the CVS now. - - Full array support is not complete, but moving along. -</blockquote> - -@item Nov 5, 2001 - -<blockquote> - Dietmar's new set of patches to the JIT have 20 out of 33 - tests running now. -</blockquote> - -@item Nov 4, 2001 - -<blockquote> - Mike Kestner, main Gtk# contributor has posted a very interesting <a - href="http://lists.ximian.com/archives/public/gtk-sharp-list/2001-November/000013.html"> - update</a> on his work on Gtk#. - - Ravi committed the initial support for Attributes in the - compiler. - - Many HTML Controls from Leen checked into CVS. - - Paolo checked in his new System.Reflection and - System.Reflection.Emit implementations. He has been working - steadily on this huge task for a few weeks now. This is the - foundation for the Mono C# compiler, and hence a very - important piece of the puzzle. -</blockquote> - -@item Nov 3, 2001 - -<blockquote> - Many clean ups have been going into the class library by Nick Drochak. - - Mega patch from Dietmar: he committed the flow analysis code - for the JITer. - - A lot of work has been going into the WebControls by Gaurav (4 - new controls plus improved and bug fixed base classes). -</blockquote> - -@item Nov 1, 2001 - -<blockquote> - Ravi committed the caller-side method selection of methods with - variable length arguments. Now he depends on Miguel finishing - the array handling support. -</blockquote> - -@item Oct 27, 2001 - -<blockquote> - Lots of classes for System.Web from Gaurav were committed this - morning. - - Some large recent developments: - - The Decimal implementation from Martin Weindel has been - partially integrated (we need to put the internalcalls in - place now and compile and link the decimal code). - - Derek Holden committed recently the IntegerFormatter code into - the CVS, so we got a pretty comprehensive integer formatting - engine that we can finally use all over the place. - - Compiler got support for lock as well as assorted bug fixes. - Ravi is still working on array support (and then we can - optimize foreach for the array case). - - Dietmar is busy working on flow analysis on the JITer, the - previous mechanism of generating the forest was wrong. Paolo - has been a busy bee reworking the System.Reflection.Emit - support code, and we should have some pretty nice stuff next - week. Dick on the other hand is still working on the - WaitOne/WaitAll emulation code. WaitAll is like select on - steroids: it can wait for different kinds of objects: files, - mutexes, events and a couple of others. - - Mike Kestner is busy working on Gtk# which is now using the - .defs files to quickly wrap the API. -</blockquote> - -@item Oct 18, 2001 - -<blockquote> - Reworking expressions to support cleanly indexers and - properties. <a href="http://www.nat.org/evolution.php3">11 - days</a> until Evolution 1.0 ships. - - Ximian users around the world <!--a - href="http://www.bez.it/IMAGES/nora.jpg"-->rejoice<!--/a--> with - recent C# compiler progress. -</blockquote> - -@item Oct 17, 2001 - -<blockquote> - Delegate support has been checked into the compiler - (definition and invocation); break/continue implemented. -</blockquote> - -@item Oct 15, 2001 - -<blockquote> - JIT engine supports many of the object constructs now (object - creation, vtable setup, interface table setup). - - The C# compiler now has almost full property support (only - missing bit are pre-post increment/decrement operations), - delegates are now created (still missing delegate invocation). - try/catch/finally is also supported in the compiler now. - - System.Decimal implementation is in, as well as many crypto - classes. -</blockquote> - -@item Oct 5, 2001 - -<blockquote> - Sergey has released his first version of the <b>ilasm</b> - assembler written in C#. You can get it from his web page: - <a - href="http://mono.eurosoft.od.ua">http://mono.eurosoft.od.ua</a>. - - The plan is to integrate ildasm into the Mono CVS soon. This - component should in theory also be reusable for SharpDevelop - eventually. -</blockquote> - -@item Oct 4, 2001 - -<blockquote> - Our System.Reflection.Emit implementation created its first - executable today. This means that a very simple .NET program - that was compiled on Windows was able to generate a .NET program - while running on Linux using the Mono runtime. - - The various piece of the puzzle are starting to get together: - the compiler can compile simple programs now and we are - basically focusing on completeness now. -</blockquote> - -@item Sep 28, 2001 - -<blockquote> - <a - href="http://www.icsharpcode.net/OpenSource/SD/default.asp">Sharp - Develop 0.80</a> was released today. -</blockquote> - -@item Sep 26, 2001 - -<blockquote> - More progress: more opcodes are working (Paolo); The compiler - runs up to a point in Mint (Paolo); operator overloading works - (both unary and binary) all over the place (Miguel); Completed decimal - type conversions (Miguel); New build system in place based on - Ant (Sean and Sergey); Refactored and documented the - internals of the JIT engine (Dietmar); StatementExpressions - handled correctly (Miguel). -</blockquote> - -@item Sep 21, 2001 - -<blockquote> - A couple of news-worthy items: Dick got the initial thread - support into mint; Paolo implemented many new opcodes; Dietmar - got long operations and mul/div working on the JITer; Ravi rewrote - the Method selector for expressions to be conformant; Miguel - got i++ working. All in tonight's snapshot -</blockquote> - -@item Sep 19, 2001 - -<blockquote> - Paolo has written a section on <a href="porting.html">Porting - Mono</a> to other architectures. -</blockquote> - -@item Sep 18, 2001 - -<blockquote> - <A a href="download.html#sep-18">Mono 0.7</a> has been - released (runtime engine, class libraries - and C# compiler). Check the <a href="archive/mono-0.7">Mono - 0.7 announcement</a> for details -</blockquote> - -@item Sep 17, 2001 - -<blockquote> - Mike Kestner's Gtk# (Gtk-sharp) was checked into the CVS - repository. Gtk# can run a simple hello world application. - The binding is nice, as it maps Gtk+ signals to delegates in - C#. You can see the Gtk# Hello World program <a href="src/HelloWorld.cs">here</a> - - Gtk-sharp should be available on the next snapshot set. -</blockquote> - -@item Sep 10, 2001 - -<blockquote> - Dietmar checked in his CIL tree/forest regeneration and most - importantly, the x86 instruction selector burg grammar. -</blockquote> - - -@item Sep 5, 2001 - -<blockquote> - The MCS compiler <b>can compile the sample Hello World</b> - application and generate a Windows/CIL executable that runs! - - This executable runs with the Mono Interpreter of course (see - August 28) -</blockquote> - -@item Sep 4, 2001 - -<blockquote> - Dietmar checked into CVS the `monoburg' architecture - independent instruction selector for the JIT engine. -</blockquote> - -@item Aug 28, 2001 - -<blockquote> - <b>.NET Hello World is working under Mono!</b> The latest snapshots - will let you run it. - - Hello World consists of 1821 CIL instructions, - performs 66 subroutine calls and loads 12 classes from the corlib.dll - - Good work Mono team! -</blockquote> - -@item Aug 23, 2001 - -<blockquote> - Lloyd Dupont has announced his OpenGL bindings for C#, they - are available here: <a - href="http://csgl.sourceforge.net">http://csgl.sourceforge.net</a> -</blockquote> - -@item Aug 22, 2001 - -<blockquote> - New version of the Mono Runtime, Compiler and Classes has been - <a - href="download.html#august-22">released.</a> Check the <a - href="archive/mono-0.6">0.6 announcement</a>. -</blockquote> - -@item Aug 20, 2001 - -<blockquote> - A new <a href="contributing.html#compile-service">Compilation - service</a> has been made available by Derek to allow people - without access to the <a - href="http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/000/976/msdncompositedoc.xml&frame=true">.NET SDK</a> -</blockquote> - -@item Aug 3, 2001 - -<blockquote> - Daily snapshots of mcs and mono are now available, they will - run every night at 10pm Boston time. -</blockquote> - -@item Jul 29, 2001 - -<blockquote> - Mono Runtime 0.5 has been <a - href="download.html#july-29">released.</a> Check the <a - href="archive/mono-0.5">release notes</a> -</blockquote> - -@item Jul 25, 2001 - -<blockquote> - The slides for <A href="Presentations/O-Reilly">my - presentation</a> at <a href="http://www.oreilly.com">O'Reilly - Open Source Software Convention</a> -</blockquote> - -@item Jul 22, 2001 - -<blockquote> - Another release of the class libraries is out, check the <a - href="archive/mcs-22">MCS 22-July Release Notes</a>. You can - get the new class libraries from <a - href="download.html#july-22">here</a> -</blockquote> - -@item Jul 19, 2001 - -<blockquote> - Another release of the class libraries is out, check the <a - href="archive/mcs-19">MCS 19-July Release Notes</a>. You can - get the new class libraries from <a - href="download.html#july-19">here</a> -</blockquote> - -@item Jul 17, 2001 - -<blockquote> - Another release of the class libraries is out, check the <a - href="archive/mcs-17">MCS 17-July Release Notes</a>. You can - get the new class libraries from <a - href="download.html#july-17">here</a> - - Do not forget to check out the updated <a href="faq.html">FAQ</a>. - - Got Sean's new Class - Status web pages up. These are a lot better than mine, and - we are now keeping better track of contributors. -</blockquote> - -@item Jul 15, 2001 - -<blockquote> - Another release of Mono is out, check the <a - href="archive/mono-0.4">Mono 0.4 Release Notes</a>. Get it <a - href="download.html#july-15">here</a>. -</blockquote> - -@item Jul 14, 2001 - -<blockquote> - A <a - href="http://lists.ximian.com/archives/public/mono-list/2001-July/000399.html">new - release</a> of the - runtime, compiler and classes has been made. Get it <a href="download.html#july-14">here</a> -</blockquote> - -@item Jul 12, 2001 - -<blockquote> - I keep getting questions about my opinion on Passport, even when - Mono has <b>nothing</b> to do with it. I finally <a - href="passport.html">wrote something.</a> -</blockquote> - -@item Jul 9, 2001 - -<blockquote> - Project launched. -</blockquote> - -@item O'Reilly - -<blockquote> - Brian posted a story on <a - href="http://www.oreillynet.com/dotnet">O'Reilly Network .NET</a> -</blockquote> diff --git a/doc/oledb b/doc/oledb deleted file mode 100755 index 1dabe6244ed..00000000000 --- a/doc/oledb +++ /dev/null @@ -1,153 +0,0 @@ -* OLE DB Provider - -<ul> - <li> Provides a OleDb-like provider for Mono - using <a href="http://www.gnome-db.org/">GDA</a> as the data access layer.</li> - - <li> Exists in namespace System.Data.OleDb and assembly System.Data</li> - - <li>Created by Rodrigo Moya</li> - - <li>LibGDA has providers for:</li> - <ul> - <li><a href="http://www.mysql.com/">MySQL</a></li> - <li><a href="http://www.postgresql.org/">PostgreSQL</a></li> - <li>XML</li> - <li>ODBC (via <a href="http://www.unixodbc.org/">unixODBC</a>)</li> - <li><a href="http://www.oracle.com/">Oracle</a></li> - <li><a href="http://www.borland.com/products/downloads/download_interbase.html">Interbase</a></li> - <li><a href="http://www.sybase.com/downloads">Sybase</a> and - <a href="http://www.microsoft.com/sql/default.asp">Microsoft SQL Server</a> ( - via <a href="http://www.freetds.org/">FreeTDS</a>)</li> - <li><a href="http://www-3.ibm.com/software/data/db2/">IBM DB2 Universal Database</a></li> - <li><a href="http://www.hwaci.com/sw/sqlite/download.html">SQL Lite</a></li> - <li><a href="http://www.microsoft.com/office/access/default.asp">MS Access</a></li> - (via <a href="http://mdbtools.sourceforge.net/">MDB Tools</a>)</li> - </ul> - </li> - - <li>Does not support trusted connections</li> - - <li>Bugs with Mono or the data provider should be reported - in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you - do not have Bugzilla user account, it is free - and easy to - create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> - - -</ul> - -** Current Status - <ul> - <li>The OleDb provider is working with libgda (an OLE-DB/ADO data access for Unix). - The C-Sharp bindings to libgda currently work - meaning they can compile, run, - and you can connect to a - PostgreSQL database via libgda via the C-Sharp bindings to libgda.</li> - - <li>Basic - functionality (execution of commands, data retrieval, transactions, etc) are - now working.</li> - - <li>An inital implementation of GetSchemaTable() for - the OleDbDataReader has been checked into cvs. GetSchemaTable() isn't correct for OleDb, - but the foundation is there.</li> - </ul> - -** Action Plan - <ul> - <li>Current focus is on filling up the missing pieces (Data adapters - mainly) and schema support.</li> - - <li>We need help building libgda on Windows though. libgda - builds find on linux though.</li> - - <li>Need to make the OleDb provider compatible with the OleDb provider in Microsoft .NET</li> - </ul> - -** Testing OleDb with libgda's PostgreSQL provider - -<ul> - <li>Requires a working mono and mcs</li> - <li>Requires Linux because the OleDb provider uses libgda and libgda only - works on Linux.</li> - <li>Connection String format: "Provider=providerName;...". providerName is the - name of the Provider you use, such as, PostgreSQL, MySQL, etc. The elipsis ... - means that the connection parameters are dependent upon the provider being used and - are passed to libgda for connecting. Such paramters, can be: Database, User ID, Password, - Server, etc...</li> - <li>See the test TestOleDb.cs found at mcs/class/System.Data/System.Data.OleDb</li> - <li>C# Example for Mono's System.Data.OleDb: -<pre> - using System; - using System.Data; - using System.Data.OleDb; - - public class Test - { - public static void Main(string[] args) - { - // there is a libgda PostgreSQL provider - string connectionString = - "Provider=PostgreSQL;" + - "Addr=127.0.0.1;" + - "Database=test;" + - "User ID=postgres;" + - "Password=fun2db"; - IDbConnection dbcon; - dbcon = new OleDbConnection(connectionString); - dbcon.Open(); - IDbCommand dbcmd = dbcon.CreateCommand(); - // requires a table to be created named employee - // with columns firstname and lastname - // such as, - // CREATE TABLE employee ( - // firstname varchar(32), - // lastname varchar(32)); - string sql = - "SELECT firstname, lastname " + - "FROM employee"; - dbcmd.CommandText = sql; - IDataReader reader = dbcmd.ExecuteReader(); - while(reader.Read()) { - string FirstName = (string) reader["firstname"]; - string LastName = (string) reader["lastname"]; - Console.WriteLine("Name: " + - FirstName + " " + LastName); - } - // clean up - reader.Close(); - reader = null; - dbcmd.Dispose(); - dbcmd = null; - dbcon.Close(); - dbcon = null; - } - } -</pre> - </li> - <li>Building C# Example: - <ul> - <li>Save the example to a file, such as, TestExample.cs</li> - <li>Build on Linux: -<pre> - mcs TestExample.cs -r System.Data.dll -</pre> - </li> - <li>Build on Windows via Cygwin: -<pre> - mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \ - TestExample.cs \ - -lib:C:/cygwin/home/MyHome/mono/install/lib \ - -r System.Data.dll -</pre> - </li> - </ul> - </li> - <li>Running the Example: -<pre> -mono TestExample.exe -</pre> -</li> - -</ul> - diff --git a/doc/oracle b/doc/oracle deleted file mode 100755 index 28d81bee4eb..00000000000 --- a/doc/oracle +++ /dev/null @@ -1,166 +0,0 @@ -* Oracle Data Provider - -<ul> - - <li>ADO.NET Data Provider for <a href="http://www.oracle.com/">Oracle</a> databases</li> - - <li>Exists in namespace System.Data.OracleClient and assembly System.Data.OracleClient</li> - - <li>Works on Windows and Linux</li> - - <li>Works with Oracle 8i and 9i.</li> - - <li>Uses the Oracle CLI (Call Level Interface) which is a C library (API) for the Oracle Client - software</li> - - <li>Internally, the OracleClient provider has OCI abstracted to an object-oriented programming model</li> - - <li>Created by Daniel Morgan and Tim Coleman</li> - - <li>Bugs with Mono or the data provider should be reported - in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you - do not have Bugzilla user account, it is free - and easy to - create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> - -</ul> - -** Current Status - -<ul> - <li>OracleConnection can connect and disconnect to an Oracle 8i or 9i database on - Windows and Linux via OCI (Oracle Call-level Interface)</li> - - <li>Can have multiple connections with different transactions where each transaction is - separated from the others, so a rollback or commit in one transaction - does not affect the other.</li> - - <li>Can execute simple DML SQL statements, such as, - INSERT a row into the EMP table via the OracleCommand's ExecuteNonQuery method</li> - - <li>Can retrieve data via ExecuteReader and OracleDataReader. Currently, - supports character, numeric, some date data types. ExecuteScalar - also works.</li> - - <li>Simple input parameters (character and numeric data) can now - be used in SQL queries. Output parameters do not yet work.</li> - - <li>OracleException and Error handling exists now.</li> - - <li>Message handling needs to be added for non-critical messages - received from Oracle</li> - - <li>Handling of various data types need to be added.</li> - - <li>Data Adapter exists, and a DataSet can be filled using it.</li> - - <li>Lots of missing functionality and bugs.</li> - - <li>Works with SQL# command-line and GTK# GUI versions.</li> - -</ul> - -** Action Plan - -<ul> - <li>Be able to retrieve results via a data reader (WORKING)</li> - <li>Parameters support (IN PROGRESS)</li> - <li>transactions (WORKING)</li> - <li>Stored Procedures, Functions, and Packages support</li> - <li>Be able to fill a DataTable in a DataSet via a data adapter (IN PROGRESS)</li> - <li>Support for Oracle 8i and 9i (WORKING)</li> - <li>Support LOBs</li> - <li>Support all the data types</li> - <li>Implement Connection pooling</li> - <li>Security</li> - <li>Once Oracle 10g is released, make sure Mono works with Oracle 10g.</li> - -</ul> - -** Testing System.Data.OracleClient - -<ul> - <li>Have a working mono and mcs</li> - - <li>Have access to an Oracle 8i or 9i database or download it from - <a href="http://www.oracle.com/">Oracle</a>. If you are connecting - remotely to an Oracle database, you need the Oracle client software. - Registration to the <a href="http://technet.oracle.com/">Oracle Technology Network</a> is free. If installing on Linux, - I suggest you do a lot of searching to see how others installed Oracle on Linux.</li> - - <li>Make sure System.Data.OracleClient.dll assembly is built.</li> - - <li>Take a look at TestOracleClient.cs found at mcs/class/System.Data.OracleClient/Test</li> - - <li>The Data Source is an Oracle TNSNAME</li> - - <li>Has a connection string format: -<pre> -"Data Source=tnsname;User ID=userid;Password=password" -</pre> - </li> - <li>C# Example: -<pre> - using System; - using System.Data; - using System.Data.OracleClient; - - public class Test - { - public static void Main (string[] args) - { - string connectionString = - "Data Source=testdb;" + - "User ID=scott;" + - "Password=tiger;"; - OracleConnection dbcon = null; - dbcon = new OracleConnection (connectionString); - dbcon.Open (); - OracleCommand dbcmd = dbcon.CreateCommand (); - string sql = "SELECT ename, job FROM scott.emp"; - dbcmd.CommandText = sql; - OracleDataReader reader = dbcmd.ExecuteReader (); - while (reader.Read ()) { - string employeeName = (string) reader["ename"]; - string job = (string) reader["job"]; - Console.WriteLine ("Employee Name: {0} Job: {1}", - employeeName, job); - } - // clean up - reader.Close (); - reader = null; - dbcmd.CommandText = sql; - dbcmd.ExecuteNonQuery (); - dbcmd.Dispose (); - dbcmd = null; - dbcon.Close (); - dbcon = null; - } - } -</pre> - </li> - <li>Building C# Example: - <ul> - <li>Save the example to a file, such as, TestExample.cs</li> - <li>Build on Linux: -<pre> - mcs TestExample.cs -r System.Data.dll \ - -r System.Data.OracleClient.dll -</pre> - </li> - <li>Build on Windows: -<pre> - mcs TestExample.cs /r:System.Data.dll \ - /r:System.Data.OracleClient.dll -</pre> - </li> - </ul> - </li> - <li>Running the Example: -<pre> -mono TestExample.exe -</pre> - </li> - -</ul> - diff --git a/doc/other b/doc/other deleted file mode 100644 index 0c259caea7b..00000000000 --- a/doc/other +++ /dev/null @@ -1,36 +0,0 @@ -* International sites - - <ul> - - <li><a href="http://www.monohispano.org">Mono - Hispano</a>: The spanish-speaking community of Mono - developers and users. They have quite a number of - unique documents and tutorials. - - <li><a href="http://www.go-mono.pl">Mono Poland</a>: - Mono site for polish users. - - <li><a href="http://primates.ximian.com/~atsushi/mono-jp/">Mono Japanese Translation</a>: - Mono site Japanese translation pages. Translated sources are maintained at <a href="http://forge.novell.com/modules/xfmod/project/?mono-jp">Novell Forge</a>. - </ul> - -* User sites - - <ul> - - <li>Alp Toker's <a - href="http://www.atoker.com/mono/">site</a>: He is an - active Mono developer (gsirc, platano) and produces - very nice Debian packages of Mono. - - <li>Brian Ritchie's <a - href="http://www12.brinkster.com/brianr/">site</a>: - Brian is a contributor to Mono's class library (ODBC - provider and the database multiplexing assembly), and - has built an application server for .NET and Mono. - His site contains news, software, as well as his - weblog. - - </ul> - - diff --git a/doc/papers b/doc/papers deleted file mode 100644 index 162f79d1637..00000000000 --- a/doc/papers +++ /dev/null @@ -1,101 +0,0 @@ -* JIT Compiler - - <a - href="http://citeseer.nj.nec.com/vitek97efficient.html"> - Efficient Type Inclusion Tests: Jahn Vitek, R. Nigel Horspool, Andres - Krall</a> - - <a - href="http://citeseer.nj.nec.com/cytron91efficiently.html"> - Efficiently Computing Static Single Assignment Form and the Control - Dependence Graph: Ron Cytron, Jeanne Ferrante</a> - - <a - href="http://citeseer.nj.nec.com/193349.html"> - Practical Improvements to the Construction and Destruction of Static Single Assignment Form: Preston Briggs, - Keith Cooper, Timothy Harvey, Taylor Simpson</a> - - <a - href="http://citeseer.nj.nec.com/krall98efficient.html"> - Efficient JavaVM Just-in-Time Compilation: Andreas Krall</a> - - <a - href="http://citeseer.nj.nec.com/452617.html">Java for - Large-Scale Scientific Computations: Andreas Krall, Phillip Thomsich</a> - - <a - href="http://citeseer.nj.nec.com/117522.html"> - Engineering Simple, Efficient Code Generator Generator: Christopher - W. Fraser, David R. Hanson, Todd A. Proebsting</a> - - <a - href="http://citeseer.nj.nec.com/proebsting92code.html"> - Code Generation Techniques: Todd Alan Proebsting</a> - - <a - href="http://citeseer.nj.nec.com/74629.html">Fast, - Effective Code Generation in a Just-In-Time Java Compiler: Ali-Reza - Adl-Tabatabai Guei-Yuan Lueh, Vishesh M. Parikh, James M. Stichnoth...</a> - - <a - href="http://citeseer.nj.nec.com/bodik00abcd.html"> - ABCD: Eliminating Array-Bounds Checks on Demand: Rastislav Bodik, Rajiv Gupta, Vivek Sarkar</a> - -* Register Allocation - - <a - href="http://citeseer.nj.nec.com/poletto99linear.html"> - Linear Scan Register Allocation: Massimiliano Poletto, Vivek Sarkar</a> - - <a - href="http://citeseer.nj.nec.com/traub98quality.html"> - Quality and Speed in Linear-scan Register Allocation: Omri Traub, Glenn - Holloway, Michael D. Smith</a> - -* Loop Transformations - - <a - href="http://citeseer.nj.nec.com/bacon93compiler.html"> - Compiler Transformations for High-Performance Computing: David Bacon</a> - -* Interpreter - - <a - href="http://citeseer.nj.nec.com/470069.html"> - vmgen-A Generator of Efficient Virtual Machine Interpreters: M. Anton - Ertl, David Gregg, Andreas Krall, Bernd Paysan</a> - -* Synchronization - - <a - href="http://citeseer.nj.nec.com/krall98monitors.html"> - Monitors and Exceptions - How to implement Java efficiently: Andreas Krall, - Mark Probst</a> - - <a - href="http://citeseer.nj.nec.com/bacon98thin.html"> - Thin Locks: Featherweight Synchronization for Java: David Bacon</a> - - <a - href="http://citeseer.nj.nec.com/278639.html"> - Featherweight Monitors with Bacon Bits: David Bacon</a> - -* Garbage Collection - - <a - href="http://citeseer.nj.nec.com/wilson92uniprocessor.html"> - Uniprocessor Garbage Collection Techniques: Paul Wilson</a> - - <a - href="http://citeseer.nj.nec.com/41666.html"> - A Language-Independent Garbage Collector Toolkit: Richard Hudson, Eliot Moss, Amer Diwan, Christopher Weight</a> - - <a - href="http://citeseer.nj.nec.com/seligmann95incremental.html"> - Incremental Collection of Mature Objects: Richard Hudson, Eliot Moss</a> - -* Threads - - <a - href="http://research.microsoft.com/~birrell/papers/ThreadsCSharp.pdf"> - Programming with Threads in C#: Andrew Birrell</a> diff --git a/doc/passport b/doc/passport deleted file mode 100644 index 3ffe0dfeef9..00000000000 --- a/doc/passport +++ /dev/null @@ -1,298 +0,0 @@ -* Updates - - <b>Sep 20, 2001:</b> Microsoft has just announced some changes - to passport that are rather interesting. This document - reflects the Passport system without taking into account the - new changes. - - Read about it <a href="http://www.microsoft.com/presspass/features/2001/sep01/09-20passport.asp">here</a>. - - For an analysis of security problems with passport, check <a - href="http://avirubin.com/passport.html">http://avirubin.com/passport.html</a>. - The bottom line is that you should not put any sensitive - information on passport. - - I have received many comments from people, and I have updated - the page accordingly. From removing incorrect statements, to - fixing typos, to include mentions to other software pieces. - - I also corrected my statement about IIS and a trojan horse, I - should read a more educated press in the future. My apologies - to Microsoft and its employees on this particular topic. IIS - did not have a trojan horse built in. - -* Microsoft Hailstorm and Passport - - Microsoft Passport is a centralized database hosted by - Microsoft that enhances the consumer experience with the Web - by providing a single logon system that they can use across a - number of participant web sites. - - As you might know by now from our extensive <a - href="faq.html">FAQ</a>, the Mono project has nothing to do - with Microsoft Hailstorm or <a - href="http://www.passport.com">Microsoft Passport.</a> - - Still a lot of people have asked us our opinion on them. - -** Passport - - Passport is important not because of it being a breakthrough - technologically speaking, but because the company is in a - position to drive most people toward being suscribers of it. - - At the time of this writing passport is required to use the - free mail service <a href="http://www.hotmail.com">Hotmail</a> - to get customized support for the <a - href="http://www.msn.com">MSN portal</a>, <a - href="http://msdn.microsoft.com">Microsoft Developers - Network</a> and according to the original announcement from - Microsoft <a href="http://www.americanexpress.com">American - Express</a> and <a href="http://www.ebay.com">EBay</a> will be - adopting it. - - There is already a <a - href="http://www.passport.com/Directory/Default.asp?PPDir=C&lc=1033">Large - list</a> of participating sites. - - There are many current users of it and Microsoft will be - driving more users towards Passport as it <a - href="http://news.cnet.com/news/0-1003-200-6343275.html">integrates - it</a> in their upcoming release of Windows. - - Microsoft has also <a - href="http://www.passport.com/Business/JoinPassportNetwork.asp?lc=1033">developed - a toolkit</a> to enable current web merchants to integrate - their services with passport. - - To the end user, there is a clear benefit: they only have to - log into a single network and not remember multiple passwords - across sites on the internet. Companies that adopt passport - will have a competition advantage over those that dont. - Microsoft lists a list of <a - href="http://www.passport.com/Business/Default.asp?lc=1033">benefits</a> - to companies. - - -** The problems of Passport - - There are a number of concerns that different groups have over - Passport. Sometimes I have some, sometimes I do not. But - overall, consumers and businesses can have better solutions. - - <ul> - * <b>Single Point of Failure:</b> As more services and - components depend on remote servers, functionality can - grind to a halt if there is a failure on the - centralized Passport system. - - Such a failure was predicted, and we recently <a - href="http://news.cnet.com/news/0-1005-200-6473003.html">witnessed</a> - got a lot of people worried. - - The outgage lasted for seven days. Think what this - could do to your business. - - * <b>Trust:</b> Not everyone trusts Microsoft to keep - their information confidential. Concerns are not only - at the corporate level policy, but also the fact that - the source code for Microsoft products is not - available, means that trojans or worms could be built - into the products by malicious engineers. - - Various government officials in non-US countries also - have a policy that no state sensitive information can - be held by foreign companies in foreign soil. A natural - matter of national security to some. - - * <b>Security:</b> With a centralized system like - Passport, imagine the repercussions of a malicious - hacker gaining access to the Passport database. - Personal information and credit card information about - almost everyone using a computer could be stored there. - - Hackers have already <a - href="http://slashdot.org/articles/00/10/27/1147248.shtml">broken - into Microsoft</a> in the past. And the company was - unable to figure out for how long their systems had - been hacked. - - Security holes have been found in <a - href="http://slashdot.org/articles/00/04/14/0619206.shtml">IIS - in the past.</a> If all the world's data is stored on - a central location, when a single security hole is - detected, it would allow an intruder to install a - backdoor within seconds into the corporate network - without people ever noticing. - - Microsoft itself has been recently hit by worms, - imagine if all your business depended on a single - provider for providing all or your authentication - needs - </ul> - - Microsoft might or might not realize this. The idea behind - Passport is indeed a good one (I can start to get rid of my - file that keeps track of the 30 logins and passwords or so - that I use across the various services on the net myself). - -** Alternatives to Microsoft Passport - - An alternative to Microsoft Passport needs to take the above - problems into consideration. Any solution of the form `We - will just have a competing offering' will not work. - - The system thus has to be: - - <ul> - * <b>Distributed:</b> The entire authentication - system should not create an internet `blackout' in the - case of failure. - - A distributed system using different software - platforms and different vendors would be more - resistent to an attack, as holes in a particular - implementation of the server software would not affect - every person at the same time. - - A security hole attack might not even be relevant to - other software vendors software. - - * <b>Allow for multiple registrars:</b> Users should - be able to choose a registrar (their banks, local - phone company, service provider, Swiss bank, or any - other entity they trust. - - * <b>Mandate good security measures:</b> As a - principle, only Open Source software should be used - for servers in the registrar, and they should conform - to a standard set of tools and software that can be - examined by third parties. - </ul> - - An implementation of this protocol could use the DNS or a - DNS-like setup to distribute the information of users with the - possibility of replicating and caching public information - about the user. - - For instant messaging (another piece of the Hailstorm bit), - you want to use a non-centralized system like Sun's <a - href="http://www.jxta.org">JXTA</a>. Some people mailed me to - mention Jabber as a messaging platform and other people - pointed out to the <a - href="http://java.sun.com/products/jms/">Java Message - Service</a>. The JMS does support a number of very - interesting features that are worth researching. - - It could also just use the user e-mail address as the `key' to - choose the registrar (msn.com, hotmail.com -> passport.com; - aol.com -> aol.passport.com; you get the idea). - - The <a - href="http://www.soapware.org/xmlStorageSystem">xmlStorage</a> - idea from <a href="http://www.scripting.com">Dave Winer</a> - could be used to store the information. - - A toolkit for various popular web servers could be provided, - authenticated and should be open sourced (for those of you who - think that a binary program would give more security and would - prevent people from tampering: you are wrong. You can always - use a proxy system that "behaves" like the binary, and passes - information back and forth from the real program, and snoops - in-transit information). - - Good cryptographers need to be involved in this problem to - figure out the details and the possible insecure pieces of a - proposal like this. - -** Implementation: In short - - To keep it short: <b>DNS, JXTA, xmlStorage.</b> - - -** Deploying it - - The implementation of such a system should be a pretty - straightforward task once security cryptographers have - designed such a beast. - - The major problems are: - - <ul> - * <b>People might just not care:</b> In a poll to US - citizens a couple of decades ago, it was found that - most people did not care about the rights they were - given by the Bill of Rights, which lead to a number of - laws to be passed in the US that eliminated most of - the rights people had. - - * <b>The industry will move way too slow:</b> - Microsoft's implementation is out in the open now: it - is being deployed, and soon it will be insinuated to - many, many users. The industry needs to get together - soon if they care about this issue. - - By the time the industry reacts, it might be too - late. - </ul> - -** Passport and Mono - - The .NET class libraries include a Passport class that - applications might use to authenticate with Passport. Since - we do not have information at this point on the exact protocol - of Passport, it is not even feasible to implement it. - - If at some point the information is disclosed, it could be - implemented. - - If a competing system to Passport existed, we could probably - hide all the authentication information to use a number of - different passport-like systems. - - If a user does not want to use Passport at all, he could - always turn it off (or completely remove the class from the - library). After all, this is free software. - - Currently, we are too far from the point where this is a real - issue. - -** Passport and endangering Open Source. - - A few people have said: `Mono will allow Passport to be - available for Linux and that is bad'. This is plain - misinformation. - - Currently, you can obtain Passport for Linux from Microsoft - itself and deploy it today on your Web server. Mono does not - even enter the picture here. Go to passport.com and download - the toolkit and you will see with your own eyes that passport - is <B>already</b> available for Linux. - -** Disclaimer - - This is just a group of personal thoughts of mine that I have - placed here because I get asked this question a lot lately. - The views of this page are not a statement from my employer - (Ximian, Inc). - - This is not part of Mono. We are not trying to deal with this - problem. - - Nat Friedman (Ximian's co-founder) has his own ideas on how a - competing system to Passport could be designed, but I will let - <a href="http://www.nat.org/">him</a> post his own story. - -** Other Passport Comments - - An interesting study on the security of passport is available at: <a - href="http://avirubin.com/passport.html">http://avirubin.com/passport.html</a> - -** Other Alternatives - - Some people have pointed out <a - href="http://www.xns.org">XNS</a> - -Send comments to me: Miguel de Icaza (<a - href="mailto:miguel@ximian.com">miguel@ximian.com</a>) - diff --git a/doc/pending b/doc/pending deleted file mode 100644 index e243a10dedf..00000000000 --- a/doc/pending +++ /dev/null @@ -1,14 +0,0 @@ -** Microsoft and GNU and Linux. - -Q: Does this mean that Microsoft is better than Linux? - -A: Many of us are working on <a - href="http://www.gnu.org/philosophy/free-sw.html">free software<a> - and want to have an <a href="http://www.opensource.org">open - source</a> environment that we can change, modify, improve, learn - from, and share with others. Some of us also think that this will - lead on the long run to better software: more efficient, faster, - more robust and more. - - We are willing to take good ideas from any source they come from. - diff --git a/doc/performance b/doc/performance deleted file mode 100644 index 15d0a837f5d..00000000000 --- a/doc/performance +++ /dev/null @@ -1,209 +0,0 @@ -* Writing better performing .NET and Mono applications - -<center> -Miguel de Icaza (miguel@novell.com)<br> -Ben Maurer (bmaurer@users.sourceforge.net) -</center> - - The following document contains a few hints on how to improve - the performance of your Mono/.NET applications. - - These are just guidelines, and you should still profile your - code to find the actual performance problems in your - application. It is never a smart idea to make a change with the - hopes of improving the performance of your code without first - measuring. In general, these guidelines should serve as ideas - to help you figure out `how can I make this method run faster'. - - It is up to you to figure out, `Which method is running slowly.' - -** Using the Mono profiler - - So, how does one measure what method are running slowly? A profiler - helps with this task. Mono includes a profiler that is built - into the runtime system. You can invoke this profiler on your program - by running with the --profile flag. - -<pre class="shell"> - mono --profile program.exe -</pre> - - The above will instruct Mono to instrument your application - for profiling. The default Mono profiler will record the time - spent on a routine, the number of times the routine called, - the memory consumed by each method broken down by invoker, and - the total amount of memory consumed. - - It does this by asking the JIT to insert a call to the profiler - every time a method is entered or left. The profiler times the - amount of time elapsed between the beginning and the end of the - call. The profiler is also notified of allocations. - - When the program has finished executing, the profiler prints the - data in human readable format. It looks like: - -<pre class="shell"> -Total time spent compiling 227 methods (sec): 0.07154 -Slowest method to compile (sec): 0.01893: System.Console::.cctor() -Time(ms) Count P/call(ms) Method name -######################## - 91.681 1 91.681 .DebugOne::Main() - Callers (with count) that contribute at least for 1%: - 1 100 % .DebugOne::Main(object,intptr,intptr) -... -Total number of calls: 3741 -... -Allocation profiler -Total mem Method -######################## - 406 KB .DebugOne::Main() - 406 KB 1000 System.Int32[] - Callers (with count) that contribute at least for 1%: - 1 100 % .DebugOne::Main(object,intptr,intptr) -Total memory allocated: 448 KB -</pre> - - At the top, it shows each method that is called. The data is sorted - by the total time that the program spent within the method. Then - it shows how many times the method was called, and the average time - per call. - - Below this, it shows the top callers of the method. This is very useful - data. If you find, for example, that the method Data::Computate () takes - a very long time to run, you can look to see if any of the calls can be - avoided. - - Two warnings must be given about the method data. First, - the profiler has an overhead associated with it. As such, - a high number of calls to a method may show up as consuming - lots of time, when in reality they do not consume much time - at all. If you see a method that has a very high number of - calls, you may be able to ignore it. However, do consider - removing calls if possible, as that will sometimes help - performance. This problem is often seen with the use - of built in collection types. - - Secondly, due to the nature of the profiler, recursive calls - have extremely large times (because the profiler double counts - when the method calls itself). One easy way to see this problem - is that if a method is shown as taking more time than the Main - method, it is very likely recursive, and causing this problem. - - Below the method data, allocation data is shown. This shows - how much memory each method allocates. The number beside - the method is the total amount of memory. Below that, it - is broken down into types. Then, the caller data is given. This - data is again useful when you want to figure out how to eliminate calls. - - You might want to keep a close eye on the memory consumption - and on the method invocation counts. A lot of the - performance gains in MCS for example came from reducing its - memory usage, as opposed to changes in the execution path. - -** Memory Management in the .NET/Mono world. - - Since Mono and .NET offer automatic garbage collection, the - programmer is freed from having to track and dispose the - objects it consumes (except for IDispose-like classes). This - is a great productivity gain, but if you create thousands of - objects, that will make the garbage collector do more work, - and it might slow down your application. - - Remember, each time you allocate an object, the GC is forced - to find space for the object. Each object has an 8 byte overhead - (4 to tell what type it is, then 4 for a sync block). If - the GC finds that it is running out of room, it will scan every - object for pointers, looking for unreferenced objects. If you allocate - extra objects, the GC then must take the effort to free the objects. - - Mono uses the Boehm GC, which is a conservative collector, - and this might lead to some memory fragmentation and unlike - generational GC systems, it has to scan the entire allocated - memory pool. - -*** Boxing - The .NET framework provides a rich hierarchy of object types. - Each object not only has value information, but also type - information associated with it. This type information makes - many types of programs easier to write. It also has a cost - associated with it. The type information takes up space. - - In order to reduce the cost of type information, almost every - Object Oriented language has the concept of `primitives'. - They usually map to types such as integers and booleans. These - types do not have any type information associated with them. - - However, the language also must be able to treat primitives - as first class datums -- in the class with objects. Languages - handle this issue in different ways. Some choose to make a - special class for each primitive, and force the user to do an - operation such as: -<pre class="shell"> -// This is Java -list.add (new Integer (1)); -System.out.println (list.get (1).intValue ()); -</pre> - - The C# design team was not satisfied with this type - of construct. They added a notion of `boxing' to the language. - - Boxing preforms the same thing as Java's <code>new Integer (1)</code>. - The user is not forced to write the extra code. However, - behind the scenes the <em>same thing</em> is being done - by the runtime. Each time a primitive is cast to an object, - a new object is allocated. - - You must be careful when casting a primitive to an object. - Note that because it is an implicit conversion, you will - not see it in your code. For example, boxing is happening here: - -<pre class="shell"> -ArrayList foo = new ArrayList (); -foo.Add (1); -</pre> - - In high performance code, this operation can be very costly. - -*** Using structs instead of classes for small objects - - For small objects, you might want to consider using value - types (structs) instead of object (classes). - - However, you must be careful that you do not use the struct - as an object, in that case it will actually be more costly. - - As a rule of thumb, only use structs if you have a small - number of fields (totaling less than 32 bytes), and - need to pass the item `by value'. You should not box the object. - -*** Assisting the Garbage Collector - - Although the Garbage Collector will do the right thing in - terms of releasing and finalizing objects on time, you can - assist the garbage collector by clearing the fields that - points to objects. This means that some objects might be - eligible for collection earlier than they would, this can help - reduce the memory consumption and reduce the work that the GC - has to do. - -** Common problems with <tt>foreach</tt> - - The <tt>foreach</tt> C# statement handles various kinds of - different constructs (about seven different code patterns are - generated). Typically foreach generates more efficient code - than loops constructed manually, and also ensures that objects - which implement IDispose are properly released. - - But foreach sometimes might generate code that under stress - performs badly. Foreach performs badly when its used in tight - loops, and its use leads to the creation of many enumerators. - Although technically obtaining an enumerator for some objects - like ArrayList is more efficient than using the ArrayList - indexer, the pressure introduced due to the extra memory - requirements and the demands on the garbage collector make it - more inefficient. - - There is no straight-forward rule on when to use foreach, and - when to use a manual loop. The best thing to do is to always - use foreach, and only when profile shows a problem, replace - foreach with for loops. diff --git a/doc/plans b/doc/plans deleted file mode 100755 index f53aecd4e95..00000000000 --- a/doc/plans +++ /dev/null @@ -1,15 +0,0 @@ -* Plans - - Here we are tracking some plans to particular pieces of - technology that are part of Mono. - - This is just a repository of information that is handy for - contributors. - - Currently you can read our plans for <a - href="ado-net.html">ADO.NET</a>, <a - href="asp-net.html">ASP.NET</a>, <a href="java.html">Java</a> and - <a href="winforms.html">WinForms</a>. - - - diff --git a/doc/porting b/doc/porting deleted file mode 100644 index a09ab69deaa..00000000000 --- a/doc/porting +++ /dev/null @@ -1,63 +0,0 @@ -* How to port Mono to your preferred architecture - -** Endian, 64 bits and unaligned access issues - - The first thing to do is to check that the metadata handling - library works on your target processor. You may use the disassembler - on simple programs and check that you get sensible results - (assuming it compiles at all on your system:-). - - The main issue is to write macros that read unaligned - little endian shorts/ints/longs/float/doubles: look into - mono/metadata/endian.h. There may be other spots in the code that are - unsafe at reading/writing to some datatypes that require special - alignment, but there should be few such issues and they need to be fixed. - - Once this stuff is sorted out, you should be able to run the interpreter - on simple programs that don't require delegates, P/Invoke functions etc.. - -** Generating assembly bytecodes for the target processor - - Next, you need to provide the support code for generating assembly bytecode - for your target platform (in mono/arch/{ppc,sparc,alpha,*}). - The code should be more or less like the code in x86-codegen.h: - macros that produce fast in-line code. You don't need to provide - code to create every possible code, at first, just the code to - create trampolines and execute them is fine (you'll need to research - how the call convention works on your platform): that would be, for - example, the prolog and epilog code in a function, code to pass function - parameters and deal with the return value and so on. - - libffi in gcc or the xptcall sources in mozilla may be helpful to - understand how the calling convention works, if you can't find a specification. - You'd need a processor manual to know how to create the assembly binary data. - This requires a lot of reading if you're not familiar with the assembly for your - target platform. Manuals for many processors are available as PDF files on the - web site of the respective vendors. Note that some processors require you to - flush the I-cache before executing the code: have a look at how the same thing is - done in GNU lightning. - -** Getting the interpreter to work - - Once you can generate binary code, you can start working on a - mono_create_trampoline() function for your platform: this function will receive - a MonoMethod that describes the arguments and the return type of a C function - and will create the code to call such function. When this function is complete - you'll be able to run more sample programs, that use System.IO, P/Invoke - functions etc. - - To support delegates you'll need to write a mono_create_method_pointer() - function that creates a native function: this can be used to call the - method using the runtime's calling convention (it's basically the reverse - of mono_create_trampoline()). - -** The final step: porting the JIT - - At this point you'd need to have a more complete code generation header file - and you can start writing the machine description file for the monoburg - system. This code (jit/tesjit.c) will require some machine specific tweaks, - but hopefully all you have to do is create the grammar that emit assembly - code from the IR tree. Work is at the early stages also for x86 on this stuff - as we are still testing various solutions: you'd want to read about burg-like - code-generator generators (the LCC book is a good starting point). - diff --git a/doc/postgresql b/doc/postgresql deleted file mode 100644 index cbe6c2f87d8..00000000000 --- a/doc/postgresql +++ /dev/null @@ -1,604 +0,0 @@ -* PostgreSQL and Mono - - When it comes to Mono and PostgreSQL, there are many ways - you can handle your data. You have many Mono Data Providers which can be used - to access data from a application written for Mono. - Then there is the future goal of having the ability to host Mono within PostgreSQL to - have the applications run on the server which makes things much faster. - -* Hosting Mono in PostgreSQL - - There is a project to <a href="http://gborg.postgresql.org/project/plmono/projdisplay.php">host Mono within PostgreSQL</a>. - - plMono is a PostgreSQL language using the embedded Mono runtime. It provides support for writing functions in C#, or any other language that supports .NET. - -* Data Providers - - There are many ADO.NET data providers for <a href="http://www.postgresql.org/">PostgreSQL</a>: - - There are two providers created specifically for PostgreSQL included with Mono: - -<ul> - - <li><a href="http://gborg.postgresql.org/project/npgsql/projdisplay.php">Npgsql</a> - <ul> - <li>included with Mono</li> - - <li>a .NET Managed Data Provider for PostgreSQL</li> - - <li>Written in 100% C#</li> - - <li>does not require a client library</li> - - <li>works on Mono and Microsoft .NET</li> - - <li>created by Francisco Figueiredo jr. and has many developers working on it - - <li>works in the SQL# (command-line and GTK# GUI versions)</li> - - <li>in namespace Npgsql and assembly Npgsql and is found in mcs - at mcs/class/Npgsql</li> - </ul> - </li> - - <li>Mono.Data.PostgreSQL (deprecated) - <ul> - <li>included with Mono</li> - - <li>Deprecated in favor of Npgsql</li> - - <li>Exists in namespace Mono.Data.PostgreSql and assembly Mono.Data.PostgreSql</li> - - <li>Is a Mono Data Provider for the <a href="http://www.postgresql.org/">PostgreSQL</a> - client/server database management system.</li> - - <li>Written in C# and has C# bindings to the PostgreSQL C Client library pq.dll on Windows - and libpq.so on Linux.</li> - </ul> - </li> - - <li><a href="http://sourceforge.net/projects/mysqlnet/">ByteFX.Data</a> has a provider for PostgreSQL too, but I do not know how well it works with Mono.</li> - - <li>There is another .NET data provider for PostgreSQL named <a href="http://sourceforge.net/projects/pgsqlclient/">PgSqlClient</a>, but I do not know if it works with Mono.</li> - - <li>If none of the above providers meet your needs. There is the ODBC and OLEDB providers included with Mono.</li> - - <li>Bugs with Mono or the data provider should be reported - in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you - do not have Bugzilla user account, it is free - and easy to - create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> - - -</ul> - - Below, see separate Testing sections for Npgsql and Mono.Data.PostgreSqlClient. - -** Current Status - -<ul> - <li>Npgsql - <ul> - <li>Builds and Runs on both Microsoft .NET and Mono.</li> - <li>Works using SQL# (command-line and GTK# versions)</li> - <li>You can send insert, update, delete queries
- through NpgsqlCommand.ExecuteNonQuery() method.</li>
- <li>You can send queries like, select count(*) from table, select version()
- with NpgsqlCommand.ExecuteScalar() method.</li>
- <li>There is logging support. (Thanks Dave Page)
- To use it, place code like that in your program:</li>
-
-<pre>
- // Enable logging.
- NpgsqlEventLog.Level = LogLevel.Debug; // LogLevel.
- NpgsqlEventLog.LogName = "NpgsqlTests.LogFile"; // LogFile.
-</pre>
-
- <li>You can use Npgsql with Mono (Thanks Kristis Makris). It is not working perfectly.</li>
- <li>There is a winforms test suite (Thanks Dave Page).</li>
- <li>Clearer code in NpgsqlConnection removing *magic* numbers and constants. (Thanks Kristis Makris)</li>
- <li>Better support of ODBC-like ConnectionString in NpgsqlConnection (Thanks Dave Page)</li>
- <li>Thanks Ulrich Sprick for all discussion and ideas.</li>
- - </ul> - </li> - <li>Mono.Data.PostgreSQL status - <ul> - - <li>Deprecated in favor of Npgsql</li> - - <li>We are able to do simple CREATE TABLE, DROP TABLE, UPDATE, INSERT, and - DELETE SQL commands using the ExecuteNonQuery method in PgSqlCommand.</li> - - <li>We can execute multiple queries and do a NextResult() in PgSqlDataReader() - to get the next result set.</li> - - <li>We are also able to do simple aggregate functions, - ie, count(), sum(), min(), and max() - in a simple SELECT SQL query using the ExecuteScalar() now.</li> - - <li>We are also able to retrieve data with a simple SELECT SQL query - using ExecuteReader() which returns a PgSqlDataReader. We are able to - use GetSchemaTable() to get the meta data about the table columns. - We are able to Read() to get each row from the result set.</li> - - <li>We are able to get - String data (char, character, text, varchar), Int16 (smallint), - Int32 (integer), Int64 (bigint), DateTime (time, date, timestamp), - Boolean (boolean), Single (float), and Double (double). - More data types will come later. Note, the types that do work still - need thorough testing.</li> - - <li>Rows that are returned which contain columns that are NULL are handled now. - The PgSqlDataReader method IsDBNull() needs to be called to determine - if a field IS NULL before trying to read data from that field.</li> - - <li>Calling PostgreSQL stored procedures works. It does not work perfectly. - It may not - even work to specification - yet. If you want to test it yourself, look at - TestSqlDataReader.cs or PostgresTest.cs in - mcs/class/System.Data/Test.</li> - - <li>Below, I have some sample code you can - use to call a PostgreSQL stored procedure named "version". This stored - procedure returns a string containing the PostgreSQL server version. Notice - the CommandType is StoredProcedure and the method ExecuteScalar() is called.</li> - - <li>ExecuteScalar() is a lightweight method in class PgSqlCommand that only returns - one row and one column as one object - even if there is more than row or column.</li> - - <li>We have the beginnings of Parameters support PostgreSQL. Only - Input Parameters are currently supported. Output, Input/Output, - and Return parameters still need to be done.</li> - - <li>A lot of Exceptions need to be thrown for various exceptions. However, - PgSqlException, PgSqlErrorCollection, and PgSqlError have been partially - implemented.</li> - - <li>Tim Coleman and Rodrigo Moya got the beginnings of the - PgSqlDataAdapter/DataSet/DataTable/DataRow to work. Currently, - the PgSqlDataAdapter can Fill() relational data into a DataTable in a DataSet. - See the test mcs/class/System.Data/Test/TestSqlDataAdapter.cs to see it in action.</li> - - <li>Works in the SQL# command-line version - and the GTK# version on Linux. It only works in SQL# command-line version - on Windows.</li> - - </ul> - </li> - -</ul> - -** Action Plan - <ul> - <li>More testing and fixing bugs</li> - - <li>Better error handling</li> - - <li>More Data Types to use</li> - - <li>Any features for Npgsql should be implemented in Npgsql's main cvs repository at - gborg.postgresql.org. Most bugs should be fixed in gborg.postgresql.org's cvs. - Only bugs neccessary for building and running of Npgsql on Mono can be done in Mono cvs, - but once applied they should be sent to Npgsql's mailing list - at gborg.postgresql.org for inclusion into cvs there. Whenever there is - a release of Npgsql (determined by Francisco Figueiredo jr. or a release - of Mono (determined by Miguel de Icaza), then the Npgsql source - in gborg.postgresql.org's cvs will be used to update the Npgsql source in - Mono's cvs. - </li> - - <li>Mono.Data.PostgreSqlClient even though deprecated can still - accept bug fixes. This is because other areas, such as, ASP.NET examples - may still use this provider.</li> - - <li>Add any missing functionality to Npgsql. If this funtionality works on - .NET but not on Mono, implement the missing features or fix the bugs in Mono</li> - - <li>Npgsql has replaced Mono.Data.PostgreSqlClient as the provider of - choice to use. However, Mono.Data.PostgreSqlClient will remain in a - deprecated state until nobody uses it anymore - then it can be removed</li> - - <li>Implement more of PostgreSQL 7.3 features in Npgsql</li> - </ul> - -** Testing Mono.Data.PostgreSqlClient - - <ul> - * <p>In order to test Mono.Data.PostgreSqlClient, you will need to have - access to a remote PostgreSQL DBMS, or you will have to install - one locally. PostgreSQL was the first ADO.NET provider created in Mono. - - <p>Why use PostgreSQL? Because it is free software, has a client - library that is easy to use, PostgreSQL is easy to install on - Unix and Windows (using the Cygwin install program), not difficult to setup after - installation, and it runs under: Linux, - Windows (via cygwin and ipc-daemon), Unix, and - others. This allowed us to create the - System.Data functionality in Mono much quicker. - - <p>If you plan on using a remote PostgreSQL DBMS Server, - than you will need to have the PostgreSQL client software on your - local computer that includes libpq.so (pq.dll on Windows). - - <p>The System.Data tests use this connection string to connect - to the PostgreSQL database named "test" at host "localhost" as - user "postgres". - -<pre> -"Server=localhost;Database=test;User ID=postgres;Password=fun2db" - (or) -"host=localhost;dbname=test;user=postgres;password=fun2db" -</pre> -</ul> - - <p>Installation instructions for PostgreSQL DBMS: - - <b>On Unix</b> - - <ul> - * Read the PostgreSQL Installation Instructions - at \usr\doc\postgresql-x.x.x\html\installation.html - - * Depending on your Unix system, - PostgreSQL maybe already installed, a database user 'postgres' created, - a linux user 'postgres' created and initdb ran. Or maybe not. - -<pre> - su - adduser postgres - mkdir /usr/local/pgsql/data - chown postgres /usr/local/pgsql/data - su - postgres - initdb -D /usr/local/pgsql/data - postmaster -i -D /usr/local/pgsql/data - createdb test - psql test -</pre> - - * Make sure you have a database user named postgres. It is best to install - the PostgreSQL DBMS under linux user postgres. When you run the postmaster, - run it under the user postgres as well. If this was not done, then you - will need to create a user named postgres for the System.Data tests. - - * If you already installed PostgeSQL and you do not have a database - user named postgres, then you can create user postgres using psql: - -<pre> -psql test -create user postgres with password 'fun2db'; -</pre> - - * The postmaster must be run with -i option. - - * In the /usr/local/pgsql/data/pg_hba.conf file, you need - to have the AUTH_TYPE set to md5. You can read more on this at - /usr/doc/postgresql-7.2.1/html/client-authentication.html - or wherever your - PostgreSQL html docs are located. See the 2nd line below, - host 127.0.0.1 has an AUTH_TYPE md5 in pg_hba.conf. - -<pre> - # TYPE DATABASE IP_ADDRESS MASK AUTH_TYPE - - local all trust - host all 127.0.0.1 255.255.255.255 md5 -</pre> - - * If you can not find your PostgreSQL documentation locally or you - did not install it, then you - can get it <a href="http://www.postgresql.org/idocs/">here</a>. - - </ul> - - <b>On Windows</b> - - <ul> - * Use the <a href="http://www.cygwin.com/">Cygwin</a> installer to - install the PostgreSQL DBMS. It is - found in the database category. - - * <p>Read the file postgres-x.x.README at /usr/doc/Cygwin and read - the requirements to install PostgreSQL. Those requirements - are included with cygwin except cygipc. A default installtion - of cygwin does not install everything you will need, so on the - safe side, just include everything when installing cygwin. - - * <p>The -x.x in postgres-x.x is the version of your PostgreSQL DBMS. - - * <p>Once Cygwin has installed the PostgreSQL DBMS on your computer, - read the file FAQ_MSWIN which is available - in /usr/doc/postgres-x.x - - * <p>Important notes from this file are: - - <ul> - <p><b>2.</b> - Install the latest <a href="http://www.neuro.gatech.edu/users/cwilson/cygutils/cygipc/index.html">CygIPC</a> package. - Cygwin includes a utility bunzip2 which can be used to unzip it. Now, change to - the root directory by - typing "cd /" then - you can use "tar xvf cygipc.xxx.tar" to untar it - in the root directory in cygwin. - - <p>The cygipc package contains the support to run ipc-daemon - that you will need - to run before you can - run the PostgreSQL DBMS Server daemon (postmaster) or run - initdb which initializes the PostgreSQL database. - - <p><b>3.</b> The Cygwin bin directory has to be placed in - the path before the Windows program directories, - for example, C:\cygwin\bin - - <p><b>My own note.</b> In the Windows control panel, I set - the environment variables PATH to my cygwin /usr/local/bin, - /usr/bin, and /bin. I also set my LD_LIBRARY_PATH to - /usr/local/lib and /usr/lib. For example: - - <p> -<pre> -PATH=c:\cygwin\usr\local\bin;c:\cygwin\usr\bin;c:\cygwin\bin; -LD_LIBRARY_PATH=c:\cygwin\usr\local\lib;c:\cygwin\usr\lib; -</pre> - - <p><b>4.</b> Start the ipc-daemon that came with the cygipc - package. There - are two ways to do this: run it from the command line as: - - <p> -<pre> -ipc-daemon & -</pre> - <p>or you can set it up as a Windows service. See the - file cygrunsrv.README at /usr/doc/Cygwin on how to do this - for ipc-daemon and postmaster. Note the - troubleshooting section at the end of - the cygrunsrv.README file. - - <p>To install ipc-daemon as a service, - you just have to run - - <p> -<pre> -ipc-daemon --install-as-service' (--remove-as-service) -</pre> - - <p>and then run - -<pre> -net start ipc-daemon -</pre> - </ul> - - <p>Read the installation.html file - at /usr/doc/postgresql-x.x/html/installation.html - - <p>You will see in this file that you will need to - run the following commands: - - <p> -<pre> -mkdir /usr/local/pgsql/data -initdb -D /usr/local/pgsql/data -postmaster -D /usr/local/pgsql/data -createdb test -psql test -</pre> - - <p>When you need to connect to the database, - you will need ipc-daemon and postmaster running. Start ipc-daemon - before any of the command above. If you restart your computer, you - need to start ipc-daemon and postmaster either manually or as a - service. - - <p>psql is a command-line PostgreSQL client tool to - enter and run SQL commands and queries. - - <p>If there is no database user named postgres, create a user named - postgres with the following SQL command in the client tool psql: - - <p> -<pre> -psql test -create user postgres with password 'fun2db'; -</pre> - <p>The only reason I say this is so you can easily use the System.Data tests - without having to change the database, userid, etc. - </ul> - - <p>In the path mcs/class/System.Data/Test - there is a test for Mono.Data.PostgreSqlClient named - PostgreTest.cs. Thanks goes to Gonzalo for creating the original - PostgreSQL test. - - <p> - To compile the PostgresTest.cs program, do: - - <p> -<pre> - mcs PostgresTest.cs \ - -r System.Data.dll \ - -r Mono.Data.PostgreSqlClient.dll -</pre> - - <p>If there are compile errors, such as, can not convert IDbConnection - to PgSqlConnection, then you need to run mcs like: - -<pre> - mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \ - PostgresTest.cs \ - -r System.Data.dll \ - -r Mono.Data.PostgreSqlClient.dll -</pre> - - <p> - To run using mint, do: - - <p> -<pre> -mint PostgresTest.exe -</pre> - - <p> - To run using mono, do: -<pre> -mono PostgresTest.exe -</pre> - - <p>C# Example for Mono.Data.PostgreSqlClient: -<pre> - using System; - using System.Data; - using Mono.Data.PostgreSqlClient; - - public class Test - { - public static void Main(string[] args) - { - string connectionString = - "Server=localhost;" + - "Database=test;" + - "User ID=postgres;" + - "Password=fun2db;"; - IDbConnection dbcon; - dbcon = new PgConnection(connectionString); - dbcon.Open(); - IDbCommand dbcmd = dbcon.CreateCommand(); - // requires a table to be created named employee - // with columns firstname and lastname - // such as, - // CREATE TABLE employee ( - // firstname varchar(32), - // lastname varchar(32)); - string sql = - "SELECT firstname, lastname" + - "FROM employee"; - dbcmd.CommandText = sql; - IDataReader reader = dbcmd.ExecuteReader(); - while(reader.Read()) { - string FirstName = (string) reader["firstname"]; - string LastName = (string) reader["lastname"]; - Console.WriteLine("Name: " + - FirstName + " " + LastName); - } - // clean up - reader.Close(); - reader = null; - dbcmd.Dispose(); - dbcmd = null; - dbcon.Close(); - dbcon = null; - } - } -</pre> - </li> - <li>Building C# Example: - <ul> - <li>Save the example to a file, such as, TestExample.cs</li> - <li>Build on Linux: -<pre> - mcs TestExample.cs -r System.Data.dll \ - -r Mono.Data.PostgreSqlClient.dll -</pre> - </li> - <li>Build on Windows via Cygwin: -<pre> - mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \ - TestExample.cs \ - -lib:C:/cygwin/home/MyHome/mono/install/lib \ - -r System.Data.dll -r Mono.Data.PostgreSqlClient.dll -</pre> - </li> - </ul> - </li> - <li>Running the Example: -<pre> -mono TestExample.exe -</pre> -</li> -</ul> - -** Testing Npgsql - -<ul> - <li>Have a working mono and mcs</li> - - <li>Get <a href="http://gborg.postgresql.org/project/npgsql/projdisplay.php">Npgsql</a> - and make sure the binary assembly Npgsql.dll is installed in the same place that the - mono class libraries are located. - - <li>Read the Testing notes for Mono.Data.PostgreSqlClient too - - <li>C# Example for Npgsql: -<pre> - using System; - using System.Data; - using Npgsql; - - public class Test - { - public static void Main(string[] args) - { - string connectionString = - "Server=localhost;" + - "Database=test;" + - "User ID=postgres;" + - "Password=fun2db;"; - IDbConnection dbcon; - dbcon = new NpgsqlConnection(connectionString); - dbcon.Open(); - IDbCommand dbcmd = dbcon.CreateCommand(); - // requires a table to be created named employee - // with columns firstname and lastname - // such as, - // CREATE TABLE employee ( - // firstname varchar(32), - // lastname varchar(32)); - string sql = - "SELECT firstname, lastname " + - "FROM employee"; - dbcmd.CommandText = sql; - IDataReader reader = dbcmd.ExecuteReader(); - while(reader.Read()) { - string FirstName = (string) reader["firstname"]; - string LastName = (string) reader["lastname"]; - Console.WriteLine("Name: " + - FirstName + " " + LastName); - } - // clean up - reader.Close(); - reader = null; - dbcmd.Dispose(); - dbcmd = null; - dbcon.Close(); - dbcon = null; - } - } -</pre> - </li> - <li>Building C# Example: - <ul> - <li>Save the example to a file, such as, TestExample.cs</li> - <li>Build on Linux: -<pre> - mcs TestExample.cs -r System.Data.dll \ - -r Npgsql.dll -</pre> - </li> - <li>Build on Windows via Cygwin: -<pre> - mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \ - TestExample.cs \ - -lib:C:/cygwin/home/MyHome/mono/install/lib \ - -r System.Data.dll -r Npgsql.dll -</pre> - </li> - </ul> - </li> - <li>Running the Example: -<pre> -mono TestExample.exe -</pre> -</li> -</ul> - diff --git a/doc/ppc b/doc/ppc deleted file mode 100644 index 81580e03cd0..00000000000 --- a/doc/ppc +++ /dev/null @@ -1,40 +0,0 @@ - -* Mono PowerPC Port - -** Status - - It passes and compiles the same amount of mono tests as on the x86 architecture. - - mcs is self hosting on Linux/PPC. - -*** Interpreter - - Up to date. - -*** Jitter - - Works on MacOS X 10.2 and Linux/PPC. - - There are known problems on MacOS 10.3 - -** Documentation - -*** PowerPC architecture: - - <A HREF="http://e-www.motorola.com/brdata/PDFDB/docs/MPCFPE32B.pdf">PowerPC Programming environments manual</A><BR> - <A HREF="http://e-www.motorola.com/brdata/PDFDB/docs/MPC7410UM.pdf">G4 (7410) User's manual</A> - - There's a very nice introduction to PowerPC assembly language - at <a - href="http://www-106.ibm.com/developerworks/library/l-ppc/">http://www-106.ibm.com/developerworks/library/l-ppc/</a>. - -*** Calling conventions: - - Linux on PPC32 uses the <a - href="http://refspecs.freestandards.org/elf/elfspec_ppc.pdf">The - PowerPC SystemV ABI specification</a>. - - On MacOS X, the conventions are documented in the <a - href="http://developer.apple.com/documentation/DeveloperTools/Conceptual/MachORuntime/MachORuntime.pdf">Mach-O - Runtime Architecture</a>. - diff --git a/doc/print-stack b/doc/print-stack deleted file mode 100755 index 1bf79581801..00000000000 --- a/doc/print-stack +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -MANAGED_CALLS=`gdb -silent $1 -pid $2 << EOF | awk '/.* in \?\? \(\)/ {printf("call print_method_from_ip(%s)\n", $2);}' -set height 0 -thread apply all bt -quit -EOF` - -gdb -silent $1 -pid $2 << EOF -set height 0 -thread apply all bt -$MANAGED_CALLS -quit -EOF - diff --git a/doc/projects b/doc/projects deleted file mode 100755 index 8f4a40a275c..00000000000 --- a/doc/projects +++ /dev/null @@ -1,22 +0,0 @@ -* Open Projects - - The .NET framework is a good first in terms of a new - development foundation, but it falls short of providing - higher-level components or building blocks for people to - reuse. - - A few ideas of projects and classes that would be useful to - develop applications follows: - -** EOG component - -* Gtk# related projects - - Gnome Canvas Bindings. - - Bezier Canvas Item Binding. - -* Graphical bindings - - Binding for the Libart library - diff --git a/doc/provider-factory b/doc/provider-factory deleted file mode 100755 index 37309ec4324..00000000000 --- a/doc/provider-factory +++ /dev/null @@ -1,156 +0,0 @@ -* Provider Factory - -<p>Brian Ritchie contributed a Provider Factory and Data Tools for Mono ADO.NET<br> -which gives us a foundation for abstract data provider access within Mono - -** Here are the deails: - -<ul> - <li>The Provider information is seperate from the connection string information.<br> - This allows the list of providers to be stored in the machine.config file.</li> - <li>Provider and ProviderCollection objects are available to access <br> - the list of providers and modify them at runtime.</li> - <li>The ProviderFactory object is used to create new connections, commands,<br> - dataadapters, parameters, etc.</li> -</ul> - -** Overview of the ProviderFactory object model: - -<ul> - <li><b>ProviderFactory</b>: used to create new Connections, Commands,<br> - DataAdapters, or Commands. All objects are returned using <br> - the provider interfaces such as IDbConnection, IDbCommand,<br> - IDbDataAdapter, or IDataParamter</li> - - <li><b>DataTools</b>: static methods for doing <br> - common tasks like filling a DataSet <br> - with the contents of a select statement.</li> - - <li><b>ProviderCollection</b>: list of providers configured <br> - in the system. Initially loaded from app.config, but can <br> - be modified at run-time.</li> - - <li><b>Provider</b>: represents a given provider (factory) <br> - and holds information needed to <br> - create the types.</li> - - <li><b>ProviderSectionHandler</b>: works behind the <br> - scenes to load the list of <br> - providers from the app.config into a ProviderCollection.</li> -</ul> - -** C# source code samples for creating a connection: - -<pre> - // Create connection using enhanced connection string - // The factory attribute specifies which provider - // to use. The factory attribute is parsed out, the - // object is created, and then the rest of the - // connection string is passed into the provider. The - // providers are defined in - // the app.config (or machine.config). - IDbConnection conn; - string connectionString = - "factory=System.Data.SqlClient;" + - "server=speedy;database=pubs;uid=sa"; - conn = ProviderFactory.CreateConnection(connectionString); - - // Create connection specifying provider - // and standard connection string - IDbConnection conn; - string provider = "System.Data.SqlClient"; - string connectionString = "server=speedy;database=pubs;uid=sa"; - conn = ProviderFactory.CreateConnection(provider,connectionString); - - // Create connection using connection string stored - // in app.config under <appSettings> - IDbConnection conn; - string appSetting = "PubsConnStr"; - conn = ProviderFactory.CreateConnectionFromConfig(appSetting); -</pre> - - -<p>C# Sample for Creating a DataAdapter and filling a DataSet. - -<pre> -// Create Connection -IDbConnection conn = -ProviderFactory.CreateConnectionFromConfig("PubsConnStr"); - -// Select command -IDbCommand cmd=conn.CreateCommand(); -cmd.Text="select * from author"; - -// Data Adapter -DataSet ds=new DataSet(); -IDbDataAdapter adapter=ProviderFactory.CreateDataAdapter(cmd); -adapter.Fill(ds, "Table1"); -</pre> - -<p>Creating a DataAdapter and filling a DataSet. <br> -The super lazy method for people like me. -<pre> -// Create Connection -IDbConnection conn = -ProviderFactory.CreateConnectionFromConfig("TdsPubsConnStr"); - -// Data Adapter -DataSet ds=DataTools.FillDataSet(conn, "select * from author"); -</pre> - - -<p>Here's some sample code on displaying a list <br> - of configured ADO.NET providers: -<pre> -Console.WriteLine("Configured Providers:"); -foreach (Provider p in ProviderFactory.Providers) - Console.WriteLine(p.Description); -</pre> - -<p>A Super lazy overload to the FillDataSet method (in <br> -DataTools.cs) that will fill a dataset in one line of code. - -<pre> -DataSet ds=DataTools.FillDataSet("PubsConnStr", "select * from authors"); -</pre> - -** About Configuration Files - -<p>Information about <a href="http://msdn.microsoft.com/library/en-us/vbcon/html/vboriintroductiontoapplicationsettingstorage.asp?frame=true">app.config</a> files -can be found at <a href="http://msdn.microsoft.com/">MSDN</a>. - -<p>See the mcs/class/Mono.Data/app.config for sample configuration file in<br> -mcs source. Basically, if your application is named blah.exe, <br> -you would create an app.config file named blah.exe.config - -<p>Here's a sample app.config file showing the provider <br> -declarations along with sample connection strings: - -<pre> - -<?xml version="1.0" encoding="utf-8" ?> -<configuration> - <configSections> - <sectionGroup name="mono.data"> - <section name="providers" type="Mono.Data.ProviderSectionHandler,Mono.Data" /> - </sectionGroup> - </configSections> - <appSettings> - <add key="PubsConnStr" value="factory=System.Data.SqlClient;server=speedy;database=pubs;uid=sa;pwd=" /> - </appSettings> - <mono.data> - <providers> - <provider name="System.Data.SqlClient" connection="System.Data.SqlClient.SqlConnection" adapter="System.Data.SqlClient.SqlDataAdapter" assembly="System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> - <provider name="System.Data.OleDb" connection="System.Data.OleDb.OleDbConnection" adapter="System.Data.OleDb.OleDbDataAdapter" assembly="System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> - <provider name="System.Data.Odbc" connection="System.Data.Odbc.OdbcConnection" adapter="System.Data.OleDb.OdbcDataAdapter" assembly="System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> - <provider name="Mono.Data.TdsClient" connection="Mono.Data.TdsClient.TdsConnection" adapter="Mono.Data.TdsClient.TdsDataAdapter" assembly="Mono.Data.TdsClient" /> - <provider name="Mono.Data.MySql" connection="Mono.Data.MySql.MySqlConnection" adapter="Mono.Data.MySql.MySqlDataAdapter" assembly="Mono.Data.MySql" /> - <provider name="Mono.Data.PostgreSqlClient" connection="Mono.Data.PostgreSqlClient.PgSqlConnection" adapter="Mono.Data.PostgreSqlClient.PgSqlDataAdapter" assembly="Mono.Data.PostgreSqlClient" /> - <provider name="Mono.Data.SqliteClient" connection="Mono.Data.SqliteClient.SqliteConnection" adapter="Mono.Data.SqliteClient.SqliteDataAdapter" assembly="Mono.Data.SqliteClient" /> - <provider name="Mono.Data.SybaseClient" connection="Mono.Data.SybaseClient.SybaseConnection" adapter="Mono.Data.SybaseClient.SybaseDataAdapter" assembly="Mono.Data.SybaseClient" /> - </providers> - </mono.data> -</configuration> - -</pre> - diff --git a/doc/rationale b/doc/rationale deleted file mode 100644 index 91cd3c7af7b..00000000000 --- a/doc/rationale +++ /dev/null @@ -1,199 +0,0 @@ - -* The Mono Project - -** Background. - - The GNOME project goal was to bring missing technologies to - Unix and make it competitive in the current market place for - desktop applications. We also realized early on that language - independence was important, and that is why GNOME APIs were - coded using a standard that allowed the APIs to be easily - wrapped for other languages. Our APIs are available to most - programming languages on Unix (Perl, Python, Scheme, C++, - Objective-C, Ada). - - Later on we decided to use better methods for encapsulating - our APIs, and we started to use CORBA to define interfaces to - components. We complemented it with policy and a set of - standard GNOME interfaces for easily creating reusable, - language independent components, controls and compound - documents. This technology is known as <a - href="http://developer.ximian.com/articles/whitepapers/bonobo">Bonobo</a>. - Interfaces to Bonobo exist for C, Perl, Python, and - Java. - - CORBA is good when you define coarse interfaces, and most - Bonobo interfaces are coarse. The only problem is that - Bonobo/CORBA interfaces are not good for small interfaces. - For example, an XML parsing Bonobo/CORBA component would be - inefficient compared to a C API. - -** Another explanation - - I recently explained our motivations to Dave Winer, and he posted - it <a - href="http://scriptingnews.userland.com/stories/storyReader$1275">here</a> - -** Microsoft's .NET - - The Microsoft .NET initiative is confusing because it is a - company wide effort that ranges from development tools to end - user applications. .NET is a branding formative that - has been applied to: - - <ul> - * The .NET development platform, a new platform for - writing software. - - * Web services. - - * Microsoft Server Applications. - - * New tools that use the new development platform. - - * Hailstorm, the Passport centralized single-signon - system that is being integrated into Windows XP. - - </ul> - - Mono is an implementation of the .NET development platform. - -** The Common Language Infrastructure platform. - - Microsoft has created a new development platform. The - highlights of this new development platform are: - - <ul> - * A runtime environment that provides garbage - collection, threading and a virtual machine - specification (The Virtual Execution System, VES) - - * A comprehensive class library. - - * A new language, C#. Very similar to Java, C# - allows programmers to use all the features available - on the .NET runtime. - - * A language specification that compilers can - follow if they want to generate classes and code - that can interoperate with other programming - languages (The Common Language Specification: CLS) - </ul> - - The Common Language Infrastructure platform is similar to the - goals we had in GNOME of giving language independence to - programmers. It is more mature, documented, larger in scope, - and has a consistent design. - - Any API that is written using a CLS provider language can be - used by any language that is a CLS consumer. Compilers - generate code in a format called Common Intermediate Language - (CIL) which is an intermediate representation of a compiled - program and is easy to compile to native code or compiled - using Just-in-Time (JIT) engines. The restrictions placed by - the runtime on the CIL byte codes ensures that it is possible - to do a good job at optimizing the code in a JIT compiler. - - There is not really a lot of innovation in this platform: we - have seen all of these concepts before, and we are all - familiar with how these things work. - - What makes the Common Language Infrastructure development - platform interesting is that it is a good mix of technologies - that have been nicely integrated. - - The .NET development platform is essentially a new foundation - for program development that gives Microsoft a room to grow - for the coming years. - -** ECMA standards. - - Microsoft has submitted the - specifications of C#, the runtime, the metadata and the - other various bits of the .NET development platform to the - <a href="http://www.ecma.ch">ECMA</a> for standarization. - - You can get a copy of the specifications submitted to ECMA - from: <a href="http://www.dotnetexperts.com/ecma">http://www.dotnetexperts.com/ecma</a> - -** Mono: an Open Source Common Language Infrastructure implementation. - - Ximian has begun work on Mono, a project that aims to bring - the Common Language Infrastructure platform to free systems. - - When the GNU project was launched, they picked the best - operating system that was available out there, and they - began to clone it: Unix. - - The .NET development platform is a very rich, powerful, and - well designed platform that would help improve the free - software development platform. Just like the GNU project - began to clone Unix sixteen years ago, we will be cloning the - .NET development platform because it is a great platform to - build on. - -** What makes up Mono? - - There are various pieces that make up Mono today: - - <ul> - * A C# compiler. - - * The Virtual Execution System: that has the - Just-in-Time compiler, garbage collector, loader, - threading engine. - - A byte code interpreter is provided for quickly - porting Mono to new systems and debugging the JIT - purposes, but it is not intended to be the ideal - execution environment. - - * An implemenation of the .NET class libraries: - Remoting, Reflection, Reflection.Emit, Xml, Xpath, - Xslt, Xml Serialization, Web Services support. - - * Cross platform class libraries for data access: - Postgress, MySQL, DB2, TDS, Sybase, Oracle, ODBC and - Gnome's GDA. - - * Unix class libraries: Mono.Posix - - * Gnome-specific class libraries: The Gtk# family. - - * A code pre-compiler to generate native code ahead of - time. - - * Gtk# a toolkit to develop GNOME applications on Unix - and Windows. - - * An implementation of the Remoting infrastructure in - .NET - </ul> - - Other work-in-progress components: - - <ul> - * A VB.NET compiler and JScript compilers are in the works. - - * Web services on the server side. - - * We are planning to include Remoting.CORBA as part of - Mono standard distribution. - </ul> - -** Why use GNOME components? - - GNOME is an umbrella project that consists of infrastructural - components (GUI toolkit, XML libraries, CORBA implementation, - printing architecture, imaging system), a desktop environment, - and productivity applications. - - The GNOME infrastructural components can be used to quickly - implement various pieces of the class libraries without reinventing - the wheel, and since all those components are licensed under - the terms of the GNU LGPL it is a perfect fit. - - Libart will be used to implement the Drawing.2D API; Gtk+ and - the GNOME libraries will be used to implement the WinForms - API and of course Glib and libxml will be used in various - places.
\ No newline at end of file diff --git a/doc/release-notes/mono-0.3 b/doc/release-notes/mono-0.3 deleted file mode 100644 index 4976037b957..00000000000 --- a/doc/release-notes/mono-0.3 +++ /dev/null @@ -1,46 +0,0 @@ -To: mono-list@ximian.com, mono-announce-list@ximian.com -Subject: July 12 snapshots. -FCC: ~/Mail/outbox.txt -X-Windows: Sometimes you fill a vacuum and it still sucks. ---text follows this line-- - -Hey! - - July 12 snapshots of class libraries, the compiler and the mono -runtime are available. - -New on this release: - - * Runtime (module: mono) - - The beginning of a simple interpreter that Paolo started - workign on (can run really simple .NET programs). - - Disassembler copes with more elements of the binary format and - more tokens are decoded. Paolo is working now on moving some - of these to the metadata library. - - More tables are dumped. - - * Class libraries (module: mcs/class) - - Many new more classes are in from Joe, Vladimir, Jeff, Sean - and yours truly. - - Sean fixed the build process, and it is now possible to - compile with a single command the assemblies. We will be - revisiting this mechanism in the future to compile per-OS - assemblies (ie, Unix, Windows, MacOS, etc). - - * Compiler (module mcs/mcs) - - Not much done this week, just a few fixes here and there, and - more work to make it easy to compiler. - - * Documentation (module: mono/doc) - - All the changes to the web site are there for your browsing - pleasure. We still need to integrate the status system in - there. - -Miguel. diff --git a/doc/release-notes/mono-0.4 b/doc/release-notes/mono-0.4 deleted file mode 100644 index 1d7e1cea5f1..00000000000 --- a/doc/release-notes/mono-0.4 +++ /dev/null @@ -1,43 +0,0 @@ -To: mono-list@ximian.com -Subject: Sunday snapshot available. -Gcc: mail.2001-07 ---text follows this line-- - -Hey guys, - - I promise I will not be doing these so often once we have the CVS -server up. In the meantime: - - * MCS - - Sean got the classes to compile in a single go. You - will need CygWin (www.cygwin.org) to compile though - (GNU make and stuff is required). - - System.Xml.XmlReader contribution from Jason - (WOOHHOO!!). It also contains a nice test-suite for - his functions, and in his new code bit, his - implementation is faster than Microsoft's - - We now ship `jay' as part of the distribution to allow - you to compile the compiler with the same `make' - command. Small fixes to the parser as well were - introduced. - - * Mono 0.4 - - Paolo's interpreter supports call instructions and has - the test suite program that he posted about. - - - All documentation ships now in the mono-0.4.tar.gz - -Notes: - - As usual, MCS is targeted to be compiled on a Windows machine - (you will need Cygwin). - - Mono is targeted to be compiled on a Unix machine or a Windows - machine running Cygwin. - -Miguel.
\ No newline at end of file diff --git a/doc/resources b/doc/resources deleted file mode 100644 index 9588bdc9829..00000000000 --- a/doc/resources +++ /dev/null @@ -1,235 +0,0 @@ - -* Resources - - There are a number of resources available for those of you who - want to contribute to the Mono project. Here are a few links. - - If you want to send suggestions for links, address them to <a - mailto="web-mono@ximian.com">web-mono@ximian.com</a>. - -** Microsoft .NET - - The <a href="http://msdn.microsoft.com/netframework">Microsoft.NET site.</a> - - The Microsoft .NET Framework can be downloaded <a - href="http://msdn.microsoft.com/library/default.asp?url=/downloads/list/netdevframework.asp">here</a> - - New methods that are not documented in 1.0, are documented <a - href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/framewrkaddend.asp">here</a> - - The changes between .NET 1.0 and .NET 1.1 are available <a href="http://www.csharphelp.com/archives2/archive406.html">here</a> - -** IRC - - Various Mono contributors get together on channel #mono on - irc.gnome.org - -** Mono related sites. - - The Mono Tutorial: - - <a href="http://go-mono.com/tutorial/">GNOME.NET Tutorial</a> - - and other useful tutorials (Gtk#, Glade#, Embeded, etc) (in Spanish) at - - <a href="http://www.monohispano.org">The Mono Hispano site</a>. - - Community site for Mono at <a href="http://www.gotmono.com">Got Mono</a> - - Wikis: <a href="http://www.nullenvoid.com/gtksharp/wiki">Gtk# Wiki</a> - and <a href="http://www.nullenvoid.com/mono/wiki">Mono Wiki</a>. - - Sergey's web page on Mono resources: - - <a href="http://mono.eurosoft.od.ua">http://mono.eurosoft.od.ua</a> - - Got Dot Net: - - <a href="http://www.gotdotnet.com">Got Dot Net</a> - - Got Mono: - - <a href="http://www.gotmono.com">Got Mono</a> - - MonoMail: - - <a href="http://sourceforge.net/projects/monomail/">http://sourceforge.net/projects/monomail/</a> - - Zip classes: - - Mike's port to .NET: <a - href="http://www.icsharpcode.net/OpenSource/NZipLib/default.asp">NZipLib</a> - - .NET Security: - - A nice overview paper on the <a - href="http://www.foundstone.com/pdf/dotnet-security-framework.pdf">.NET - security architecture</a>. - -** Development Tools - - A tool to compare two assemblies: - - <ul> - <li><a href="http://www.gotdotnet.com/userarea/keywordsrch.aspx?keyword=winchurn">http://www.gotdotnet.com/userarea/keywordsrch.aspx?keyword=winchurn</a> - </ul> - -** ECMA Documentation. - - You can get the documentation for the ECMA specs from: - - <ul> - * <a href="http://www.ecma-international.org/publications/standards/Ecma-334.HTM">C# Language Specification</a> - * <a href="http://www.ecma-international.org/publications/standards/Ecma-335.HTM">Common Language Infrastructure</a> - </ul> - - - Older copies of the standard are available here: - - <ul> - * <a href="http://msdn.microsoft.com/net/ecma">At MSDN</a> - * <a href="http://www.dotnetexperts.com">Dot Net Experts</a> - * <a href="http://lightning.csse.monash.edu.au/.net/CLI">Monash University</a> - </ul> - - These contain specifications for the assembler, the metadata, - byte codes supported by the CLI virtual machine, the C# - language and the core class libraries. - - For details on the .NET class libraries, you can - visit the Microsoft's Developer Network: - - <ul> - * <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/cpref_start.asp">.NET Framework Class Library</a> - </ul> - - You can also get this information if you install the Beta2 - release of the .NET Framework. - -** Discussion Groups. - - <ul> - - * <a href="http://www.oreillynet.com">O'Reilly - Network</a> has a <a - href="http://www.oreillynet.com/dotnet">section devoted to - .NET</a> - * <a - href="http://msdn.microsoft.com/newsgroups">MSDN</a> also - lists various newsgroups related to .NET</ul> - </ul> - -** Other .NET related projects - - There are a number of related projects to Mono: - - <li><b>Development tools</b></li> - <ul> - * <a - href="http://www.icsharpcode.net/OpenSource/SD/default.asp">Sharp - Develop:</a> an IDE for the C# language written in C#. - - * <a href="http://nunit.sourceforge.net">NUnit:</a> A - testing framework for .NET classes. - - * <a - href="http://xmarks.sourceforge.net/doc.html">XMarks DOC.NET:</a> For - creating online documentation you can browse for your own classes. - - * <a - href="http://www.cl.cam.ac.uk/~jds31/research/gccnet/">GCC .NET backend</a>. - - Jeremy Singer has developed a .NET backend for GCC. This is research work. - </ul> - - <li><b>Class Libraries</b></li> - <ul> - * <a href="http://cs-sdl.sourceforge.net/">SDL for - .NET:</a> Bindings for the popular SDL graphics library. - - - * C# bindings for OpenGL and SDL are available here: <a - href="http://csgl.sourceforge.net">http://csgl.sourceforge.net</a> - - * <a - href="http://qtcsharp.sourceforge.net">Qt#:</a> - C# bindings for the Qt toolkit. - - * <a - href="http://codigolivre.org.br/projects/monoqle">Project MonoQLE:</a> a C# Message Queue Server. - Sorry only in portuguese, for now. - - </ul> - - <li><b>Programming languages:</b></li> - <ul> - * <a - href="http://janet-js.sourceforge.net/">Janet:</a> - an implemention of ECMAScript (the standarized - version of JavaScript) in C# - </ul> - - <li><b>Other projects</b></li> - <ul> - * <a - href="http://www.improve-technologies.com/alpha/esharp/">Eclipse - Plugin for C#</a> - - * <a href="http://www.kaffe.org">Kaffe:</a> A popular - Free Software JIT engine for Java. - - * <a href="http://www.intel.com/research/mrl/orp">ORP:</a> A research - JIT/VM/GC system from Intel. - - * <a - href="http://www.southern-storm.com.au/portable_net.html">Portable.NET:</a> - Another implementation of the CLI and C# compiler. - </ul> - -** GNOME Documentation - - Documentation on GNOME, and the GNOME APIs is available from - the <a href="http://developer.gnome.org">developer</a> site at - GNOME: - - <ul> - * <a href="http://developer.gnome.org/doc/API/">GNOME - API documentation</a> - - * <a href="http://developer.gnome.org/doc/books">GNOME - Online books</a> - - * <A - href="http://developer.gnome.org/arch/">Architecture Overview</a> - </ul> - -** Assembly Language Manuals online - - <ul> - * <a href="http://www.agner.org/assem/#optimize"> - Pentium optimization tutorial</a> by Agner Fog - - * <a href="http://webster.cs.ucr.edu/"> - Art of Assembly</a> (x86 only) - - * Documentation for various CPUs - (<a href="http://www.mit.edu/afs/sipb/contrib/doc/specs/ic/cpu/"> - x86, IA64, MIPS, ARM, Alpha</a>) - - * <a href="http://www.heyrick.co.uk/assembler/"> - ARM Assembler</a> tutorial - - * PowerPC - <a href="http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/852569B20050FF7785256996007558C6"> - Compiler Writer's Guide</a> - - * <a href="http://www.lightsoft.co.uk/Fantasm/Beginners/begin1.html"> - Beginners Guide to PowerPC Assembler</a> - </ul> - -** Win32 - - <ul> - * Win32 <a href="http://www.jorgon.freeserve.co.uk/ExceptFrame.htm"> - Structured Exception Handling (SEH)</a> internals (x86 specific) - </ul> diff --git a/doc/resources-pending b/doc/resources-pending deleted file mode 100644 index fd9b9073d64..00000000000 --- a/doc/resources-pending +++ /dev/null @@ -1,30 +0,0 @@ -** MacOS Documentation - -** Assembly Language Manuals online - Intel - MIPS - SPARC - -** Microsoft - msdn.microsoft.com/net - Research.microsoft.com - -** Related Technologies - - <ul> - - * The CLI allows people to create Web Services using the SOAP - protocol. SOAP is based on XML, XML schemas an the HTTP - protocol. - <ul> - * XML specification. - * XML Namespaces. - * XML Schemas. - * SOAP Specification. - </ul> - </ul> - -** Compiler Information - GCC - GCC Sample front-end tutorial - diff --git a/doc/roadmap b/doc/roadmap deleted file mode 100644 index 6cdfa1366a8..00000000000 --- a/doc/roadmap +++ /dev/null @@ -1,12 +0,0 @@ -* Roadmap - - We are working on the following three projects at Ximian: - - The C# Compiler (mcs/mcs) - - A .NET compatible Class Library (mcs/class) - - The JIT/interpreter (mono) - - -
\ No newline at end of file diff --git a/doc/runtime b/doc/runtime deleted file mode 100644 index c2ecdf425a8..00000000000 --- a/doc/runtime +++ /dev/null @@ -1,203 +0,0 @@ -* The Mono runtime - - The Mono runtime engine is considered feature complete. - - It implements a Just-in-Time compiler engine for the CIL - virtual machine, the class loader, the garbage collector, - threading system and metadata access libraries. - - We currently have two runtimes: - - <ul> - * <b>mono:</b> Our Just-in-Time and Ahead-of-Time code - generator for maximum performance. - - * <b>mint:</b> The Mono interpreter. This is an - easy-to-port runtime engine. - </ul> - - We are using the Boehm conservative garbage collector. - - The Mono runtime can be used as a stand-alone process, or it - can be <a href="embedded-api.html">embedded into applications</a> (see - the documentation in mono/samples/embed for more details). - - Embedding the Mono runtime allows applications to be extended - in C# while reusing all of the existing C and C++ code. - - Paolo Molaro did a presentation on the current JIT engine and - the new JIT engine. You can find his <a - href="http://primates.ximian.com/~lupus/slides/jit/">slides - here</a> - -** Current JIT Engine: technical details (<b>updated, June 28th, 2003</b>) - - We have re-written our JIT compiler. We wanted to support a - number of features that were missing: - - <ul> - * Ahead-of-time compilation. - - The idea is to allow developers to pre-compile their code - to native code to reduce startup time, and the working - set that is used at runtime in the just-in-time compiler. - - Although in Mono this has not been a visible problem, we - wanted to pro-actively address this problem. - - When an assembly (a Mono/.NET executable) is installed in - the system, it would then be possible to pre-compile the - code, and have the JIT compiler tune the generated code - to the particular CPU on which the software is - installed. - - This is done in the Microsoft.NET world with a tool - called ngen.exe - - * Have a good platform for doing code optimizations. - - The design called for a good architecture that would - enable various levels of optimizations: some - optimizations are better performed on high-level - intermediate representations, some on medium-level and - some at low-level representations. - - Also it should be possible to conditionally turn these on - or off. Some optimizations are too expensive to be used - in just-in-time compilation scenarios, but these - expensive optimizations can be turned on for - ahead-of-time compilations or when using profile-guided - optimizations on a subset of the executed methods. - - * Reduce the effort required to port the Mono code - generator to new architectures. - - For Mono to gain wide adoption in the Unix world, it is - necessary that the JIT engine works in most of today's - commercial hardware platforms. - </ul> - - The JIT engine implements a number of optimizations: - - <ul> - * Opcode cost estimates (our architecture allows - us to generate different code paths depending - on the target CPU dynamically). - - * Inlining. - - * Constant folding, copy propagation, dead code elimination. - - Although compilers typically do - constant folding, the combination of inlining with - constant folding gives some very good results. - - * Linear scan register allocation. In the past, - register allocation was our achilles heel, but now - we have left this problem behind. - - * SSA-based framework. Various optimizations are - implemented on top of this framework - </ul> - - There are a couple of books that deal with this technique: "A - Retargetable C Compiler" and "Advanced Compiler Design and - Implementation" are good references. You can also get a - technical description of <a - href="http://research.microsoft.com/copyright/accept.asp?path=http://www.research.microsoft.com/~drh/pubs/iburg.pdf&pub=ACM">lbrug</a>. - - The new JIT engines uses three intermediate representations: - the source is the CIL which is transformed into a forest of - trees; This is fed into a BURS instruction selector that - generates the final low-level intermediate representation. - - The instruction selector is documented in the following - papers: - - <ul> - * <a href="http://research.microsoft.com/copyright/accept.asp?path=http://www.research.microsoft.com/~drh/pubs/interface.pdf&pub=wiley">A code generation interface for ANSI C</a> - - - * <a href="http://research.microsoft.com/copyright/accept.asp?path=http://www.research.microsoft.com/~drh/pubs/iburg.pdf&pub=ACM">Engineering efficient code generators using tree matching and dynamic programming.</a> - - </ul> - -** Garbage Collection - - We are using the Boehm conservative GC. We might consider - adopting other GC engines in the future, like the Intel ORP GC - engine. The Intel ORP GC engine as it provides a precise - garbage collector engine, similar to what is available on the - .NET environment. - - <ul> - * Garbage collection list and FAQ:<br> - <a href="http://www.iecc.com/gclist/">http://www.iecc.com/gclist/</a> - - * "GC points in a Threaded Environment":<br> - <a href="http://research.sun.com/techrep/1998/abstract-70.html"> - http://research.sun.com/techrep/1998/abstract-70.html</a> - - * "A Generational Mostly-concurrent Garbage Collector": - <a href="http://research.sun.com/techrep/2000/abstract-88.html"> - http://research.sun.com/techrep/2000/abstract-88.html</a> - - * Details on The Microsoft .NET Garbage Collection Implementation:<br> - <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmag00/html/GCI.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmag00/html/GCI.asp</a> - <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmag00/html/GCI2.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmag00/html/GCI2.asp</a> - </ul> - -** IO and threading - - The ECMA runtime and the .NET runtime assume an IO model and a - threading model that is very similar to the Win32 API. - - Dick Porter has developed WAPI: the Mono abstraction layer - that allows our runtime to execute code that depend on this - behaviour. - -** Useful links - - Paolo Molaro found a few interesting links: - - <ul> - * On compilation of stack-based languages:<br> - <a href="http://www.complang.tuwien.ac.at/projects/rafts.html"> - http://www.complang.tuwien.ac.at/projects/rafts.html</a> - - * A paper on fast JIT compilation of a stack-based language:<br> - <a href="http://www.research.microsoft.com/~cwfraser/pldi99codegen.pdf"> - http://www.research.microsoft.com/~cwfraser/pldi99codegen.pdf</a> - - * Vmgen generates much of the code for efficient virtual machine (VM) - interpreters from simple descriptions of the VM instructions:<br> - <a href="http://www.complang.tuwien.ac.at/anton/vmgen/"> - http://www.complang.tuwien.ac.at/anton/vmgen</a> - </ul> - -** PInvoke - - PInvoke is the mechanism we are using to wrap Unix API calls - as well as talking to system libraries. - - Initially we used libffi, but it was fairly slow, so we have - reused parts of the JIT work to create efficient PInvoke - trampolines. - -** Remoting - - Mono has support for remoting and proxy objects, just like - .NET does. The runtime provides these facilities. - -** Porting - - If you are interested in porting the Mono runtime to other - platforms, you might find the pre-compiled <a - href="archive/mono-tests.tar.gz">Mono regression test - suite</a> useful to debug your implementation. - -* COM and XPCOM - - We plan on adding support for XPCOM on Unix and COM on Microsoft - Windows later in our development process. - diff --git a/doc/screenshots b/doc/screenshots deleted file mode 100644 index 25cc06998d7..00000000000 --- a/doc/screenshots +++ /dev/null @@ -1,229 +0,0 @@ -* Screenshots - -** Mono Debugger - - Some shots of the <a href="jit-debug.html">Mono Debugger</a> - - <table border=1> - <tr> - <td> - <a href="images/Screenshot-Debugger-1.png"><img src="images/Screenshot-Debugger-1-thumb.png"></a> - </td> - </tr> - <tr> - Debugger showing the source code view. - </tr> - </table> - <table> - <tr> - <td> - <a href="images/Screenshot-Debugger-2.png"><img src="images/Screenshot-Debugger-2-thumb.png"></a> - </td> - </tr> - <tr> - Debugger showing the CPU view. - </tr> - </table> - -** Mono Documentation Browser - - The Mono Documentation Browser is available from <a - href="anoncvs.html">CVS</a>, module `monodoc'. - - <table border=1> - <tr> - <td> - <a href="images/Screenshot-B2.png"><img src="images/Screenshot-B2-thumb.png"></a> - </td> - </tr> - <tr> - Mono Documentation Browser rendering a method description. - </tr> - </table> - <table> - <tr> - <td> - <a href="images/Screenshot-MethodSummary.png"><img src="images/Screenshot-MethodSummary-thumb.png"></a> - </td> - </tr> - <tr> - Mono Documentation Browser rendering the class method summary - </tr> - </table> - -** Eclipse running with Mono - - Zoltan Varga made the Java VM for .NET <a - href="http://www.ikvm.net">IKVM</a> run <a - href="http://www.eclipse.org">Eclipse</a>, the IBM Open Source IDE. - - <a href="images/ikvm-screenshot.png"><img src="images/ikvm-screenshot-thumb.png"></a> - -** Mono Basic - - The Mono Basic compiler ships with the Mono distribution. - - <table border=1> - <tr> - <td> - <a href="images/gtk-vb.png"><img src="images/gtk-vb-thumb.png"></a> - </td> - </tr> - <tr> - Mono Basic running a sample Gtk# application. - </tr> - </table> - -** Platano Media Player - - Alp's <a href="http://www.atoker.com/platano/">Platano</a> - Media Player is written with Gtk# (with GStreamer support): - - <table border=1> - <tr> - <td> - <img src="images/platano_s.png"></a> - </td> - </tr> - <tr> - Platano startup. - </tr> - </table> - <table> - <tr> - <td> - <img src="images/platano-playing_s.png"> - </td> - </tr> - <tr> - Platano playing the <a - href="http://developer.ximian.com/projects/third_party/codemonkey/index.html">Code - Monkey At Work</a> video. - </tr> - </table> - -** GSIRC - - Alp's <a href="http://www.atoker.com/gsirc/">GSIRC</a> - Gtk-Sharp IRC written with Gtk# - - <table border=1> - <tr> - <td> - <a href="http://go-mono.com/images/gsirc-0.2a_overview.jpg"><img src="images/gsirc-0.2a_overview-thumb.jpg"></a> - </td> - </tr> - <tr> - GSIRC is shown with the preferences dialog and chatting on some channels (rooms). - </tr> - </table> - -** SQL# For GTK# - - Daniel Morgan's SQL query tool that runs on Mono on Linux and Windows. It is - written in C# and allows you to connect to various Mono ADO.NET providers and - enter SQL commands. - - <table border=1> - <tr> - <td> - <img src="http://go-mono.com/images/sqlsharp.png"> - </td> - </tr> - <tr> - SQL# For GTK# is shown retrieving data from a Microsoft SQL Server 2000 database. - </tr> - </table> - -** Type Reflector - - Type Reflector is a tool included in Mono to inspect your assemblies. - - <table border=1> - <tr> - <td> - <img src="images/type-reflector.png"> - </td> - </tr> - </table> - -** Object Browser - - Radek Doulik's Object Browser (in Mono CVS) is a useful tool - to inspect existing assemblies and their source code: - - <table border=1> - <tr> - <td> - <img src="images/Screenshot-ObjectBrowserDemo.png"> - </td> - </tr> - </table> - -** Windows.Forms - - Windows.Forms running with Wine on Linux: - - <table border=1> - <tr> - <td> - <a href="http://go-mono.com/images/monomdi.jpg"><img src="http://go-mono.com/images/monomdi-thumb.jpg"></a> - </td> - </tr> - </table> - - <table border=1> - <tr> - <td> - <a href="http://go-mono.com/images/WINESWF.JPG"><img src="http://go-mono.com/images/WINESWF-thumb.JPG"></a> - </td> - </tr> - </table> - -** Mono running on the iPaq - - <table border=1> - <tr> - <td> - <img src="images/familiar-mint-hello.png"> - </td> - </tr> - </table> - - -** Mono Certificate Viewer - - <table border=1> - <tr> - <td> - <img src="images/swf-certview.png"> - </td> - </tr> - <tr> - <td> - running on Windows using SWF - </td> - </tr> - <tr> - <td> - <img src="images/gtk-certview.png"> - </td> - </tr> - <tr> - <td> - running on Linux (RH9) using GTK# - </td> - </tr> - </table> - -** SkyNET - - SkyNET is written in C# and uses GTK# for displaying a star chart. - - <table border=1> - <tr> - <td> - <img src="http://go-mono.com/images/skynet.png"> - </td> - </tr> - </table> diff --git a/doc/sqlclient b/doc/sqlclient deleted file mode 100755 index c5eb1f9cc40..00000000000 --- a/doc/sqlclient +++ /dev/null @@ -1,222 +0,0 @@ -* Microsoft SQL Server Provider - -<ul> - <li>ADO.NET Provider for Microsoft SQL Server 7/2000 databases</li> - - <li>Exists in namespace System.Data.SqlClient and assembly System.Data</li> - - <li>Created by Tim Coleman</li> - - <li>Used the <a href="http://www.freetds.org/">FreeTDS</a> and - <a href="http://jtds.sourceforge.net/">jTDS</a> projects as resources.</li> - - <li>Implemented in 100% C#</li> - - <li>Is similar to the Mono.Data.TdsClient and Mono.Data.SybaseClient providers.</li> - - <li>Requires the assembly Mono.Data.Tds.dll which implements the TDS protocol in 100% C#.</li> - - <li>Uses TDS Protocol Version 7.0</li> - - <li>Bugs with Mono or the data provider should be reported - in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you - do not have Bugzilla user account, it is free - and easy to - create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> - -</ul> - - -** Current Status - - -<ul> - <li>Thanks to Sebastien Pouliot, we now have NT Authentication (Integrated Security) support. This support was - added after the release of Mono 0.29. So, you either get it from cvs or wait for the Mono 0.30 release.</li> - - <li>Able to connect to Microsoft SQL Server 7/2000 databases via SQL Server authentication and NT Authentication.</li> - - <li>Connection pooling works.</li> - - <li>Stored Procedures work.</li> - - <li>Parameters work.</li> - - <li>Prepare works.</li> - - <li>SQL commands can be executed - via ExecuteNonQuery() of a SqlCommand.</li> - - <li>SQL aggregates can be executed and a single row and single column - result can be retrieved via ExecuteScalar() of a SqlCommand</li> - - <li>SQL queries can be executed via ExecuteReader() and results - can be retrieved via SqlDataReader.</li> - - <li>a DataTable with schema info about a result can be gotten via GetSchemaTable() - in a SqlDataReader</li> - - <li>XML can be read via ExecuteXmlReader in a SqlCommand.</li> - - <li>Data can be filled in a DataTable in a DataSet via a SqlDataAdapter</li> - - <li>Uses TDS Protocol Version 7.0</li> - - <li>Works in the SQL# command-line and GTK# GUI version</li> -</ul> - -** Action plan - -<ul> - <li>Connection timeouts is being developed now</li> - - <li>Needs more testing</li> - - <li>Start work on TDS Protocol Version 8.0 support</li> - - <li>Add support for .NET 1.2 and 2.0 and Microsoft SQL Server (Yukon) support</li> - -</ul> - -** Testing - -<ul> - <li>Have a working mono and mcs installed</li> - - <li>Have access to a Microsoft SQL Server database - or either download it: - <ul> - <li><a href="http://www.microsoft.com/sql/default.asp">Microsoft SQL Server</a></li> - </ul> - </li> - - <li><b>IMPORTANT:</b> If using Microsoft SQL Server 2000, make sure - you are using at least Service Pack 3 for Microsoft SQL Server 2000. If using - MSDE 2000, make sure you have the special Service Pack 3 for MSDE 2000. You - can get it from <a href="http://www.microsoft.com/sql/downloads/2000/sp3.asp">here</a></li> - - <li>For those that only have MSDE installed. You can change the authentication mode
- from Windows Only Authentication to SQL Server and Windows Authentications (also knows as Mixed-mode authentication)
- via the <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;Q322336&sd=tech#4">registry</a></li>. It is
- the LoginMode you need to change. By default,
- MSDE is installed with Windows Only Authentication. For SqlClient to work with MSDE, you will
- need to change the setting.</a>
-
- <li>If using MSDE, you might need to create a new user with password. Give
- this user access to various databases in this MSDE instance. Also, for each
- database, give this new user at least SELECT access to the various tables you want
- to retrieve data from.</li>
-
- <li>If you have Enterprise Manager, you can easily change the authentication mode
- for both MSDE and Microsoft SQL Server. To change the authentication mode in
- Enterprise Mananger, select the instance, right-click on it, and select properites.
- The SQL Server properties dialog for that instance will pop up. Choose the Security
- tab. Change the authentication from Windows Only to SQL Server and Windows. If
- the instance of your database does not show up in Enterprise Manager, Register first
- by selecting the Action menu and choosing New SQL Server Registration.</li>
- - <li>Located at mcs/class/System.Data/Test is a test for System.Data.SqlClient - named SqlTest.cs and you could use this as a basis for your test.</li> - - <li>Mono's SqlClient does not support trusted connections - nor integrated security. You can not use this when connecting. You need - to explicitly use a User ID and Password - authenticated by SQL Server.</li> - - <li>Has a connection string format for SQL Server Authentication: -<pre> - Server=hostname;Database=databaseName;User ID=userid;Password=password -</pre> - </li> - <li>Has a connection string format for NT Authentication: -<pre> - Server=hostname;Database=databaseName;User ID=windowsUserid;Password=windowsPassword;Integrated Security=SSPI -</pre> - </li> - - <li>The Server part can be used three ways: - - <table border=1> - <tr> - <td><b>Server Definition</b></td> <td><b>Example</b></td> - </tr> - - <tr> - <td>hostname</td> <td>Server=MYHOST</td> - </tr> - - <tr> - <td>hostname,port</td> <td>Server=MYHOST,1433</td> - </tr> - - <tr> - <td>hostname\\instance</td> <td>Server=MYHOST\\NETSDK</td> - </tr> - </table> - </li> - - <li>C# Example: -<pre> - using System; - using System.Data; - using System.Data.SqlClient; - - public class Test - { - public static void Main(string[] args) - { - string connectionString = - "Server=localhost;" + - "Database=pubs;" + - "User ID=myuserid;" + - "Password=mypassword;"; - IDbConnection dbcon; - dbcon = new SqlConnection(connectionString); - dbcon.Open(); - IDbCommand dbcmd = dbcon.CreateCommand(); - string sql = - "SELECT fname, lname " + - "FROM employee"; - dbcmd.CommandText = sql; - IDataReader reader = dbcmd.ExecuteReader(); - while(reader.Read()) { - string FirstName = (string) reader["fname"]; - string LastName = (string) reader["lname"]; - Console.WriteLine("Name: " + - FirstName + " " + LastName); - } - // clean up - reader.Close(); - reader = null; - dbcmd.Dispose(); - dbcmd = null; - dbcon.Close(); - dbcon = null; - } - } -</pre> - </li> - <li>Building C# Example: - <ul> - <li>Save the example to a file, such as, TestExample.cs</li> - <li>Build on Linux: -<pre> - mcs TestExample.cs -r System.Data.dll -</pre> - </li> - <li>Build on Windows via Cygwin: -<pre> - mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \ - TestExample.cs -r System.Data.dll -</pre> - </li> - </ul> - </li> - <li>Running the Example: -<pre> -mono TestExample.exe -</pre> - </li> - -</ul> - diff --git a/doc/sqlite b/doc/sqlite deleted file mode 100755 index 89dace1c929..00000000000 --- a/doc/sqlite +++ /dev/null @@ -1,143 +0,0 @@ -* SQL Lite Data Provider - -<ul> - <li>ADO.NET Data Provider for - the <a href"http://www.hwaci.com/sw/sqlite/">SQL Lite</a> which - is an embeddable SQL database engine</li> - - <li>From the SQL Lite web page: SQLite is a C library that
- implements an embeddable SQL database engine. Programs that link with
- the SQLite library can have SQL database access without
- running a separate RDBMS process. The distribution
- comes with a standalone command-line access program (sqlite) that
- can be used to administer an SQLite database and which serves
- as an example of how to use the SQLite library. SQLite is not a client library
- used to connect to a big database server. SQLite is the server. The SQLite
- library reads and writes directly to and from the database files on disk.</li>
- - <li>SQL Lite can be downloaded - from <a href"http://www.hwaci.com/sw/sqlite/download.html">here</a>. - binaries exist for Linux and Windows. sqlite.dll on Windows - and sqlite.so on Linux. The source code is available too.</li> - - <li>Exists in namespace and assembly Mono.Data.SqliteClient</li> - - <li>Created by Vladimir Vukicevic so he could have a database of - thumbnail images for mPhoto. mPhoto is GUI application - for cataloging images. mPhoto runs on Mono - and uses <a href="http://www.go-mono.com/gtk-sharp.html">GTK#</a> for its GUI.</li> - - <li>Bugs with Mono or the data provider should be reported - in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you - do not have Bugzilla user account, it is free - and easy to - create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> - -</ul> - -** Current Status - -<ul> - <li>Able to connect, execute commands, and retrieve data...</li> - - <li>Works in mPhoto by providing access to a SQL Lite database to store images.</li> -</ul> - -** Action Plan - -<ul> - <li>Create a DataAdapter for SQL Lite named SqliteDataAdapter that can be used to - Fill a DataTable in a DataSet</li> - - <li>Get the method GetSchemaTable() in class SqliteDataReader to return a DataTable - that works</li> -</ul> - -** Testing - -<ul> - <li>Have a working mcs and mono</li> - - <li>Make sure Mono.Data.SqliteClient.dll was built and is installed - in the same place as the mono class libraries.</li> - - <li>If you do not have <a href"http://www.hwaci.com/sw/sqlite/download.html">SQL Lite</a>, - download it. There are binaries for Windows and Linux.</li> - - <li>There is a test named SqliteTest.cs found at mcs/class/Mono.Data.SqliteTest/Test</li> - - <li>Has a connection string format of "URI=file:some/path". For example, - the connection string "URI=file:SqliteTest.db" will use the database file - named SqliteTest.db, if it does not exist, the file will be created.</li> - - <li>C# Example: -<pre> - using System; - using System.Data; - using Mono.Data.SqliteClient; - - public class Test - { - public static void Main(string[] args) - { - string connectionString = "URI=file:SqliteTest.db"; - IDbConnection dbcon; - dbcon = new SqliteConnection(connectionString); - dbcon.Open(); - IDbCommand dbcmd = dbcon.CreateCommand(); - // requires a table to be created named employee - // with columns firstname and lastname - // such as, - // CREATE TABLE employee ( - // firstname varchar(32), - // lastname varchar(32)); - string sql = - "SELECT firstname, lastname " + - "FROM employee"; - dbcmd.CommandText = sql; - IDataReader reader = dbcmd.ExecuteReader(); - while(reader.Read()) { - string FirstName = (string) reader[0]; - string LastName = (string) reader[1]; - Console.WriteLine("Name: " + - FirstName + " " + LastName); - } - // clean up - reader.Close(); - reader = null; - dbcmd.Dispose(); - dbcmd = null; - dbcon.Close(); - dbcon = null; - } - } -</pre> - </li> - <li>Building C# Example: - <ul> - <li>Save the example to a file, such as, TestExample.cs</li> - <li>Build on Linux: -<pre> - mcs TestExample.cs -r System.Data.dll \ - -r Mono.Data.SqliteClient.dll -</pre> - </li> - <li>Build on Windows via Cygwin: -<pre> - mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \ - TestExample.cs \ - -lib:C:/cygwin/home/MyHome/mono/install/lib \ - -r System.Data.dll \ - -r Mono.Data.SqliteClient.dll -</pre> - </li> - </ul> - </li> - <li>Running the Example: -<pre> -mono TestExample.exe -</pre> - </li> - -</ul> - diff --git a/doc/status b/doc/status deleted file mode 100644 index 64948ba312f..00000000000 --- a/doc/status +++ /dev/null @@ -1,40 +0,0 @@ -* Project Status - - - Pieces of Mono that have been implemented: - - <ul> - * C# compiler: The C# compiler is mostly complete, a - few features are still missing (for a list, check the - <a href="c-sharp.html">C# compiler</a> web page. - - * The Mono JIT engine (<b>mono</b>. The JIT engine is - the real - virtual machine that we support. It is - currently functional, and we are improving its speed, - and making it feature complete. - - * A CIL bytecode interpreter (<b>mint</b>). This - currently can be used to run most .NET programs - (modulo the fact that our class libraries are not - complete enough). - - <b>mint</b> can currently run the Mono C# compiler and - the compiler generates valid code. - - We use <b>mint</b> as a reference implementation of - the runtime environment and to quickly support - non-Intel platforms. - - * Metadata library: Can currently parse - and load information from .NET modules (executables - and DLL files). - - * Disassembler: Can disassemble .NET modules. Still - lacking exception handling as well as useful debugging - tools (hex dumping, token dumping). - - * Class Libraries: You can check the current status in the - <a href="class-status.html">Class Status page</a>. - </ul> - diff --git a/doc/sybase b/doc/sybase deleted file mode 100755 index 85deca1a67c..00000000000 --- a/doc/sybase +++ /dev/null @@ -1,153 +0,0 @@ -* Sybase Data Provider - -<ul> - <li>ADO.NET Provider for Sybase SQL Server databases</li> - - <li>Exists in namespace Mono.Data.SybaseClient and assembly Mono.Data.SybaseClient</li> - - <li>Created by Tim Coleman</li> - - <li>Used the <a href="http://www.freetds.org/">FreeTDS</a> and - <a href="http://jtds.sourceforge.net/">jTDS</a> projects as resources.</li> - - <li>Implemented in 100% C#</li> - - <li>Is similar to the Mono.Data.TdsClient and System.Data.SqlClient providers.</li> - - <li>Requires the assembly Mono.Data.Tds.dll which implements the TDS protocol in 100% C#.</li> - - <li>Uses TDS Protocol Version 5.0</li> - - <li>Bugs with Mono or the data provider should be reported - in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you - do not have Bugzilla user account, it is free - and easy to - create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> - - -</ul> - -** Current Status - -<ul> - <li>Able to connect to Sybase databases</li> - - <li>SQL commands can be executed - via ExecuteNonQuery() of a SybaseCommand.</li> - - <li>SQL aggregates can be executed and a single row and single column - result can be retrieved via ExecuteScalar() of a SybaseCommand</li> - - <li>SQL queries can be executed via ExecuteReader() and results - can be retrieved via SybaseDataReader.</li> - - <li>a DataTable with schema info about a result can be gotten via GetSchemaTable() - in a SybaseDataReader</li> - - <li>Data can be filled in a DataTable in a DataSet via a SybaseDataAdapter</li> -</ul> - -** Action plan - -<ul> - <li>Connection timeouts is being developed now. - - <li>Needs more testing... - -</ul> - -** Testing - -<ul> - <li>Have a working mono and mcs installed</li> - - <li>Have access to a Sybase database - or either download it: - <ul> - <li><a href="http://www.sybase.com/downloads">Sybase</a></li> - </ul> - </li> - - <li>Located at mcs/class/System.Data/Test is a test for System.Data.SqlClient - named SqlTest.cs and you could use this as a basis for your test.</li> - - <li>Has a connection string format: -<pre> - Server=hostname;Database=databaseName;User ID=userid;Password=password -</pre> - </li> - <li>The Server part can be used two ways: - <ul> - <li>hostname - "Server=MYHOST"</li> - <li>hostname,port - "Server=MYHOST,1533"</li> - </ul> - </li> - - <li>C# Example: -<pre> - using System; - using System.Data; - using Mono.Data.SybaseClient; - - public class Test - { - public static void Main(string[] args) - { - string connectionString = - "Server=localhost;" + - "Database=pubs;" + - "User ID=myuserid;" + - "Password=mypassword;"; - IDbConnection dbcon; - dbcon = new SybaseConnection(connectionString); - dbcon.Open(); - IDbCommand dbcmd = dbcon.CreateCommand(); - string sql = - "SELECT fname, lname " + - "FROM employee"; - dbcmd.CommandText = sql; - IDataReader reader = dbcmd.ExecuteReader(); - while(reader.Read()) { - string FirstName = (string) reader["fname"]; - string LastName = (string) reader["lname"]; - Console.WriteLine("Name: " + - FirstName + " " + LastName); - } - // clean up - reader.Close(); - reader = null; - dbcmd.Dispose(); - dbcmd = null; - dbcon.Close(); - dbcon = null; - } - } -</pre> - </li> - <li>Building C# Example: - <ul> - <li>Save the example to a file, such as, TestExample.cs</li> - <li>Build on Linux: -<pre> - mcs TestExample.cs -r System.Data.dll \ - -r Mono.Data.SybaseClient.dll -</pre> - </li> - <li>Build on Windows via Cygwin: -<pre> - mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \ - TestExample.cs \ - -lib:C:/cygwin/home/MyHome/mono/install/lib \ - -r System.Data.dll -r Mono.Data.SybaseClient.dll -</pre> - </li> - </ul> - </li> - <li>Running the Example: -<pre> -mono TestExample.exe -</pre> - </li> - -</ul> - diff --git a/doc/tds-providers b/doc/tds-providers deleted file mode 100644 index 6442e69601a..00000000000 --- a/doc/tds-providers +++ /dev/null @@ -1,164 +0,0 @@ -* Design of the Microsoft SQL Server, Sybase, and TDS Data Providers in Mono - - <ul> - * After much discussion among the Mono ADO.NET developers, - we have come up with the design of implementing a Sybase, Microsoft - SQL Server, and TDS Generic ADO.NET providers. These providers have - been created and are actively developed by Tim Coleman. - - * Since Sybase and Microsoft SQL Server databases both - use the TDS protocol for data access, and other implementations - of TDS (FreeTDS and jTDS) have included support for multiple - versions of the TDS, we have decided to do the same. - - * The TdsClient ADO.NET provider will be Mono's first provider - written completely in C# without any dependencies except - the usual suspects: corlib.dll, System.dll, and System.Xml.dll. - </ul> - -* New ADO.NET Providers - -<p>There will be three ADO.NET providers that will use TDS. - - <ol> - <li><p>Mono.Data.SybaseClient namepace and assembly will - hold the ADO.NET provider for Sybase SQL Server database. - This provider uses TDS version 5.0 which - can only be used with Sybase databases. - - <li><p>System.Data.SqlClient namespace and System.Data assembly - will hold the ADO.NET provider - for Microsoft SQL Server 7.0/2000 databases. This provider is to be - compatible with SqlClient in Microsoft .NET and uses TDS version 7.0 - which only supports Microsoft SQL Server 7.0/2000. - There is TDS version 8.0 - which we will need to support as well, but it is used for - Microsoft SQL Server 2000 databases. - - <li><p>Mono.Data.TdsClient namespace and assembly is a generic - provider for older TDS databases. This provider will default to - using TDS version 4.2 which can be used by older Sybase and - Microsoft SQL Server databases. - </ol> - -* Building The New Providers - - <p> All three providers will use common internal code - at Mono.Data.TdsClient.Internal. Any classes in - Mono.Data.TdsClient.Internal will have the internal - keyword and will be built with the assembly of that provider. - <ol> - <li><p>SqlClient will build its assembly System.Data using files - from System.Data, System.Data.SqlClient, System.Data.SqlTypes, - System.Data.Common, and Mono.Data.TdsClient.Internal. - - <p>SqlClient - will only reference the usual - suspects: corlib.dll, System.dll, and System.Xml.dll. SqlClient will be - a wrapper around TdsClient.Internal, but provide specific functionality to - Microsoft SQL Server 7.0/2000 databases. - - <p>SqlClient build example: - -<pre> - mcs -target:library -out:System.Data.dll \ - System.Data.SqlClient/*.cs \ - ..\Mono.Data.TdsClient\Mono.Data.TdsClient.Internal\*.cs \ - [any other classes in System.Data assembly...] \ - -r corlib.dll -r System.dll -r System.Xml.dll -</pre> - - <li><p>SybaseClient will build its assembly Mono.Data.SybaseClient using - files from Mono.Data.SybaseClient and Mono.Data.TdsClient.Internal. - SybaseClient will reference - the usual suspects plus System.Data.dll SybaseClient will - be a wrapper around TdsClient.Internal, but provide specific - functionality to Sybase. - - <p>SybaseClient build example: - -<pre> - mcs -target:library -out:Mono.Data.SybaseClient.dll \ - Mono.Data.SybaseClient\*.cs \ - ..\Mono.Data.TdsClient\Mono.Data.TdsClient.Internal\*.cs - -r corlib.dll -r System.dll -r System.Xml.dll -r System.Data.dll -</pre> - - <li><p>TdsClient will build its assembly Mono.Data.TdsClient - using files from Mono.Data.TdsClient - and Mono.Data.TdsClient.Internal. TdsClient will reference the - usual suspects plus System.Data.dll TdsClient is a wrapper - provider around TdsClient.Internal used for generic - unit tests. TdsClient will a wrapper around TdsClient.Internal - as a generic TDS provider - and allow TDS configuration options not exposed in SqlClient - nor SybaseClient, such as, TdsVersion will be exposed in TdsClient - but not in SqlClient nor SybaseClient. - - <p>TdsClient build example: - -<pre> -mcs -target:library -out:Mono.Data.TdsClient.dll \ - Mono.Data.TdsClient\*.cs \ - Mono.Data.TdsClient.Internal\*.cs \ - -r corlib.dll -r System.dll -r System.Xml.dll -r System.Data.dll -</pre> - </ol> - -* Classes in Mono.Data.TdsClient.Internal will: - - <ul> - <li>use the internal keyword to prevent exposing these classes - to the System.Data.dll assembly. - - <li> implement the ADO.NET interfaces just like any other ADO.NET provider, such as, - IDbConnection, IDbCommand, IDataReader, IDataRecord, IDataAdapter, etc... - - <li> be sealed just like other providers - - <li> provide features to be directly used by the SqlClient and SybaseClient - providers, such - as, setting the default TDS version: SqlClient to 7.0 and SybaseClient - to 5.0 and TdsClient to 4.2. - - <li> be written completely in C# or IL assembly language (if need be). - - <li> implement the TDS protocol version 4.2, 5.0, 7.0, and 8.0. This - is where most of the - work will take place. - - <li> be an internal ADO.NET provider to the public ADO.NET providers: - System.Data.SqlClient, Mono.Data.SybaseClient, and Mono.Data.TdsClient. - </ul> - -* Implementation Details of the TDS Protocol - - <ul> - * will be implemented in pure C# from scratch - - * will reside in Mono.Data.TdsClient.Internal - - * will use FreeTDS and jTDS as rerferences. - </ul> - -* More Information - - <ul> - * <a href="http://www.freetds.org/">FreeTDS</a> is C API that implements - the TDS protocol. Has libraries for tds, ctlib, and dblib. It builds - and runs on Windows, Linux, and other platforms. FreeTDS provides - data access to Microsoft SQL Server and Sybase databases. - - * <a href="http://jtds.sf.net/">jTDS</a> is a 100% Java JDBC provider - for Microsoft SQL Server and Sybase databases. - - * <a href="http://www.freetds.org/tds.html">TDS Protocol</a> - </ul> - -* Contribute - - <p>Anybody willing to help? If so, - contact any of the people working on the ADO.NET support - in Mono: Rodrigo Moya, Tim Coleman, Daniel Morgan, Brian Ritchie, - Vladimir Vukicevic, Ville Palo, Franklin Wise, and others. - diff --git a/doc/tdsclient b/doc/tdsclient deleted file mode 100755 index 2c58aea698f..00000000000 --- a/doc/tdsclient +++ /dev/null @@ -1,157 +0,0 @@ -* TDS Generic Provider - -<ul> - <li>ADO.NET Provider for older Sybase and Microsoft SQL Server databases</li> - - <li>Exists in namespace Mono.Data.TdsClient and assembly Mono.Data.TdsClient</li> - - <li>Created by Tim Coleman</li> - - <li>Used the <a href="http://www.freetds.org/">FreeTDS</a> and - <a href="http://jtds.sourceforge.net/">jTDS</a> projects as resources.</li> - - <li>Implemented in 100% C#</li> - - <li>Is similar to the Mono.Data.SybaseClient and System.Data.SqlClient providers.</li> - - <li>Requires the assembly Mono.Data.Tds.dll which implements the TDS protocol in 100% C#.</li> - - <li>Uses TDS Protocol Version 4.2 by default</li> - - <li>Bugs with Mono or the data provider should be reported - in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you - do not have Bugzilla user account, it is free - and easy to - create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> - -</ul> - -** Current Status - - -<ul> - <li>Only builds on Windows currently due to mcs does not support modules and mcs - has problems with code that is internal.</li> - - <li>Able to connect to Microsoft SQL Server and Sybase databases</li> - - <li>SQL commands can be executed - via ExecuteNonQuery() of a TdsCommand.</li> - - <li>SQL aggregates can be executed and a single row and single column - result can be retrieved via ExecuteScalar() of a TdsCommand</li> - - <li>SQL queries can be executed via ExecuteReader() and results - can be retrieved via TdsDataReader.</li> - - <li>a DataTable with schema info about a result can be gotten via GetSchemaTable() - in a TdsDataReader</li> - - <li>Data can be filled in a DataTable in a DataSet via a TdsDataAdapter</li> -</ul> - -** Action plan - -<ul> - <li>Connection timeouts is being developed now.</li> - - <li>TODO</li> -</ul> - -** Testing - -<ul> - <li>Have a working mono and mcs installed</li> - - <li>Have access to a Sybase or Microsoft SQL Server database - or either download it: - <ul> - <li><a href="http://www.microsoft.com/sql/default.asp">Microsoft SQL Server</a></li> - <li><a href="http://www.sybase.com/downloads">Sybase</a></li> - </ul> - </li> - <li>If using Microsoft SQL Server 2000, make sure - you are using at least Service Pack 3 for Microsoft SQL Server 2000</li> - - <li>Located at mcs/class/System.Data/Test is a test for System.Data.SqlClient - named SqlTest.cs and you could use this as a basis for your test.</li> - - <li>Has a connection string format: -<pre> - Server=hostname;Database=databaseName;User ID=userid;Password=password -</pre> - </li> - <li>The Server part can be used two ways: - <ul> - <li>hostname - "Server=MYHOST"</li> - <li>hostname,port - "Server=MYHOST,1533"</li> - </ul> - </li> - - <li>C# Example: -<pre> - using System; - using System.Data; - using Mono.Data.TdsClient; - - public class Test - { - public static void Main(string[] args) - { - string connectionString = - "Server=localhost;" + - "Database=pubs;" + - "User ID=myuserid;" + - "Password=mypassword;"; - IDbConnection dbcon; - dbcon = new TdsConnection(connectionString); - dbcon.Open(); - IDbCommand dbcmd = dbcon.CreateCommand(); - string sql = - "SELECT fname, lname " + - "FROM employee"; - dbcmd.CommandText = sql; - IDataReader reader = dbcmd.ExecuteReader(); - while(reader.Read()) { - string FirstName = (string) reader["fname"]; - string LastName = (string) reader["lname"]; - Console.WriteLine("Name: " + - FirstName + " " + LastName); - } - // clean up - reader.Close(); - reader = null; - dbcmd.Dispose(); - dbcmd = null; - dbcon.Close(); - dbcon = null; - } - } -</pre> - </li> - <li>Building C# Example: - <ul> - <li>Save the example to a file, such as, TestExample.cs</li> - <li>Build on Linux: -<pre> - mcs TestExample.cs -r System.Data.dll \ - -r Mono.Data.TdsClient.dll -</pre> - </li> - <li>Build on Windows via Cygwin: -<pre> - mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \ - TestExample.cs \ - -lib:C:/cygwin/home/MyHome/mono/install/lib \ - -r System.Data.dll -r Mono.Data.TdsClient.dll -</pre> - </li> - </ul> - </li> - <li>Running the Example: -<pre> -mono TestExample.exe -</pre> - </li> -</ul> - diff --git a/doc/testing b/doc/testing deleted file mode 100644 index d8504b1f34c..00000000000 --- a/doc/testing +++ /dev/null @@ -1,269 +0,0 @@ -* Testing - - Testing is an important part of the Mono project: every one of its - three major components has a test suite tailored for its needs. This - is very helpful, because in the course of developing the software it - is very common to introduce bugs in existing code. A test suite - helps us fix the bugs as soon as they are introduced. - - There are various kinds of tests in Mono: - <ul> - <li><a href="#unit"><b>Class Library Unit - Tests:</b></a> These are used to test the class - libraries. - - <li><a href="#compiler"><b>Compiler tests</b></a>: Both - tests that should pass and tests that should fail are included. - - <li><a href="#runtime"><b>Runtime tests</b></a>: Tests for - the virtual machine. - - <li><a href="#aspnet"><b>ASP.NET tests</b></a>: ASP.NET tests. - - <li><a href="#ws"><b>Web Services tests</b></a>: Web Services - client/server tests. - </ul> - -<a name="unit"></a> -* Class Library Tests - - All classes in Mono libraries should have comprehensive unit test - suites to go with them. Unit testing is a software engineering - methodology that makes it easier to build correct code. Every - method in every class should have a set of tests to verify - that they work correctly. Mono also needs a testing framework - to make it easy to write and run lots of tests. - - In some classes, we might also provide standalone tests because of - some reasons such as too huge testcases, another downloading and so on. - (For example, managed XSLT has standalone test which downloads and - expands some megabytes of OASIS test suite.) - - Here I list them up as long as I know. If you are going to add another - standalone tests, please add one line here. It is also recommended that - you add some notes on how to build and run tests. - - <ul> - - * Mono.Data/test/ - * System.Data/Test, and some individual ADO.NET libraries: - there are some standalone tests. See the bottom of <a href="ado-net.html"> - ADO.NET page</a> for detail. - * System.Web/Test/TestMonoWeb : see README - * System.Web.Services/Test/standalone : see README - * System.Windows.Forms/SWFTest/ - * System.XML/Tests/System.Xml.Schema/standalone_tests : see README - * System.XML/System.Xml.Serialization/standalone_tests/ - * System.XML/Tests/System.Xml.Xsl/standalone_tests : see README - - </ul> - -** Getting started - - If you are new to writing NUnit tests, there is a template you may use - to help get started. The file is: - - <b>mcs/class/doc/TemplateTest.cs</b> - - Save a copy of this file in the appropriate test subdirecty - (see below), and replace all the {text} markers with - appropriate code. Comments in the template are there to guide - you. You should also look at existing tests to see how other - people have written them. - mcs/class/corlib/Test/System.Collections/CollectionBaseTest.cs - is a small one that might help. - - The directory that will contain your new file depends on the - assembly/namespace of the class for which you are creating the - tests. Under mcs/class there is a directory for each - assembly. In each assembly there is a Test directory, - e.g. mcs/class/corlib/Test. In the Test directory there are - sub-directories for each namespace in the assembly, - e.g. mcs/class/corlib/Test/Sytem. Put your new test file in - the appropriate sub-directory under Test for the class you are - testing. - - Once all of that is done, you can do a 'make test' from the top mcs - directory. Your test class needs also to be listed in the - .sources file at the top of the Test directory. - -* Tips on writing Unit tests. - - You should look at the <a href="http://nunit.org">NUnit documentation</a>, - as it is a fantastic product, and includes fantastic documentation, - but here are some tips for those of you who are already reading - this web page. - - -** Provide an unique error message for Assert() - - Include an unique message for each Assert() so that when the assert - fails, it is trivial to locate it in the source. Otherwise, it may be - difficult to determine which part of the test is failing. A good way - to ensure unique messages is to use something like #A01, #A02 etc. - - Ok: - <pre> - - AssertEquals("array match", compare[0], i1[0]); - AssertEquals("array match", compare[1], i1[1]); - AssertEquals("array match", compare[2], i1[2]); - AssertEquals("array match", compare[3], i1[3]); - </pre> - - Excellent: - <pre> - AssertEquals("#A01", compare[0], i1[0]); - AssertEquals("#A02", compare[1], i1[1]); - AssertEquals("#A03", compare[2], i1[2]); - AssertEquals("#A04", compare[3], i1[3]); - </pre> - - Once you used such a number in an Assert(), don't change it later on - - people might use it it identify the test in bug reports or in mailing - lists. - -** Use AssertEquals() to compare things, not Assert(). - - Do not compare two values with Assert() - if the test fails, - people have no idea what went wrong while AssertEquals() - reports the failed value. - - Ok: - <pre> - Assert ("A01", myTicks[0] == t1.Ticks); - </pre> - - Excellent: - <pre> - AssertEquals ("A01", myTicks[0], t1.Ticks); - </pre> - -** Test your test with the Microsoft runtime - - If possible, try to run your testsuite with the Microsoft runtime on - .NET on Windows and make sure all tests in it pass. This is especially - important if you're writing a totally new testcase - without this - check you can never be sure that your testcase contains no bugs .... - - Don't worry if you're writing your test on Linux, other people can - test it for you on Windows. - - Sometimes you may discover that a test doesn't show the expected - result when run with the Microsoft runtime - either because there is a - bug in their runtime or something is misleading or wrong in their - documentation. In this case, please put a detailed description of the - problem to mcs/class/doc/API-notes and do also report it to the - <a href="mailing-lists.html">mailing list</a> - we'll forward this to the - Microsoft people from time to time to help them fix their documentation - and runtime. - -** Unit tests. - - Why do unit testing? It becomes simple to run automated tests - for the whole library. Unit tests are a safety net - you can - change part of the code and verify that you haven't broken - anything. Ideally, tests are written before the actual library - code itself. And every time a bug is discovered, a test should - be written to demonstrate the bug and its fix. Then, if - you ever reintroduce the bug, you will know immediately. For - more info, read <a - href="http://junit.sourceforge.net/doc/testinfected/testing.htm"> - JUnit Test Infected: Programmers Love Writing Tests</a>. - - -** Getting Started - - We welcome all contributions to the Class Libary Test Suite. - - There is information to help you get started in CVS at - mcs/class/doc/NUnitGuidelines. Once you have written your test, please - post it to <a href="mailing-lists.html">mono-list</a>. - - Someone will make sure to add the file or apply the patch as - appropriate. If you plan to be an on-going contributor and - would like to get cvs account, email <a href="mailto:miguel@ximian.com">miguel</a>. - - Normally, after you send a couple of well-written new files - and/or patches to the list, you will be given cvs access. - -<a name="compiler"></a> -* Compiler tests - - Mono ships with three compilers: C#, VB.NET and JScript. The - tests are ran by running the makefile target `make - run-test-local' in the appropriate directory. - - The C# compilation tests live in mcs/tests, and the C# error - tests live in mcs/errors. - - The VB.NET compilation tests live in mcs/btests. - -<a name="runtime"></a> -* Runtime Tests - - These tests verify the virtual machine, to run these tests, do: - -<pre> - cd mono/mono/tests - make test -</pre> - -<a name="aspnet"></a> -* ASP.NET tests - - XSP, the Mono ASP.NET server has tests for ASP.NET pages. It uses - <a href="http://nunitasp.sourceforge.net">NUnitAsp</a>. Right now - it only has standalone tests, ie., tests that do not need their own - global.asax or web.config files. - - If you want to run them, get the xsp CVS module and install it. Then: -<pre> - cd xsp/nunit-tests - make - cd standalone - xsp -</pre> - - And from another terminal: -<pre> - cd xsp/nunit-tests/standalone - nunit-console standalone-tests.dll -</pre> - -<a name="ws"></a> -* Web Services tests - - The Test directory for the System.Web.Services assembly contains a - standalone test suite for testing web services. It tests: - - <ul> - <li>Proxy generation using the wsdl tool</li> - <li>Access to web services using the generated client proxies</li> - <li>Execution of web services in the server</li> - </ul> - - This suite not only tests web services running on XSP, but it can also test - services running on other platforms and that are available in internet. This - will help track down interoperability issues. - - To build the test suite, just run: - -<pre> - cd mcs/class/System.Web.Services/Test/standalone - xsp --root server -</pre> - - And from another terminal: -<pre> - cd mcs/class/System.Web.Services/Test/standalone - make - nunit-console testclient.dll -</pre> - - This will download the wsdl documents, generate the proxies, build a dll with - the proxies, and build the nunit tests. Then you can use nunit-console or - gnunit to run the tests (the nunit dll is testclient.dll). - - Read the README file in mcs/class/System.Web.Services/Test/standalone for - more info. diff --git a/doc/thanks b/doc/thanks deleted file mode 100644 index 5f2df36f9cd..00000000000 --- a/doc/thanks +++ /dev/null @@ -1,6 +0,0 @@ -* Thanks - - We would like to thank Tim O'Reilly, Brian Jepson and Nathan - Torkington for their help. - - Dave Winer for provided interesting comments and a to read. diff --git a/doc/todo b/doc/todo deleted file mode 100644 index 178950afe0d..00000000000 --- a/doc/todo +++ /dev/null @@ -1,53 +0,0 @@ -** System.Windows.Forms - - Progress on Windows.Forms has been good, but we need more work - on this area. Currently redrawing of controls is not - funcional. - -** Languages work - - Mono has work-in-progress implementations of JScript and the - VB.NET languages - - <ul> - <li>Write positive tests for those languages. - - <li>Write negative tests for those languages. - - <li>Mono-devel-list is the mailing list to discuss - improvements and fixes to those compilers. - </ul> - -** Debugger - - <ul> - <li>The Mono debugger needs some better widgets to - provide a useful environment, many of those have been - authored for Anjuta/gIDE, we should wrap those for the - debugger - - <li>Design a small tool-command-language like Tcl to - build the debugger on top of it. - - <li>Design work: a new UI design must be done - for the debugger and later implemented. - </ul> - -** Research topics - - <ul> - <li>Design and implement a command processor like the - Unix shell, but which uses .NET objects as commands. - This shell would be a CLS consumer ideally, and only - later a CLS producer. This should make it simple for - people to explore the .NET API interactively. - </ul> - -** IDE development - - Mono lacks an IDE, and we depend on third-parties to work on - these. - - <ul> - Sharp - </ul>
\ No newline at end of file diff --git a/doc/tools b/doc/tools deleted file mode 100644 index eabef48bb88..00000000000 --- a/doc/tools +++ /dev/null @@ -1,67 +0,0 @@ -* Tools - - We need a number of tools to make people productive using a - Mono-based solution. Some of these tools can be developed on - Windows before Mono is fully finished. - - All of these tools should be written using C#. - - For the tools that are typically command line tools: Try to - write these as components that could load their input from - streams or collections of streams, and implement the command - line tools as wrappers around those classes. - - For example, we will be making the C# compiler a component - that could be reused by applications that might have a use for - the various bits of the compiler (either to embed the - compiler, or reuse the code generator part of it). - - This is important so that these components (compiler, - assembler, linker, etc) can be integrated later into the - visual development environment (hopefully with the help of the - SharpDevelop hackers). - -TODO=ilasm,IL Assembler -** IL Assembler. - - This assembler should basically take as input a file - containing IL bytecodes as specified in the `Partition II' of - the ECMA spec, and produce a binary file. - -TODO=al,Assembly Linker -** Assembly Linker. - - This tool is used to construct assemblies, which are basically - deployment units for CLI executables. - -TODO=debugger,Debugger -** Debugger - - We will need a debugging API to debug CLI applications and - then a debugger component that can be used in an IDE - environment. - -TODO=ide,Integrated Development Environment -** Integrated Development Environment - - There is already a project to create a C# development - environment: <a - href="http://www.icsharpcode.net/OpenSource/SD/default.asp">SharpDevelop</a>. - People should work with the SharpDevelop hackers to produce a - unified development environment. - - Please work with the SharpDevelop hackers to build a good IDE. - We will work on creating an embedable compiler component and - an embeddable debugger component that can be used withing - SharpDevelop - -TODO=hbrowser,Help Browser -** Help Browser - - We need a good help browser that can be used to browse - documentation. Ideally this help browser can accept as input - XML Docbook input and an assorted set of file formats - (Microsoft Help, Unix manual pages, Unix Info pages) - - Look at the GNOME DevHelp for a good set of ideas on how to - implement this.
\ No newline at end of file diff --git a/doc/web/.cvsignore b/doc/web/.cvsignore deleted file mode 100644 index a023a6f9c7c..00000000000 --- a/doc/web/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -*.src -*.html diff --git a/doc/web/commands b/doc/web/commands deleted file mode 100644 index e31dbb1e5c2..00000000000 --- a/doc/web/commands +++ /dev/null @@ -1,78 +0,0 @@ -0,Home,index.html,index.src -1,Roadmap,mono-roadmap.html -1,FAQ,faq.html,faq.src -1,Screenshots,screenshots.html,screenshots.src -1,Team,team.html,team.src -1,Other sites,other.html,other.src -1,Old News,oldnews.html,oldnews.src -1,Bug Reporting,bugs.html,bugs.src -0,Mono,rationale.html,rationale.src -1,Runtime,runtime.html,runtime.src -2,Embedding,embedded-api.html,embedded-api.src -1,Classes,class-library.html,class-library.src -1,Gtk#,gtk-sharp.html,gtk-sharp.src -1,ASP.NET,asp-net.html,asp-net.src -1,ADO.NET,ado-net.html,ado-net.src -1,C# Compiler,c-sharp.html,c-sharp.src -1,VB Compiler,mbas.html,mbas.src -0,Download,download.html,download.src -1,CVS access,ccvs.html,ccvs.src -1,AnonCVS access,anoncvs.html,anoncvs.src -1,Forge,forge.html,forge.src -1,Compiling,compiling.html,compiling.src -0,Contributing,contributing.html,contributing.src -1,Hackers,hackers.html,hackers.src -1,Documentation,documentation.html,documentation.src -1,Class Docs,classlib-doc.html,classlib-doc.src -1,Test Suite,testing.html,testing.src -1,Mono TODO,mono-todo.html,mono-todo.src -1,Tools,tools.html,tools.src -1,Porting,porting.html,porting.src -2,PowerPC,ppc.html,ppc.src -1,HOWTO,mono-contribution-howto.html,mono-contribution-howto.src -0,Resources,resources.html,resources.src -1,Beginning,mono-beginning.html,mono-beginning.src -1,Mailing Lists,mailing-lists.html,mailing-lists.src -1,Blogs,http://www.go-mono.com/monologue/ -1,Ideas,ideas.html,ideas.src -1,Passport,passport.html,passport.src -1,Books,books.html,books.src -1,Papers,papers.html,papers.src -1,Languages,languages.html,languages.src -1,Debugging,jit-debug.html,jit-debug.src -1,Performance,performance.html,performance.src -0,Plans,plans.html,plans.src -1,Drawing,drawing.html,drawing.src -1,ADO.NET,ado-net.html,ado-net.src -2,ProviderFactory,provider-factory.html,provider-factory.src -2,Firebird Interbase,firebird.html,firebird.src -2,IBM DB2,ibmdb2.html,ibmdb2.src -2,Microsft SQL Server,sqlclient.html,sqlclient.src -2,MySQL,mysql.html,mysql.src -2,ODBC,odbc.html,odbc.src -2,OLE DB,oledb.html,oledb.src -2,Oracle,oracle.html,oracle.src -2,PostgreSQL,postgresql.html,postgresql.src -2,SQL Lite,sqlite.html,sqlite.src -2,Sybase,sybase.html,sybase.src -2,TDS Generic,tdsclient.html,tdsclient.src -2,TDS Providers,tds-providers.html,tds-providers.src -1,Crypto,crypto.html,crypto.src -1,Java,java.html,java.src -1,Windows.Forms,winforms.html,winforms.src -1,XML Classes,xml-classes.html,xml-classes.src -0,Class Status,class-status.html,class-status.src,cm/cormissing.css,cm/cormissing.js -1,corlib,class-status-corlib.html,class-status-corlib.src,cm/cormissing.css,cm/cormissing.js -1,System,class-status-System.html,class-status-System.src,cm/cormissing.css,cm/cormissing.js -1,Xml,class-status-System.Xml.html,class-status-System.Xml.src,cm/cormissing.css,cm/cormissing.js -1,Data,class-status-System.Data.html,class-status-System.Data.src,cm/cormissing.css,cm/cormissing.js -1,Drawing,class-status-System.Drawing.html,class-status-System.Drawing.src,cm/cormissing.css,cm/cormissing.js -1,Web,class-status-System.Web.html,class-status-System.Web.src,cm/cormissing.css,cm/cormissing.js -1,Web.Services,class-status-System.Web.Services.html,class-status-System.Web.Services.src,cm/cormissing.css,cm/cormissing.js -1,Microsoft.VisualBasic,class-status-Microsoft.VisualBasic.html,class-status-Microsoft.VisualBasic.src,cm/cormissing.css,cm/cormissing.js -1,Windows.Forms,class-status-System.Windows.Forms.html,class-status-System.Windows.Forms.src,cm/cormissing.css,cm/cormissing.js -1,DirectoryServices,class-status-System.DirectoryServices.html,class-status-System.DirectoryServices.src,cm/cormissing.css,cm/cormissing.js -1,Formatters.Soap,class-status-System.Runtime.Serialization.Formatters.Soap.html,class-status-System.Runtime.Serialization.Formatters.Soap.src,cm/cormissing.css,cm/cormissing.js -1,Cscompmgd,class-status-Cscompmgd.html,class-status-Cscompmgd.src,cm/cormissing.css,cm/cormissing.js -1,System.Security,class-status-System.Security.html,class-status-System.Security.src,cm/cormissing.css,cm/cormissing.js -0,Contact,contact.html,contact.src diff --git a/doc/web/deploy/.cvsignore b/doc/web/deploy/.cvsignore deleted file mode 100755 index 2d19fc766d9..00000000000 --- a/doc/web/deploy/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.html diff --git a/doc/web/deploy/cm/c.gif b/doc/web/deploy/cm/c.gif Binary files differdeleted file mode 100644 index 02c347efd0b..00000000000 --- a/doc/web/deploy/cm/c.gif +++ /dev/null diff --git a/doc/web/deploy/cm/cormissing.css b/doc/web/deploy/cm/cormissing.css deleted file mode 100644 index 1f22da54273..00000000000 --- a/doc/web/deploy/cm/cormissing.css +++ /dev/null @@ -1,182 +0,0 @@ -.y IMG -{ - border: 0px; - padding: 0px; - margin: 0px; - margin-right: 4px; - vertical-align: middle; -} - -.y, .y_, -.n, .n_, -.c, .c_, -.c, .c_, -.d, .d_, -.en, .en_, -.i, .i_, -.s, .s_, -.e, .e_, -.f, .f_, -.m, .m_, -.o, .o_, -.p, .p_, -.r, .r_, -.x, .x_ -{ - FONT: 10px 'Verdana'; - margin-left: 20px; -} - -.y_ .n, -.y_ .n_, -.n_ .c, -.n_ .c_, -.n_ .s, -.n_ .s_, -.n_ .d, -.n_ .d_, -.n_ .en, -.n_ .en_, -.n_ .i, -.n_ .i_, -.c_ .c, -.c_ .c_, -.c_ .e, -.c_ .e_, -.c_ .f, -.c_ .f_, -.c_ .m, -.c_ .m_, -.c_ .o, -.c_ .o_, -.c_ .p, -.c_ .p_, -.c_ .r, -.c_ .r_, -.c_ .x, -.c_ .x_, -.c_ .i, -.c_ .i_, -.d_ .c, -.d_ .c_, -.d_ .e, -.d_ .e_, -.d_ .f, -.d_ .f_, -.d_ .m, -.d_ .m_, -.d_ .o, -.d_ .o_, -.d_ .p, -.d_ .p_, -.d_ .r, -.d_ .r_, -.d_ .x, -.d_ .x_, -.en_ .c, -.en_ .c_, -.en_ .e, -.en_ .e_, -.en_ .f, -.en_ .f_, -.en_ .m, -.en_ .m_, -.en_ .o, -.en_ .o_, -.en_ .p, -.en_ .p_, -.en_ .r, -.en_ .r_, -.en_ .x, -.en_ .x_, -.i_ .c, -.i_ .c_, -.i_ .e, -.i_ .e_, -.i_ .f, -.i_ .f_, -.i_ .m, -.i_ .m_, -.i_ .o, -.i_ .o_, -.i_ .p, -.i_ .p_, -.i_ .r, -.i_ .r_, -.i_ .x, -.i_ .x_, -.i_ .i, -.i_ .i_, -.s_ .c, -.s_ .c_, -.s_ .e, -.s_ .e_, -.s_ .f, -.s_ .f_, -.s_ .m, -.s_ .m_, -.s_ .o, -.s_ .o_, -.s_ .p, -.s_ .p_, -.s_ .r, -.s_ .r_, -.s_ .x, -.s_ .x_, -.s_ .i, -.s_ .i_, - -.e_ .r, -.e_ .r_, -.e_ .o, -.e_ .o_, -.f_ .r, -.f_ .r_, -.f_ .o, -.f_ .o_, -.m_ .r, -.m_ .r_, -.m_ .o, -.m_ .o_, -.o_ .r, -.o_ .r_, -.o_ .o, -.o_ .o_, -.p_ .r, -.p_ .r_, -.p_ .o, -.p_ .o_, -.r_ .r, -.r_ .r_, -.r_ .o, -.r_ .o_, -.x_ .r, -.x_ .r_, -.x_ .o, -.x_ .o_ -{ - display: none; -} - -.t -{ - cursor: pointer; - margin-right: 8px; -} - -.filter -{ - cursor: pointer; - vertical-align: middle; -} - - -.st -{ - margin-left: 20px; -} - -.l -{ - cursor: pointer; -} diff --git a/doc/web/deploy/cm/cormissing.js b/doc/web/deploy/cm/cormissing.js deleted file mode 100644 index 2f2e74dcb85..00000000000 --- a/doc/web/deploy/cm/cormissing.js +++ /dev/null @@ -1,395 +0,0 @@ -function toggle (elt) -{ - if (elt == null) - return; - - var eltLink = elt.firstChild; - if (eltLink != null && eltLink.className == 't') // toggle - { - var ich = elt.className.indexOf ('_'); - if (ich < 0) - { - eltLink.src = 'cm/tp.gif'; - elt.className += '_'; - } - else - { - eltLink.src = 'cm/tm.gif'; - elt.className = elt.className.slice (0, ich); - } - } -} - -function setView (elt, fView) -{ - var eltLink = elt.firstChild; - if (eltLink != null && eltLink.className == 't') // toggle - { - var ich = elt.className.indexOf ('_'); - if (ich < 0 && !fView) - { - eltLink.src = 'cm/tp.gif'; - elt.className += '_'; - } - else if (ich >= 0 && fView) - { - eltLink.src = 'cm/tm.gif'; - elt.className = elt.className.slice (0, ich); - } - } -} - -function trimSrc (strSrc) -{ - return strSrc.slice (strSrc.lastIndexOf ('/') + 1, strSrc.lastIndexOf ('.')); -} - -function getChildrenByTagName (elt, strTag) -{ - strTag = strTag.toLowerCase (); - var rgChildren = new Array (); - var eltChild = elt.firstChild; - while (eltChild) - { - if (eltChild.tagName && eltChild.tagName.toLowerCase () == strTag) - rgChildren.push (eltChild); - eltChild = eltChild.nextSibling; - } - return rgChildren; -} - -function viewAll (elt, dictTypes) -{ - var fView = false; - var rgImages = getChildrenByTagName (elt, 'IMG'); - var cImages = rgImages.length; - for (var iImage = 0; iImage < cImages; iImage++) - { - var strImage = trimSrc (rgImages [iImage].src); - if (dictTypes [strImage]) - { - fView = true; - break; - } - } - var rgElts = getChildrenByTagName (elt, 'DIV'); - var cElts = rgElts.length; - if (cElts != 0) - { - var iElt; - for (iElt = 0; iElt < cElts; iElt ++) - fView |= viewAll (rgElts [iElt], dictTypes); - } - elt.style.display = fView ? '' : 'none'; - return fView; -} - -function getView (elt) -{ - var eltLink = elt.firstChild; - if (eltLink != null && eltLink.className == 't') // toggle - { - var ich = elt.className.indexOf ('_'); - if (ich < 0) - return true; - } - return false; -} - -function getParentDiv (elt) -{ - if (elt) - { - do - { - elt = elt.parentNode; - } - while (elt && elt.tagName != 'DIV'); - } - - return elt; -} - -function getName (elt) -{ - var rgSpans = getChildrenByTagName (elt, 'SPAN'); - for (var iSpan = 0; iSpan < rgSpans.length; iSpan ++) - { - var span = rgSpans [iSpan]; - if (span.className == 'l') // label - { - if (span.innerText) - return span.innerText; - else - return span.firstChild.nodeValue; - } - } - return null; -} - -function clickHandler (evt) -{ - var elt; - if (document.layers) - elt = evt.taget; - else if (window.event && window.event.srcElement) - { - elt = window.event.srcElement; - evt = window.event; - } - else if (evt && evt.stopPropagation) - elt = evt.target; - - if (!elt.className && elt.parentNode) - elt = elt.parentNode; - - if (elt.className == 'l') // label - { - var strClass; - var strField; - var strNamespace; - var strAssembly; - - elt = getParentDiv (elt); - var strEltClass = elt.className; - if (strEltClass.charAt (strEltClass.length - 1) == '_') - strEltClass = strEltClass.slice (0, strEltClass.length - 1); - - if (strEltClass == 'x') // constructor - { - strField = 'ctor'; - elt = getParentDiv (elt); - } - else - if (strEltClass == 'm' || // method - strEltClass == 'p' || // property - strEltClass == 'e' || // event - strEltClass == 'f') // field - { - strField = getName (elt).toLowerCase (); - var match = strField.match ( /[\.A-Z0-9_]*/i ); - if (match) - strField = match [0]; - elt = getParentDiv (elt); - - } - - var strEltClass = elt.className; - if (strEltClass.charAt (strEltClass.length - 1) == '_') - strEltClass = strEltClass.slice (0, strEltClass.length - 1); - - if (strEltClass == 'c' || // class - strEltClass == 's' || // struct - strEltClass == 'i' || // struct - strEltClass == 'd' || // delegate - strEltClass == 'en') // enum - { - strClass = getName (elt); - if (strEltClass == 'en') - strField = null; - elt = getParentDiv (elt); - } - - var strEltClass = elt.className; - if (strEltClass.charAt (strEltClass.length - 1) == '_') - strEltClass = strEltClass.slice (0, strEltClass.length - 1); - - if (strEltClass == 'n') - { - strNamespace = getName (elt); - elt = getParentDiv (elt); - } - - var strEltClass = elt.className; - if (strEltClass.charAt (strEltClass.length - 1) == '_') - strEltClass = strEltClass.slice (0, strEltClass.length - 1); - - if (strEltClass == 'y') - { - strAssembly = getName (elt); - } - - if (evt.ctrlKey) - { - var strRoot = 'http://cvs.hispalinux.es/cgi-bin/cvsweb/mcs/class/'; - var strExtra = '?cvsroot=mono'; - - if (strAssembly) - { - if (strAssembly == 'mscorlib') - strAssembly = 'corlib'; - - strRoot = strRoot + strAssembly + '/'; - if (strNamespace) - { - strRoot = strRoot + strNamespace + '/'; - if (strClass) - { - strRoot += strClass + '.cs'; - strExtra += '&rev=1'; - } - } - window.open (strRoot + strExtra, 'CVS'); - } - } - else if (strNamespace) - { - var re = /\./g ; - strNamespace = strNamespace.toLowerCase ().replace (re, ''); - if (strClass) - strNamespace += strClass.toLowerCase () + 'class'; - if (strField) - strNamespace += strField; - if (strClass || strField) - strNamespace += 'topic'; - - window.open ('http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrf' + strNamespace + '.asp', 'MSDN'); - } - } - else - { - if (elt.parentNode && elt.parentNode.className == 't') // toggle - elt = elt.parentNode; - else if (elt.className != 't') // toggle - return; - - while (elt != null && elt.tagName != 'DIV') - elt = elt.parentNode; - - if (evt.shiftKey) - { - var rgElts = getChildrenByTagName (elt, 'DIV'); - var cElts = rgElts.length; - if (cElts != 0) - { - var fView = false; - var iElt; - for (iElt = 0; iElt < cElts; iElt ++) - { - if (getView (rgElts [iElt])) - { - fView = true; - break; - } - } - for (iElt = 0; iElt < cElts; iElt ++) - { - setView (rgElts [iElt], !fView); - } - } - } - else if (evt.ctrlKey) - { - setView (elt, true); - var eltParent = getParentDiv (elt); - while (eltParent) - { - var rgSiblings = getChildrenByTagName (eltParent, 'DIV'); - var cSiblings = rgSiblings.length; - for (var iSibling = 0; iSibling < cSiblings; iSibling++) - { - var eltSibling = rgSiblings [iSibling]; - if (eltSibling != elt) - { - setView (eltSibling, false); - } - } - elt = eltParent; - eltParent = getParentDiv (elt); - } - } - else - toggle (elt); - } - - return false; -} - -function filterTree () -{ - var eltMissing = document.getElementById ('missing'); - var eltTodo = document.getElementById ('todo'); - var eltExtra = document.getElementById ('extra'); - var eltErrors = document.getElementById ('errors'); - - var dictTypes = new Object (); - if (eltMissing.checked) - dictTypes ['sm'] = true; - if (eltTodo.checked) - dictTypes ['st'] = true; - if (eltErrors.checked) - dictTypes ['se'] = true; - if (eltExtra.checked) - dictTypes ['sx'] = true; -// dictTypes ['sc'] = true; - - viewAll (document.getElementById ('ROOT'), dictTypes); -} - -function selectMissing () -{ - toggleFilter ('missing'); -} - -function selectTodo () -{ - toggleFilter ('todo'); -} - -function selectExtra () -{ - toggleFilter ('extra'); -} - -function selectErrors () -{ - toggleFilter ('errors'); -} - -function toggleFilter (strFilter) -{ - var eltTodo = document.getElementById ('todo'); - var eltMissing = document.getElementById ('missing'); - var eltExtra = document.getElementById ('extra'); - var eltErrors = document.getElementById ('errors'); - - var eltToggle = document.getElementById (strFilter); - if (window && window.event && window.event.shiftKey) - { - eltMissing.checked = eltTodo.checked = eltExtra.checked = eltErrors.checked = false; - eltToggle.checked = true; - } - else - if (!eltTodo.checked && !eltMissing.checked && !eltExtra.checked && !eltErrors.checked) - { - eltMissing.checked = eltTodo.checked = eltExtra.checked = eltErrors.checked = true; - eltToggle.checked = false; - } - filterTree (); -} - -function onLoad () -{ - var eltMissing = document.getElementById ('missing'); - var eltTodo = document.getElementById ('todo'); - var eltExtra = document.getElementById ('extra'); - var eltErrors = document.getElementById ('errors'); - eltMissing.checked = eltTodo.checked = eltExtra.checked = eltErrors.checked = true; -} - -if (document.layers) -{ - document.captureEvents (Event.MOUSEUP); - document.onmouseup = clickHandler; -} -else if (document.attachEvent) -{ - document.attachEvent('onclick', clickHandler); -} -else if (document.addEventListener) -{ - document.addEventListener('click', clickHandler, false); -} -else - document.onclick = clickHandler; - diff --git a/doc/web/deploy/cm/d.gif b/doc/web/deploy/cm/d.gif Binary files differdeleted file mode 100644 index c9735952f33..00000000000 --- a/doc/web/deploy/cm/d.gif +++ /dev/null diff --git a/doc/web/deploy/cm/e.gif b/doc/web/deploy/cm/e.gif Binary files differdeleted file mode 100644 index 1137246bfae..00000000000 --- a/doc/web/deploy/cm/e.gif +++ /dev/null diff --git a/doc/web/deploy/cm/en.gif b/doc/web/deploy/cm/en.gif Binary files differdeleted file mode 100644 index 00026b77300..00000000000 --- a/doc/web/deploy/cm/en.gif +++ /dev/null diff --git a/doc/web/deploy/cm/f.gif b/doc/web/deploy/cm/f.gif Binary files differdeleted file mode 100644 index f78a2f53bbc..00000000000 --- a/doc/web/deploy/cm/f.gif +++ /dev/null diff --git a/doc/web/deploy/cm/i.gif b/doc/web/deploy/cm/i.gif Binary files differdeleted file mode 100644 index 56cd032a565..00000000000 --- a/doc/web/deploy/cm/i.gif +++ /dev/null diff --git a/doc/web/deploy/cm/m.gif b/doc/web/deploy/cm/m.gif Binary files differdeleted file mode 100644 index 75fe3586d48..00000000000 --- a/doc/web/deploy/cm/m.gif +++ /dev/null diff --git a/doc/web/deploy/cm/n.gif b/doc/web/deploy/cm/n.gif Binary files differdeleted file mode 100644 index f6fa746304d..00000000000 --- a/doc/web/deploy/cm/n.gif +++ /dev/null diff --git a/doc/web/deploy/cm/p.gif b/doc/web/deploy/cm/p.gif Binary files differdeleted file mode 100644 index b79d0dd7edb..00000000000 --- a/doc/web/deploy/cm/p.gif +++ /dev/null diff --git a/doc/web/deploy/cm/r.gif b/doc/web/deploy/cm/r.gif Binary files differdeleted file mode 100644 index a3ef0f38ef0..00000000000 --- a/doc/web/deploy/cm/r.gif +++ /dev/null diff --git a/doc/web/deploy/cm/s.gif b/doc/web/deploy/cm/s.gif Binary files differdeleted file mode 100644 index f2fd5c8aee2..00000000000 --- a/doc/web/deploy/cm/s.gif +++ /dev/null diff --git a/doc/web/deploy/cm/sc.gif b/doc/web/deploy/cm/sc.gif Binary files differdeleted file mode 100644 index b02afd9b2e0..00000000000 --- a/doc/web/deploy/cm/sc.gif +++ /dev/null diff --git a/doc/web/deploy/cm/se.gif b/doc/web/deploy/cm/se.gif Binary files differdeleted file mode 100644 index 1c46eaa5887..00000000000 --- a/doc/web/deploy/cm/se.gif +++ /dev/null diff --git a/doc/web/deploy/cm/sm.gif b/doc/web/deploy/cm/sm.gif Binary files differdeleted file mode 100644 index 0c7194786d5..00000000000 --- a/doc/web/deploy/cm/sm.gif +++ /dev/null diff --git a/doc/web/deploy/cm/st.gif b/doc/web/deploy/cm/st.gif Binary files differdeleted file mode 100644 index 067582cb398..00000000000 --- a/doc/web/deploy/cm/st.gif +++ /dev/null diff --git a/doc/web/deploy/cm/sx.gif b/doc/web/deploy/cm/sx.gif Binary files differdeleted file mode 100644 index 2c8ca547929..00000000000 --- a/doc/web/deploy/cm/sx.gif +++ /dev/null diff --git a/doc/web/deploy/cm/tb.gif b/doc/web/deploy/cm/tb.gif Binary files differdeleted file mode 100644 index ee68c5a356b..00000000000 --- a/doc/web/deploy/cm/tb.gif +++ /dev/null diff --git a/doc/web/deploy/cm/tm.gif b/doc/web/deploy/cm/tm.gif Binary files differdeleted file mode 100644 index 3c8f18aecea..00000000000 --- a/doc/web/deploy/cm/tm.gif +++ /dev/null diff --git a/doc/web/deploy/cm/tp.gif b/doc/web/deploy/cm/tp.gif Binary files differdeleted file mode 100644 index 8b7435361b7..00000000000 --- a/doc/web/deploy/cm/tp.gif +++ /dev/null diff --git a/doc/web/deploy/cm/y.gif b/doc/web/deploy/cm/y.gif Binary files differdeleted file mode 100644 index 08f00d4ea11..00000000000 --- a/doc/web/deploy/cm/y.gif +++ /dev/null diff --git a/doc/web/deploy/images/bgsquares.gif b/doc/web/deploy/images/bgsquares.gif Binary files differdeleted file mode 100644 index 864bcd44038..00000000000 --- a/doc/web/deploy/images/bgsquares.gif +++ /dev/null diff --git a/doc/web/deploy/images/bgsquares.png b/doc/web/deploy/images/bgsquares.png Binary files differdeleted file mode 100644 index a9e2bb94dbb..00000000000 --- a/doc/web/deploy/images/bgsquares.png +++ /dev/null diff --git a/doc/web/deploy/images/bgsquares.xcf.gz b/doc/web/deploy/images/bgsquares.xcf.gz Binary files differdeleted file mode 100644 index 200b5805615..00000000000 --- a/doc/web/deploy/images/bgsquares.xcf.gz +++ /dev/null diff --git a/doc/web/deploy/images/mono.gif b/doc/web/deploy/images/mono.gif Binary files differdeleted file mode 100644 index 298976a07b7..00000000000 --- a/doc/web/deploy/images/mono.gif +++ /dev/null diff --git a/doc/web/deploy/images/mono.png b/doc/web/deploy/images/mono.png Binary files differdeleted file mode 100644 index 21709009d60..00000000000 --- a/doc/web/deploy/images/mono.png +++ /dev/null diff --git a/doc/web/deploy/images/pixel.gif b/doc/web/deploy/images/pixel.gif Binary files differdeleted file mode 100644 index a4f37d7e02e..00000000000 --- a/doc/web/deploy/images/pixel.gif +++ /dev/null diff --git a/doc/web/deploy/images/pixel.png b/doc/web/deploy/images/pixel.png Binary files differdeleted file mode 100644 index 85cfd14929a..00000000000 --- a/doc/web/deploy/images/pixel.png +++ /dev/null diff --git a/doc/web/htmlify b/doc/web/htmlify deleted file mode 100644 index 46fe4ce4212..00000000000 --- a/doc/web/htmlify +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/perl -$q = 1; - -while (<>){ - chop; - if (/^\* (.*)$/){ - print "<h1>$1</h1>\n"; - } elsif (/^\*\* (.*)$/) { - print "<h3>$1</h3>\n"; - } elsif (/^\*\*\* (.*)$/) { - print "<h3>$1</h3>\n"; - } elsif (/^\*\*\*\* (.*)$/) { - print "<h4>$1</h4>\n"; - } elsif (/^$/) { - print "<p>\n"; - } elsif (/^\t\t\* (.*)$/) { - print "<li>$1\n"; - } elsif (/^\@item (.*)$/){ - $name = $link = $1; - $link =~ s/ //g; - print "<a name=\"$link\">\n"; - print "<h3>$name</h3>\n"; - } elsif (/^Q: (.*)$/){ - print "<p><a name=\"q$q\"></a><b>Question $q:</b> $1\n"; - $q++; - } elsif (/^A: (.*)$/){ - print "$1\n"; - } elsif (/^TODO=(.*),$/){ - print "<a name=\"$1\">\n"; - } else { - print "$_\n"; - } -} diff --git a/doc/web/icaza.pl b/doc/web/icaza.pl deleted file mode 100644 index ce8b87c44da..00000000000 --- a/doc/web/icaza.pl +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/perl -$q = 1; - -# Modified by Edwin Lima (edwinlima@hotmail.com; edwin.lima@nec-computers.com) -# Date: 08/21/01, The Netherlands -# $f: Variable used as a flag to create the list of questions on top of the question-answers set. This -# is the only way that I found to scan the questions which have a <CR><LF>, in such a way that I will not -# scan the answer together at same time. -# @aname: Buffer used to store the question-answers set to print them out just after the print of the -# questions. -# @href: Buffer used to store the anchors (only questions) to the questions-answers set on the bottom -# of the page. -# I opened explicitly the file for input (input.txt) but U can change this as it was originally. -# -# - -#comment this line if you are not open the file explicitly -#open(IN, "input.txt") || die "cannot open file input.txt" ; - -print("<A name=TOP>") ; - -#Uncomment line bellow to make it work as it was originally. -while (<>){ - -#comment line bellow - -#while (<IN>){ - chop; - if (/^\* (.*)$/){ - push(@aname,"<h1>$1</h1>\n"); -# print $body; - } elsif (/^\*\* (.*)$/) { - push(@aname, "<h2>$1</h2>\n"); - push(@href, "<h2>$1</h2>\n"); - } elsif (/^\*\*\* (.*)$/) { - push(@aname, "<h3>$1</h3>\n"); - - } elsif (/^$/) { - push(@aname, "<p>\n"); -# push(@href, "<p>\n"); NOT NEEDED - } elsif (/^\t\t\* (.*)$/) { - push(@aname, "<li>$1\n"); - } elsif (/^Q: (.*)$/){ - push(@aname, "<p><a name=\"q$q\"></a><b>Question $q:</b> $1\n"); - push(@href,"<p><a href=\"#q$q\"><b>Question $q:</b></a> $1\n"); - $f=1; - $q++; - } elsif (/^A: (.*)$/){ - push(@aname,"<P>\n<A HREF=#TOP>Top</A>\n<P>"); - push(@aname,"$1\n"); - $f=0; - } elsif (/^TODO=(.*),$/){ - push(@aname, "<a name=\"$1\">\n"); - #push(@href, "<a name=\"$1\">\n"); - } else { - push(@aname,"$_\n"); - if ($f==1) { - push(@href,"$_\n"); - } - } -} - -foreach $line (@href) #"\n\n"; -{ - print $line; - } - -foreach $line (@aname) #"\n\n"; -{ - print $line; - } - - -#comment this line if you are not open the file explicitly -# close(IN) || die "cannot close file" ; - diff --git a/doc/web/images/bgsquares.gif b/doc/web/images/bgsquares.gif Binary files differdeleted file mode 100644 index 864bcd44038..00000000000 --- a/doc/web/images/bgsquares.gif +++ /dev/null diff --git a/doc/web/images/bgsquares.png b/doc/web/images/bgsquares.png Binary files differdeleted file mode 100644 index 54de2ad1e6d..00000000000 --- a/doc/web/images/bgsquares.png +++ /dev/null diff --git a/doc/web/images/bgsquares.xcf.gz b/doc/web/images/bgsquares.xcf.gz Binary files differdeleted file mode 100644 index 200b5805615..00000000000 --- a/doc/web/images/bgsquares.xcf.gz +++ /dev/null diff --git a/doc/web/images/gtk-certview.png b/doc/web/images/gtk-certview.png Binary files differdeleted file mode 100644 index d26d03ae2d3..00000000000 --- a/doc/web/images/gtk-certview.png +++ /dev/null diff --git a/doc/web/images/mono-new.gif b/doc/web/images/mono-new.gif Binary files differdeleted file mode 100755 index 9aa496940a8..00000000000 --- a/doc/web/images/mono-new.gif +++ /dev/null diff --git a/doc/web/images/mono.gif b/doc/web/images/mono.gif Binary files differdeleted file mode 100644 index 298976a07b7..00000000000 --- a/doc/web/images/mono.gif +++ /dev/null diff --git a/doc/web/images/mono.png b/doc/web/images/mono.png Binary files differdeleted file mode 100644 index a19e38acedd..00000000000 --- a/doc/web/images/mono.png +++ /dev/null diff --git a/doc/web/images/pixel.gif b/doc/web/images/pixel.gif Binary files differdeleted file mode 100644 index a4f37d7e02e..00000000000 --- a/doc/web/images/pixel.gif +++ /dev/null diff --git a/doc/web/images/pixel.png b/doc/web/images/pixel.png Binary files differdeleted file mode 100644 index d8f33a2a3e4..00000000000 --- a/doc/web/images/pixel.png +++ /dev/null diff --git a/doc/web/images/swf-certview.png b/doc/web/images/swf-certview.png Binary files differdeleted file mode 100644 index 0c4200458ac..00000000000 --- a/doc/web/images/swf-certview.png +++ /dev/null diff --git a/doc/web/images/xml.gif b/doc/web/images/xml.gif Binary files differdeleted file mode 100755 index ecb09575418..00000000000 --- a/doc/web/images/xml.gif +++ /dev/null diff --git a/doc/web/infos/.cvsignore b/doc/web/infos/.cvsignore deleted file mode 100644 index 6722cd96e78..00000000000 --- a/doc/web/infos/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.xml diff --git a/doc/web/makefile b/doc/web/makefile deleted file mode 100644 index ff993b1b790..00000000000 --- a/doc/web/makefile +++ /dev/null @@ -1,206 +0,0 @@ -ifeq ($(findstring CYGWIN,$(shell uname)),) -CSC=mcs -RUN_MONO=mono -else -CSC=csc /nologo -endif - -CORCOMPARE=../../../mcs/tools/corcompare - -OBJECTS= \ - deploy/ado-net.html \ - deploy/anoncvs.html \ - deploy/asp-net.html \ - deploy/blogs.html \ - deploy/books.html \ - deploy/bugs.html \ - deploy/contributing.html \ - deploy/contact.html \ - deploy/c-sharp.html \ - deploy/ccvs.html \ - deploy/documentation.html \ - deploy/download.html \ - deploy/drawing.html \ - deploy/compiling.html \ - deploy/crypto.html \ - deploy/embedded-api.html \ - deploy/faq.html \ - deploy/firebird.html \ - deploy/forge.html \ - deploy/gcc-frontend.html \ - deploy/gtk-sharp.html \ - deploy/hackers.html \ - deploy/ideas.html \ - deploy/ibmdb2.html \ - deploy/index.html \ - deploy/oldnews.html \ - deploy/java.html \ - deploy/jit-debug.html \ - deploy/languages.html \ - deploy/mailing-lists.html \ - deploy/mbas.html \ - deploy/mono-beginning.html \ - deploy/mono-contribution-howto.html \ - deploy/mono-todo.html \ - deploy/monodoc-xml.html \ - deploy/mysql.html \ - deploy/odbc.html \ - deploy/oledb.html \ - deploy/oracle.html \ - deploy/other.html \ - deploy/papers.html \ - deploy/passport.html \ - deploy/performance.html \ - deploy/plans.html \ - deploy/porting.html \ - deploy/postgresql.html \ - deploy/ppc.html \ - deploy/provider-factory.html \ - deploy/rationale.html \ - deploy/resources.html \ - deploy/runtime.html \ - deploy/screenshots.html \ - deploy/sqlclient.html \ - deploy/sqlite.html \ - deploy/status.html \ - deploy/sybase.html \ - deploy/tdsclient.html \ - deploy/tds-providers.html \ - deploy/team.html \ - deploy/testing.html \ - deploy/tools.html \ - deploy/winforms.html \ - deploy/xml-classes.html \ - deploy/class-library.html \ - deploy/classlib-doc.html \ - deploy/class-status.html \ - deploy/class-status-corlib.html \ - deploy/class-status-System.html \ - deploy/class-status-System.Xml.html \ - deploy/class-status-System.Data.html \ - deploy/class-status-System.Security.html \ - deploy/class-status-System.Web.html \ - deploy/class-status-System.Web.Services.html \ - deploy/class-status-System.Drawing.html \ - deploy/class-status-Microsoft.VisualBasic.html \ - deploy/class-status-System.Windows.Forms.html \ - deploy/class-status-System.DirectoryServices.html \ - deploy/class-status-Cscompmgd.html \ - deploy/class-status-System.Runtime.Serialization.Formatters.Soap.html - -HTML_SOURCES = ../mono-roadmap.html - -#2,Configuration.Install,class-status-System.Configuration.Install.html,class-status-System.Configuration.Install.src,cm/cormissing.css,cm/cormissing.js -#2,Runtime.Remoting,class-status-System.Runtime.Remoting.html,class-status-System.Runtime.Remoting.src,cm/cormissing.css,cm/cormissing.js - -# deploy/class-status-System.Configuration.Install.html \ -# deploy/class-status-System.Runtime.Remoting.html \ - -NON_HTML_SOURCES= \ - ../mono-build.sh \ - ../mono-build-w32.sh - -all: $(OBJECTS) deploy/index.rss ../team - perl process.pl commands template.html.in deploy - cp $(HTML_SOURCES) deploy - test -d deploy/team || mkdir deploy/team - cp team/*png deploy/team - -tutorial: mono-beginning.html.stamp mono-beginning.pdf - cp -a mono-beginning mono-beginning.xml mono-beginning.pdf deploy - -mono-beginning.html.stamp: mono-beginning.xml - db2html mono-beginning.xml - touch mono-beginning.html.stamp - -mono-beginning.pdf: mono-beginning.xml - db2pdf mono-beginning.xml - -mono-beginning.xml: ../mono-beginning.xml - cp ../mono-beginning.xml . - -deploy/index.rss: mono-rss.exe ../index - $(RUN_MONO) ./mono-rss.exe ../index deploy/index.rss - -mono-rss.exe: mono-rss.cs rss.cs - $(CSC) mono-rss.cs rss.cs - -../team: render-team-page.exe team.xml - $(RUN_MONO) ./render-team-page.exe team.xml "../team" - -render-team-page.exe: render-team-page.cs - $(CSC) render-team-page.cs - -clean: - rm -f $(OBJECTS) $(patsubst deploy/%.html,src/%.src, $(OBJECTS)) src/*.xml src/*.html.in ../class-status-* ../class-status infos/*.xml - -push: - cp -f $(NON_HTML_SOURCES) deploy - cp ../mono-roadmap.html deploy - #echo scp -P 2200 -r deploy/* www@www.go-mono.com:/web/cvsmodules/mono - #(cd deploy; rsync --verbose --recursive --checksum --update --rsh='ssh' . www@www.go-mono.com:/web/cvsmodules/mono ) - (cd deploy; rsync --verbose --recursive --checksum --update --rsh='ssh' . mono-web@www.go-mono.com:/web/cvsmodules/mono ) - - -push2: - scp -r deploy/* primates:public_html/xxx - -$(OBJECTS): $(patsubst deploy/%.html,src/%.src, $(OBJECTS)) - -#.PRECIOUS: $(patsubst deploy/%.html,src/%.src, $(OBJECTS)) - -transform.exe: transform.cs - $(CSC) transform.cs - - -.PRECIOUS: src/%.src -src/%.src: ../% commands template.html.in makefile - perl htmlify $< > $@ - -.PRECIOUS: ../class-status-% -../class-status-%: src/%.html.in ../class-status.in - cat ../class-status.in $< > $@ - - -.PRECIOUS: src/%.html.in -src/%.html.in: src/%.xml transform.exe $(CORCOMPARE)/mono-api.xsl - $(RUN_MONO) ./transform.exe $< $(CORCOMPARE)/mono-api.xsl > $@ || (rm -f $@ && exit 1) - - -.PRECIOUS: infos/%.xml -infos/%.xml: ../../../mcs/class/lib/%.dll $(CORCOMPARE)/mono-api-info.exe - $(RUN_MONO) $(CORCOMPARE)/mono-api-info.exe $< > $@ || (rm -f $@ && exit 1) - -.PRECIOUS: src/%.xml -src/%.xml: infos/%.xml $(CORCOMPARE)/mono-api-diff.exe - $(RUN_MONO) $(CORCOMPARE)/mono-api-diff.exe masterinfos/$(notdir $<) $< > $@ || (rm -f $@ && exit 1) - -# corlib, corlib... -infos/mscorlib.xml: ../../../mcs/class/lib/mscorlib.dll $(CORCOMPARE)/mono-api-info.exe - $(RUN_MONO) $(CORCOMPARE)/mono-api-info.exe $(notdir $(basename $<)) > $@ || (rm -f $@ && exit 1) - -src/corlib.xml: infos/mscorlib.xml $(CORCOMPARE)/mono-api-diff.exe - $(RUN_MONO) $(CORCOMPARE)/mono-api-diff.exe masterinfos/mscorlib.xml $< > $@ || (rm -f $@ && exit 1) - -# System -infos/System.xml: ../../../mcs/class/lib/System.dll $(CORCOMPARE)/mono-api-info.exe - $(RUN_MONO) $(CORCOMPARE)/mono-api-info.exe $(notdir $(basename $<)) > $@ || (rm -f $@ && exit 1) - -src/System.xml: infos/System.xml $(CORCOMPARE)/mono-api-diff.exe - $(RUN_MONO) $(CORCOMPARE)/mono-api-diff.exe masterinfos/System.xml $< > $@ || (rm -f $@ && exit 1) - -# System.Xml -infos/System.Xml.xml: ../../../mcs/class/lib/System.Xml.dll $(CORCOMPARE)/mono-api-info.exe - $(RUN_MONO) $(CORCOMPARE)/mono-api-info.exe $(notdir $(basename $<)) > $@ || (rm -f $@ && exit 1) - -src/System.Xml.xml: infos/System.Xml.xml $(CORCOMPARE)/mono-api-diff.exe - $(RUN_MONO) $(CORCOMPARE)/mono-api-diff.exe masterinfos/System.Xml.xml $< > $@ || (rm -f $@ && exit 1) - -src/System.DirectoryServices.xml: infos/System.DirectoryServices.xml $(CORCOMPARE)/mono-api-diff.exe - $(RUN_MONO) $(CORCOMPARE)/mono-api-diff.exe masterinfos/System.DirectoryServices.xml $< > $@ || (rm -f $@ && exit 1) - -../class-status: ../class-status.in - cp -f $< $@ - -make-rss: - $(CSC) make-rss.cs -o diff --git a/doc/web/masterinfos/.cvsignore b/doc/web/masterinfos/.cvsignore deleted file mode 100644 index 6722cd96e78..00000000000 --- a/doc/web/masterinfos/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.xml diff --git a/doc/web/masterinfos/Makefile b/doc/web/masterinfos/Makefile deleted file mode 100644 index 15848834024..00000000000 --- a/doc/web/masterinfos/Makefile +++ /dev/null @@ -1,60 +0,0 @@ -# Note that you will need Microsoft.NET to generate those masterinfos - -# Customize to indicate your own installation dir. -DLL_PATH=c:/WINDOWS/Microsoft.NET/Framework/v1.1.4322 - -all: \ - mscorlib.xml \ - System.xml \ - System.Xml.xml \ - System.Data.xml \ - System.Web.xml \ - System.Web.Services.xml \ - System.Runtime.Serialization.Formatters.Soap.xml \ - System.Drawing.xml \ - System.Security.xml \ - System.DirectoryServices.xml \ - System.Windows.Forms.xml \ - Cscompmgd.xml - -mscorlib.xml : - mono-api-info $(DLL_PATH)/mscorlib.dll > mscorlib.xml - -System.xml : - mono-api-info $(DLL_PATH)/System.dll > System.xml - -System.Xml.xml : - mono-api-info $(DLL_PATH)/System.Xml.dll > System.Xml.xml - -System.Data.xml : - mono-api-info $(DLL_PATH)/System.Data.dll > System.Data.xml - -System.Web.xml : - mono-api-info $(DLL_PATH)/System.Web.dll > System.Web.xml - -System.Web.Services.xml : - mono-api-info $(DLL_PATH)/System.Web.Services.dll > System.Web.Services.xml - -System.Runtime.Serialization.Formatters.Soap.xml : - mono-api-info $(DLL_PATH)/System.Runtime.Serialization.Formatters.Soap.dll > System.Runtime.Serialization.Formatters.Soap.xml - -System.Drawing.xml : - mono-api-info $(DLL_PATH)/System.Drawing.dll > System.Drawing.xml - -System.Security.xml : - mono-api-info $(DLL_PATH)/System.Security.dll > System.Security.xml - -System.DirectoryServices.xml : - mono-api-info $(DLL_PATH)/System.DirectoryServices.dll > System.DirectoryServices.xml - -System.Windows.Forms.xml : - mono-api-info $(DLL_PATH)/System.Windows.Forms.dll > System.Windows.Forms.xml - -Cscompmgd.xml : - mono-api-info $(DLL_PATH)/Cscompmgd.dll > Cscompmgd.xml - - -clean: - rm mscorlib.xml System.xml System.Xml.xml System.Data.xml System.Web.xml System.Web.Services.xml System.Runtime.Serialization.Formatters.Soap.xml System.Drawing.xml System.Security.xml System.DirectoryServices.xml System.Windows.Forms.xml Cscompmgd.xml - - diff --git a/doc/web/mono-rss.cs b/doc/web/mono-rss.cs deleted file mode 100755 index 4af4c9baad5..00000000000 --- a/doc/web/mono-rss.cs +++ /dev/null @@ -1,113 +0,0 @@ -// -// Generates the Mono RSS feed -// -// Miguel de Icaza -// -using System; -using System.IO; -using System.Xml; -using System.Text; -using RSS; - -class X { - static RSS.RSS rss; - static Channel c; - static int item_count; - static int line; - - static void PopulateRSS (StreamReader input) - { - string s; - - while ((s = input.ReadLine ()) != null){ - line++; - if (s.StartsWith ("@item ")) - break; - } - - if (s == null || !s.StartsWith ("@item ")){ - Console.WriteLine ("Could not find beginning of text to RSS"); - return; - } - - Item i = null; - string description = ""; - do { - if (s.StartsWith ("@item ")){ - if (item_count++ > 25) - break; - - if (i != null){ - i.Description = description; - description = ""; - } - - string title = s.Substring (6); - string link = "http://www.go-mono.com/index.html#"; - foreach (char ch in title){ - if (ch != ' ') - link += ch; - } - - i = c.NewItem (); - i.Title = title; - i.Link = link; - i.PubDate = s.Substring (6, s.IndexOf (":") - 6) + ", 2003"; - } else { - description += "\n" + (s == "\n" ? "<p>" : s); - } - line++; - } while ((s = input.ReadLine ()) != null); - - if (i != null){ - i.Description = description; - } - } - - static void MakeRSS (string input, string output) - { - rss = new RSS.RSS (); - c = rss.NewChannel ("Mono Project News", "http://www.go-mono.com"); - - c.Title = "Mono Project News"; - c.Link = "http://www.go-mono.com"; - c.Description = - "News from the Mono project: a portable implementation of the .NET Framework"; - c.WebMaster = "webmaster@go-mono.com"; - c.ManagingEditor = "miguel@ximian.com"; - string t = File.GetLastWriteTime (input).ToString ("r"); - c.PubDate = t; - c.LastBuildDate = t; - - using (FileStream fs = new FileStream (input, FileMode.Open)){ - using (StreamReader input_stream = new StreamReader (fs)){ - try { - PopulateRSS (input_stream); - } catch { - Console.WriteLine ("{0} failure while loading: {1}", line, input); - throw; - } - } - } - - rss.XmlDocument.Save (output); - } - - static int Main (string [] args) - { - switch (args.Length){ - case 0: - MakeRSS ("index", "index.rss"); - break; - case 2: - MakeRSS (args [0], args [1]); - break; - - default: - Console.WriteLine ("Usage is: mono-rss [input output.rss]"); - return 1; - } - - return 0; - } -} diff --git a/doc/web/process.pl b/doc/web/process.pl deleted file mode 100755 index 48766f8f0b8..00000000000 --- a/doc/web/process.pl +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/perl -# -# Author: -# Sean MacIsaac -# - -use strict; - -my $full_expand = 1; -my @template; -my $n; - -if ($#ARGV != 2) { - print "process.pl command_file template_file directory_prefix\n"; - exit (); -} - -my $menu = ""; - -open COMMANDS, $ARGV[0] || die "Can not open $ARGV[0]"; -while (<COMMANDS>) { - chop; - my @command = split /,/; - if ($command[0] != -1) { - $menu .= "\t\t"; - $menu .= "<tr><td valign=\"top\" class=\"navi" . $command[0]; - $menu .= "\"><a class=\"navi" . $command[0]; - $menu .= "\""; - $menu .= " HREF=\"$command[2]\">$command[1]</A></td></tr>\n\n"; - } -} -close COMMANDS; - -open TEMPLATE, $ARGV[1] || die "Can not open $ARGV[1]"; -while (<TEMPLATE>) { - push @template, $_; -} -close TEMPLATE; - -open COMMANDS, $ARGV[0] || die "Can not open $ARGV[0]"; -while (<COMMANDS>) { - chop; - my @command = split /,/; - - if ($command[2] =~ /^http:/){ - } else { - $n = $ARGV[2] . "/" . $command[2]; - open OUTPUT, ">" . $n || die "Can not create $n"; - - my $content = ""; - open INPUT, "src/$command[3]" || die "Can not open $command[3]"; - while (<INPUT>) { - $content .= $_; - } - close INPUT; - - my $line; - my $temp; - my $tit; - my $title; - my $css; - my $script; - - $tit = $command[1]; - $css = $command[4]; - $script = $command[5]; - - foreach $line (@template) { - $temp = $line; - $title = "$tit / Mono"; - $temp =~ s/#TITLE#/$title/; - $temp =~ s/#CONTENT#/$content/; - $temp =~ s/#MENU#/$menu/; - if ($css) { - $temp =~ s/#CSS#/<LINK rel="stylesheet" type="text\/css" href="$css">/; - } else { - $temp =~ s/#CSS#//; - } - - if ($script) { - $temp =~ s/#SCRIPT#/<SCRIPT src="$script"><\/SCRIPT>/; - } else { - $temp =~ s/#SCRIPT#//; - } - print OUTPUT $temp; - } - } - close OUTPUT; -} diff --git a/doc/web/render-team-page.cs b/doc/web/render-team-page.cs deleted file mode 100644 index 39ad660855e..00000000000 --- a/doc/web/render-team-page.cs +++ /dev/null @@ -1,352 +0,0 @@ -// -// RenderTeamPage.cs - Renders an HTML page with team member information from an XML file -// -// Author: Duncan Mak (duncan@ximian.com) -// -// (C) Copyright 2003, Ximian Inc. -// - -using System; -using System.Collections; -using System.IO; -using System.Text; -using System.Xml; - -class Write { - - static Contributor [] list; - static public XmlNamespaceManager nsmgr; - - static void Main (string [] args) - { - if (args.Length != 2) { - Console.WriteLine ("write.exe <input.xml> <output.html>"); - Environment.Exit (0); - } - - string input = args [0]; - string output = args [1]; - XmlDocument document = new XmlDocument (); - document.Load (input); - - nsmgr = new XmlNamespaceManager (document.NameTable); - nsmgr.AddNamespace ("t", "http://go-mono.org/team.xsd"); - XmlNodeList contributors = document.SelectNodes ("/t:contributors/t:contributor", nsmgr); - list = new Contributor [contributors.Count]; - - Page p = new Page (); - - int count = 0; - foreach (XmlNode n in contributors) { - list [count] = new Contributor (n, p.Document); - count ++; - } - - Array.Sort (list, new ContributorComparer ()); - - int length = list.Length % 2 == 0 ? list.Length : list.Length + 1; - - int i = 0; - while (i < length) { - try { - p.AddRow (list [i].RenderHtml (), list [i + 1].RenderHtml ()); - } catch (IndexOutOfRangeException) { - p.AddRow (list [i].RenderHtml (), null); - } - i += 2; - } - - p.Write (output); - } -} - -public class ContributorComparer : IComparer -{ - public int Compare (object x, object y) - { - return String.Compare (x.ToString (), y.ToString ()); - } -} - -class Contributor { - - public Name name; - public string email; - public string image; - public string location; - public string organization; - public string description; - public string[] tasks; - - public XmlDocument document; - - public Contributor (XmlNode node, XmlDocument document) - { - - name = GetName (node); - image = GetImage (node); - email = GetField (node, "t:e-mail"); - location = GetField (node, "t:location"); - organization = GetField (node, "t:organization"); - description = GetField (node, "t:description"); - tasks = GetTasks (node); - - this.document = document; - } - - public override string ToString () - { - return name.ToString (); - } - - public static string GetImage (XmlNode node) - { - string result = GetField (node, "t:image"); - - if (result == String.Empty) - return "none.png"; - - else - return result; - } - - public static string GetField (XmlNode node, string selector) - { - XmlNode result = node.SelectSingleNode (selector, Write.nsmgr); - - if (result == null) - return String.Empty; - - return result.InnerText; - } - - public static Name GetName (XmlNode node) - { - string first_name = GetField (node, "t:name/t:first-name"); - string last_name = GetField (node, "t:name/t:last-name"); - - return new Name (first_name, last_name); - } - - public static string [] GetTasks (XmlNode node) - { - XmlNodeList nodes = node.SelectNodes ("t:tasks/t:task", Write.nsmgr); - - string [] result = new string [nodes.Count]; - - int i = 0; - foreach (XmlNode n in nodes) { - result [i] = n.InnerText; - - i++; - } - - return result; - } - - public XmlElement RenderHtml () - { - XmlElement root = document.CreateElement ("td"); - XmlElement table = document.CreateElement ("table"); - table.SetAttribute ("cellPadding", "0"); - table.SetAttribute ("border", "0"); - XmlElement tr = document.CreateElement ("tr"); - XmlElement td = document.CreateElement ("td"); - td.SetAttribute ("bgcolor", "#c3cda7"); - td.SetAttribute ("valign", "top"); - td.SetAttribute ("width", "1%"); - tr.AppendChild (td); - table.AppendChild (tr); - root.AppendChild (table); - - XmlElement img = document.CreateElement ("img"); - img.SetAttribute ("align", "top"); - img.SetAttribute ("border", "0"); - img.SetAttribute ("height", "48"); - img.SetAttribute ("width", "48"); - img.SetAttribute ("src", "team/" + image); - td.AppendChild (img); - - td = document.CreateElement ("TD"); - td.SetAttribute ("bgcolor", "#c3cda7"); - td.SetAttribute ("valign", "bottom"); - td.SetAttribute ("width", "100%"); - tr.AppendChild (td); - - td.AppendChild (name.ToXml (document)); - td.AppendChild (document.CreateElement ("br")); - td.AppendChild (RenderEmail ()); - - tr = document.CreateElement ("tr"); - table.AppendChild (tr); - td = document.CreateElement ("td"); - td.SetAttribute ("bgcolor", "#f5f8e4"); - td.SetAttribute ("valign", "top"); - tr.AppendChild (td); - td.AppendChild (RenderLabel ("Location: ")); - - td = document.CreateElement ("td"); - td.SetAttribute ("bgcolor", "#f5f8e4"); - td.SetAttribute ("valign", "top"); - tr.AppendChild (td); - td.AppendChild (document.CreateTextNode (location)); - - tr = document.CreateElement ("tr"); - table.AppendChild (tr); - td = document.CreateElement ("td"); - td.SetAttribute ("bgcolor", "#f5f8e4"); - td.SetAttribute ("valign", "top"); - tr.AppendChild (td); - td.AppendChild (RenderLabel ("Description: ")); - - td = document.CreateElement ("td"); - td.SetAttribute ("bgcolor", "#f5f8e4"); - td.SetAttribute ("valign", "top"); - tr.AppendChild (td); - td.AppendChild (document.CreateTextNode (description)); - - tr = document.CreateElement ("tr"); - table.AppendChild (tr); - td = document.CreateElement ("td"); - td.SetAttribute ("bgcolor", "#f5f8e4"); - td.SetAttribute ("valign", "top"); - tr.AppendChild (td); - td.AppendChild (RenderLabel ("Tasks: ")); - - td = document.CreateElement ("td"); - td.SetAttribute ("bgcolor", "#f5f8e4"); - td.SetAttribute ("valign", "top"); - tr.AppendChild (td); - td.AppendChild (RenderTasks ()); - - return root; - } - - public XmlNode RenderTasks () - { - - XmlElement element = document.CreateElement ("ol"); - element.SetAttribute ("type", "I"); - - foreach (string task in tasks) { - XmlElement li = document.CreateElement ("li"); - li.AppendChild (document.CreateTextNode (task)); - element.AppendChild (li); - } - - return element; - } - - public XmlNode RenderEmail () - { - XmlElement a = document.CreateElement ("a"); - a.SetAttribute ("href", "mailto:" + email); - XmlElement font = document.CreateElement ("font"); - font.SetAttribute ("size", "3"); - XmlText t = document.CreateTextNode (email); - a.AppendChild (font); - font.AppendChild (t); - - return a; - } - - public XmlNode RenderLabel (string label) - { - string text = String.Format ("{0}: ", label); - XmlElement element = document.CreateElement ("b"); - XmlText t = document.CreateTextNode (label ); - element.AppendChild (t); - - return element; - } -} - -class Page { - - XmlDocument document; - XmlElement tbody; - - public Page () - { - document = new XmlDocument (); - - XmlElement table = document.CreateElement ("table"); - document.AppendChild (table); - - tbody = document.CreateElement ("tbody"); - table.AppendChild (tbody); - } - - public XmlDocument Document { - get { return document; } - } - - public void AddRow (XmlNode left, XmlNode right) - { - if (left == null && right == null) - return; - - XmlElement tr = document.CreateElement ("tr"); - tbody.AppendChild (tr); - tr.AppendChild (left); - - if (right == null) - tr.AppendChild (document.CreateElement ("td")); - else { - tr.SetAttribute ("valign", "top"); - tr.AppendChild (right); - } - } - - public void Write (TextWriter text_writer) - { - XmlTextWriter writer = new XmlTextWriter (text_writer); - writer.Formatting = Formatting.Indented; - - document.WriteContentTo (writer); - - writer.Flush (); - } - - public void Write (string filename) - { - XmlTextWriter writer = new XmlTextWriter (filename, Encoding.Default); - writer.Formatting = Formatting.Indented; - - document.WriteContentTo (writer); - writer.Flush (); - } -} - - -class Name { - - string first_name; - string last_name; - - public Name (string a, string b) - { - this.first_name = a; - this.last_name = b; - } - - public override string ToString () - { - if (first_name == null && last_name == null) - return String.Empty; - - return first_name + " " + last_name; - } - - public XmlNode ToXml (XmlDocument document) - { - XmlElement element = document.CreateElement ("font"); - element.SetAttribute ("size", "3"); - XmlElement b = document.CreateElement ("B"); - XmlText t = document.CreateTextNode (ToString ()); - b.AppendChild (t); - element.AppendChild (b); - - return element; - } -} diff --git a/doc/web/rss.cs b/doc/web/rss.cs deleted file mode 100755 index 3bdaa95a843..00000000000 --- a/doc/web/rss.cs +++ /dev/null @@ -1,277 +0,0 @@ -// -// RSS.cs: Some utility classes to generate RSS feeds -// -// (C) 2002 Miguel de Icaza (miguel@gnu.org) -// -// -using System; -using System.Xml; -using System.IO; - -namespace RSS { - - public class Item { - XmlDocument doc; - XmlNode item; - XmlText title, link, description, pubdate; - - public Item (XmlDocument doc, XmlNode item) - { - this.doc = doc; - this.item = item; - } - - XmlText MakeTextElement (string name) - { - XmlNode node = doc.CreateElement (name); - XmlText text = doc.CreateTextNode (""); - - item.AppendChild (node); - node.AppendChild (text); - - return text; - } - - public string Title { - get { - if (title == null) - return null; - - return title.Value; - } - - set { - if (title == null) - title = MakeTextElement ("title"); - title.Value = value; - } - } - - public string Link { - get { - if (link == null) - return null; - - return link.Value; - } - - set { - if (link == null) - link = MakeTextElement ("link"); - link.Value = value; - } - } - - public string Description { - get { - if (description == null) - return null; - - return description.Value; - } - - set { - if (description == null) - description = MakeTextElement ("description"); - description.Value = value; - } - } - - public string PubDate { - get { - if (pubdate == null) - return null; - - return pubdate.Value; - } - - set { - if (pubdate == null) - pubdate = MakeTextElement ("pubDate"); - pubdate.Value = value; - } - } - } - - public class Channel { - XmlDocument doc; - XmlNode channel; - XmlText title, link, description, language, pubDate, lastBuildDate; - XmlText managingEditor, webMaster; - - XmlText MakeTextElement (string name) - { - XmlNode node = doc.CreateElement (name); - XmlText text = doc.CreateTextNode (""); - - channel.AppendChild (node); - node.AppendChild (text); - - return text; - } - - public Channel (XmlDocument doc, XmlNode node) - { - this.channel = node; - this.doc = doc; - - title = MakeTextElement ("title"); - link = MakeTextElement ("link"); - description = MakeTextElement ("description"); - } - - public Item NewItem () - { - XmlNode node = doc.CreateElement ("item"); - Item item; - - channel.AppendChild (node); - item = new Item (doc, node); - - return item; - } - - public string Title { - get { - return title.Value; - } - - set { - title.Value = value; - } - } - - public string Link { - get { - return link.Value; - } - - set { - link.Value = value; - } - } - - public string Description { - get { - return description.Value; - } - - set { - description.Value = value; - } - } - -#region Optional Values - public string ManagingEditor { - get { - if (managingEditor == null) - return null; - - return managingEditor.Value; - } - - set { - if (managingEditor == null) - managingEditor = MakeTextElement ("managingEditor"); - - managingEditor.Value = value; - } - } - - public string WebMaster { - get { - if (webMaster == null) - return null; - - return webMaster.Value; - } - - set { - if (webMaster == null) - webMaster = MakeTextElement ("webMaster"); - webMaster.Value = value; - } - } - - public string PubDate { - get { - if (pubDate == null) - return null; - - return pubDate.Value; - } - - set { - if (pubDate == null) - pubDate = MakeTextElement ("pubDate"); - pubDate.Value = value; - } - } - - public string LastBuildDate { - get { - if (lastBuildDate == null) - return null; - - return lastBuildDate.Value; - } - - set { - if (lastBuildDate == null) - lastBuildDate = MakeTextElement ("lastBuildDate"); - lastBuildDate.Value = value; - } - } - - public string Language { - get { - if (language == null) - return null; - - return language.Value; - } - - set { - if (language == null) - language = MakeTextElement ("language"); - language.Value = value; - } - } -#endregion - } - - class RSS { - XmlDocument doc; - XmlNode rss; - - const string rss_base = - "<?xml version=\"1.0\"?> <rss version=\"0.92\"></rss>"; - - public RSS () - { - doc = new XmlDocument (); - - doc.LoadXml (rss_base); - rss = doc.DocumentElement; - } - - public Channel NewChannel (string title, string url) - { - XmlNode node = doc.CreateElement ("channel"); - Channel c; - - rss.AppendChild (node); - c = new Channel (doc, node); - - return c; - } - - public XmlDocument XmlDocument { - get { - return doc; - } - } - } -} - - diff --git a/doc/web/src/.cvsignore b/doc/web/src/.cvsignore deleted file mode 100755 index 5053fb08904..00000000000 --- a/doc/web/src/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.src diff --git a/doc/web/team.xml b/doc/web/team.xml deleted file mode 100644 index 73dae776c4c..00000000000 --- a/doc/web/team.xml +++ /dev/null @@ -1,1593 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-1" ?> - - - -<!-- - - Please, keep this file at 2-space indents. - ---> - - - -<contributors xmlns="http://go-mono.org/team.xsd"> - -<contributor> - - <name> - - <first-name>Joel</first-name> - - <last-name>Basson</last-name> - - </name> - - <e-mail>jstrike@mweb.co.za</e-mail> - - <image>none.png</image> - - <location>Cape Town, South Africa</location> - - <organization></organization> - - <description>External Contributor</description> - - <tasks> - - <task>System.Windows.Forms Gtk</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Alejandro</first-name> - - <last-name>Sánchez Acosta</last-name> - - </name> - - <e-mail>asanchez@gnu.org</e-mail> - - <image>none.png</image> - - <location>Madrid, Spain</location> - - <organization>Mono Hispano</organization> - - <description>Mono contributor.</description> - - <tasks> - - <task>Documentation.</task> - - <task>Gtk# stuff.</task> - - <task>Class Libraries.</task> - - <task>Mcs tests samples.</task> - - <task>MONO Hispano Manager.</task> - - </tasks> - - </contributor> - - - <contributor> - - <name> - - <first-name>Tim</first-name> - - <last-name>Haynes</last-name> - - </name> - - <e-mail>thaynes@openlinksw.co.uk</e-mail> - - <image></image> - - <location>Croydon, UK</location> - - <organization>OpenLink Software</organization> - - <description>http://www.openlinksw.com/</description> - - <tasks> - - <task>Anything related to using mono to host the CLR from other applications</task> - - </tasks> - - </contributor> - - - <contributor> - - <name> - - <first-name>Duncan</first-name> - - <last-name>Mak</last-name> - - </name> - - <e-mail>duncan@ximian.com</e-mail> - - <image>duncan.png</image> - - <location>Boston / Hong Kong</location> - - <organization>Ximian.</organization> - - <description>Ximian intern</description> - - <tasks> - - <task>XML Schema</task> - - <task>Documentation</task> - - <task>Other useful stuff</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Miguel</first-name> - - <last-name>de Icaza</last-name> - - </name> - - <e-mail>miguel@ximian.com</e-mail> - - <image>miguel.png</image> - - <location>Boston / Mexico City</location> - - <organization>Ximian/Gnome.</organization> - - <description>Ximian CTO</description> - - <tasks> - - <task>Mono Project Manager</task> - - <task>MCS compiler</task> - - <task>Core class libraries</task> - - <task>MonoDoc, Gtk#</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Gaurav</first-name> - - <last-name>Vaish</last-name> - - </name> - - <e-mail>gvaish_mono.nospam@nospam.lycos.com</e-mail> - - <image>gvaish.png</image> - - <location>Noida, India</location> - - <organization>Adobe Systems Inc.</organization> - - <description>Not a nerd yet</description> - - <tasks> - - <task>WebControls</task> - - <task>MobileControls</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Paolo</first-name> - - <last-name>Molaro</last-name> - - </name> - - <e-mail>lupus@ximian.com</e-mail> - - <image>none.png</image> - - <location>Italy</location> - - <organization>Ximian/Debian/Gnome.</organization> - - <description>Mono hacker</description> - - <tasks> - - <task>Runtime implementation</task> - - <task>Core class libraries</task> - - <task>JIT compiler</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Dietmar</first-name> - - <last-name>Maurer</last-name> - - </name> - - <e-mail>dietmar@ximian.com</e-mail> - - <image>dietmar.png</image> - - <location>Austria</location> - - <organization>Dietmar IT/Ximian</organization> - - <description>Mono hacker</description> - - <tasks> - - <task>Runtime implementation</task> - - <task>Core class libraries</task> - - <task>JIT compiler</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Patrik</first-name> - - <last-name>Torstensson</last-name> - - </name> - - <e-mail>Patrik.Torstensson AT intel.com</e-mail> - - <image>none.png</image> - - <location>Sweden</location> - - <organization></organization> - - <description>Mono hacker</description> - - <tasks> - - <task>System.Web core classes (ASP.NET)</task> - - <task>Runtime implementation</task> - - <task>Core class libraries (Threading, Remoting)</task> - - <task>Random fixes (JIT)</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Juli</first-name> - - <last-name>Mallett</last-name> - - </name> - - <e-mail>jmallett@FreeBSD.org</e-mail> - - <location>Honolulu, Hawai`i</location> - - <tasks> - - <task>(Runtime) Portability</task> - - <task>FreeBSD packaging</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Pedro</first-name> - - <last-name>Martinez</last-name> - - </name> - - <e-mail>yoros@wanadoo.es</e-mail> - - <image>pedro.png</image> - - <location>Murcia, Spain</location> - - <organization>None</organization> - - <description>External Contributor</description> - - <tasks> - - <task>Testing core class libraries</task> - - <task>Fixing little bugs</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Alp</first-name> - - <last-name>Toker</last-name> - - </name> - - <e-mail>alp@atoker.com</e-mail> - - <location>London, UK</location> - - <tasks> - - <task>Debian packaging</task> - - <task>Gtk# hacks</task> - - <task>Random fixes</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Marco</first-name> - - <last-name>Ridoni</last-name> - - </name> - - <e-mail>marco.ridoni@virgilio.it</e-mail> - - <location>Rome, Italy</location> - - <tasks> - - <task>MonoBasic</task> - - <task>MonoBasic runtime</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Tim</first-name> - - <last-name>Coleman</last-name> - - </name> - - <e-mail>tim@timcoleman.com</e-mail> - - <image>timc.png</image> - - <location>Waterloo, Ontario, Canada</location> - - <tasks> - - <task>ADO.NET</task> - - <task>Web Services</task> - - <task>Class library hacking</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Martin Willemoes</first-name> - - <last-name>Hansen</last-name> - - </name> - - <e-mail>mwh -AT- sysrq.dkNOSPAM</e-mail> - - <image>mwh.png</image> - - <location>Aarhus, Denmark</location> - - <description>Wannabe mono hacker</description> - - <tasks> - - <task>NUnit1 -> NUnit2 conversion</task> - - <task>Mono Handbook, Documentation</task> - - <task>DiaCanvas#</task> - - <task>Various fixes</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Piers</first-name> - - <last-name>Haken</last-name> - - </name> - - <e-mail>piersh@friskit.com</e-mail> - - <image>none.png</image> - - <location>San Francisco, CA</location> - - <organization>Friskit Inc.</organization> - - <tasks> - - <task>XPath</task> - - <task>corcompare / class-status</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Johannes</first-name> - - <last-name>Roith</last-name> - - </name> - - <e-mail>johannes@jroith.de</e-mail> - - <image>johannes.png</image> - - <location>Germany</location> - - <organization>None</organization> - - <description>External Contributor</description> - - <tasks> - - <task>Mono Handbook</task> - - <task>Windows packaging</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Per</first-name> - - <last-name>Arneng</last-name> - - </name> - - <e-mail>pt99par@student.bth.se</e-mail> - - <image>per.png</image> - - <location>Ronneby, Sweden</location> - - <organization>None</organization> - - <description>Job seeking student</description> - - <tasks> - - <task>Class libraries</task> - - <task>Class Documentation</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Sebastien</first-name> - - <last-name>Pouliot</last-name> - - </name> - - <e-mail>sebastien at ximian dot com</e-mail> - - <image>spouliot.png</image> - - <location>Quebec City, Canada</location> - - <organization>Novell Ximian</organization> - - <description>Cryptoman</description> - - <tasks> - - <task>Cryptography</task> - - <task>Security</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Cesar</first-name> - - <last-name>Lopez Nataren</last-name> - - </name> - - <e-mail>cesar@ciencias.unam.mx</e-mail> - - <image>cesar.png</image> - - <location>Mexico City/Tuxtla Gutierrez, Chiapas.</location> - - <description>Contributor</description> - - <tasks> - - <task>Random little patches</task> - - <task>JScript compiler</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Hector</first-name> - - <last-name>Gomez Morales</last-name> - - </name> - - <e-mail>hgomez_36@flashmail.com</e-mail> - - <image>hector.png</image> - - <location>Mexico City/Tijuana, BC.</location> - - <description>Contributor</description> - - <tasks> - - <task>Random little patches</task> - - <task>Documentation</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Jackson </first-name> - - <last-name>Harper</last-name> - - </name> - - <e-mail>jackson@ximian.com</e-mail> - - <image>jackson.png</image> - - <location>Victoria, Canada</location> - - <description>Hacker</description> - - <tasks> - - <task>IL Assembler</task> - - <task>System.Web</task> - - <task>Bug Fix0r</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Nick</first-name> - - <last-name>Drochak</last-name> - - </name> - - <e-mail>ndrochak AT ieee.org</e-mail> - - <image>nickd.png</image> - - <location>Tokyo, Japan</location> - - <organization>The Ingenium Group</organization> - - <description>Programmer-type dude</description> - - <tasks> - - <task>Unit Tests</task> - - <task>Quality Assurance</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Alan, Siu Lung</first-name> - - <last-name>Tam</last-name> - - </name> - - <e-mail>Tam@SiuLung.com</e-mail> - - <image>none.png</image> - - <location>Hong Kong SAR, People's Republic of China</location> - - <description>Programmer-type dude</description> - - <tasks> - - <task>ADO.NET</task> - - <task>Chinese encodings</task> - - <task>Misc bug fixes</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Lluis</first-name> - - <last-name>Sanchez</last-name> - - </name> - - <e-mail>lluis@ideary.com</e-mail> - - <image>lluis.png</image> - - <location>Barcelona, Spain</location> - - <organization>Unemployed</organization> - - <description>Mono Hacker</description> - - <tasks> - - <task>Remoting</task> - - <task>Binary serialization</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Martin</first-name> - - <last-name>Baulig</last-name> - - </name> - - <e-mail>martin@ximian.com</e-mail> - - <image>none.png</image> - - <location>Germany</location> - - <organization>Ximian.</organization> - - <description>Ximian intern</description> - - <tasks> - - <task>Debugger/Debugging support</task> - - <task>C# compiler</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Mike</first-name> - - <last-name>Kestner</last-name> - - </name> - - <e-mail>mkestner@ximian.com</e-mail> - - <image>none.png</image> - - <location>USA</location> - - <organization>Ximian.</organization> - - <description>Evolution developer</description> - - <tasks> - - <task>Gtk# language binding</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Rachel</first-name> - - <last-name>Hestilow</last-name> - - </name> - - <e-mail>rachel@nullenvoid.com</e-mail> - - <image>none.png</image> - - <location>USA</location> - - <organization></organization> - - <description></description> - - <tasks> - - <task>Gtk# language binding</task> - - <task>MonoLOGO</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Jonathan</first-name> - - <last-name>Pryor</last-name> - - </name> - - <e-mail>jonpryor@vt.edu</e-mail> - - <image>jonpryor.png</image> - - <location>Richmond, Virginia</location> - - <organization>Cadmus Professional Communications</organization> - - <description>Mono Hacker</description> - - <tasks> - - <task>Type Reflector</task> - <task>S.Diagnostics Trace/Debug/Listeners</task> - <task>Config File Support</task> - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Ben</first-name> - - <last-name>Maurer</last-name> - - </name> - - <e-mail>bmaurer@users.sf.net</e-mail> - - <image>none.png</image> - - <location>USA</location> - - <organization>N/A</organization> - - <description>Mono hacker</description> - - <tasks> - - <task>Mono.Math.BigInteger</task> - - <task>Other random stuff.</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Daniel</first-name> - - <last-name>Morgan</last-name> - - </name> - - <e-mail>danielmorgan@verizon.net</e-mail> - - <image>none.png</image> - - <location>Richmond, Virginia, USA</location> - - <organization>an insurance company</organization> - - <description>Mono hacker</description> - - <tasks> - - <task>ADO.NET</task> - - <task>SQL# Query Tool</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Gonzalo</first-name> - - <last-name>Paniagua Javier</last-name> - - </name> - - <e-mail>gonzalo@ximian.com</e-mail> - - <image>gonzalo.png</image> - - <location>Spain</location> - - <organization>Ximian.</organization> - - <description>Mono hacker</description> - - <tasks> - - <task>System.Web core classes (ASP.NET)</task> - - <task>Core class libraries</task> - - <task>Gtk#</task> - - <task>nunit-gtk (NUnit2 Gtk# frontend)</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Rafael</first-name> - - <last-name>Teixeira</last-name> - - </name> - - <e-mail>rafaelteixeirabr@hotmail.com</e-mail> - - <image>none.png</image> - - <location>Săo Paulo</location> - - <organization>WEBforAll.</organization> - - <description>Mono/MonoQLE hacker</description> - - <tasks> - - <task>MonoBASIC (mbas)</task> - - <task>Mono.GetOptions</task> - - <task>System.Messaging</task> - - <task>System.ServiceProcess</task> - - <task>System.Configuration.Install</task> - - <task>System.DirectoryServices</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Atsushi</first-name> - - <last-name>Enomoto</last-name> - - </name> - - <e-mail>atsushi@ximian.com</e-mail> - - <image>none.png</image> - - <location>Tokyo, Japan</location> - - <organization>Ximian</organization> - - <description>Mono Hacker</description> - - <tasks> - - <task>System.Xml</task> - - <task>RELAX NG</task> - - <task>Japanese Website Translation</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Ravi</first-name> - - <last-name>Pratap M</last-name> - - </name> - - <e-mail>ravi@ximian.com</e-mail> - - <image>rpratap.png</image> - - <location>St. Louis</location> - - <organization>Ximian (formerly)</organization> - - <description>Ximian hacker</description> - - <tasks> - - <task>MCS Compiler</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Mark</first-name> - - <last-name>Crichton</last-name> - - </name> - - <e-mail>reverse_gro.pmig@nothcirc</e-mail> - - <image>none.png</image> - - <location>Amherst, MA</location> - - <organization>Univ. of Mass., Amherst</organization> - - <description>Research Asst.</description> - - <tasks> - - <task>Vorbis#</task> - - <task>GtkMozEmbed#</task> - - <task>SPARC Work</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Dick</first-name> - - <last-name>Porter</last-name> - - </name> - - <e-mail>dick@ximian.com</e-mail> - - <image>none.png</image> - - <location>Swansea</location> - - <organization>Ximian</organization> - - <description>Hacker</description> - - <tasks> - - <task>Runtime implementation</task> - - <task>Core class libraries</task> - - <task>Host system integration</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Alexandre</first-name> - - <last-name>Pigolkine</last-name> - - </name> - - <e-mail>pigolkine@gmx.de</e-mail> - - <image>none.png</image> - - <location>Germany</location> - - <description>External Contributor</description> - - <tasks> - - <task>System.Windows.Forms</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Lee</first-name> - - <last-name>Mallabone</last-name> - - </name> - - <e-mail>mono-docs@fonicmonkey.net</e-mail> - - <image>none.png</image> - - <location>Cambridge, UK</location> - - <description>External Contributor</description> - - <tasks> - - <task>Gtk#</task> - - <task>Technical documentation</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Eduardo</first-name> - - <last-name>Garcia Cebollero</last-name> - - </name> - - <e-mail>kiwnix@yahoo.es</e-mail> - - <image>none.png</image> - - <location>Madrid, Spain</location> - - <description>External Contributor</description> - - <tasks> - - <task>Small Bugfixes</task> - - <task>NUnit Tests</task> - - </tasks> - - </contributor> - - - <contributor> - - <name> - - <first-name>Reggie</first-name> - - <last-name>Burnett</last-name> - - </name> - - <e-mail>reggie@bytefx.com</e-mail> - - <image>reggie.png</image> - - <location>Tennessee, USA</location> - - <organization>ByteFX, Inc.</organization> - - <description>Consultant</description> - - <tasks> - - <task>MySQL ADO.Net Provider</task> - - <task>SWF libraries</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Jean-Marc</first-name> - - <last-name>Andre</last-name> - - </name> - - <e-mail>jean-marc.andre@polymtl.ca</e-mail> - - <image>none.png</image> - - <location>Montreal, Canada</location> - - <organization>Ecole Polytechnique de Montreal</organization> - - <description>External Contributor</description> - - <tasks> - - <task>SOAP formatting</task> - - <task>NUnit tests</task> - - </tasks> - - </contributor> - <contributor> - <name> - <first-name>Aleksey</first-name> - <last-name>Ryabchuk</last-name> - </name> - <e-mail>ryabchuk@yahoo.com</e-mail> - <image>aleksey.png</image> - <location>Ireland</location> - <description>External Contributor</description> - <tasks> - <task>System.Windows.Forms</task> - </tasks> - </contributor> - <contributor> - <name> - <first-name>Ville</first-name> - <last-name>Palo</last-name> - </name> - <e-mail>vi64pa - AT - kolumbus.fi</e-mail> - <image>none.png</image> - <location>Finland</location> - <description>Contributor</description> - <tasks> - <task>System.Data</task> - <task>System.IO</task> - </tasks> - </contributor> - - - <contributor> - - <name> - - <first-name>Charles Iliya</first-name> - - <last-name>Krempeaux</last-name> - - </name> - - <e-mail>charles@reptile.ca</e-mail> - - <image>none.png</image> - - <location>Surrey, BC, Canada</location> - - <organization>Reptile Consulting & Services Ltd.</organization> - - <description>Consultant</description> - - <tasks> - - <task>Gtk# - GNOME .NET binding</task> - - <task>System.Drawing.Printing</task> - - </tasks> - - </contributor> - <contributor> - - <name> - - <first-name>Vladimir</first-name> - - <last-name>Kaluzhny</last-name> - - </name> - - <e-mail>vkaluzhny@openlinksw.co.uk</e-mail> - - <image>none.png</image> - - <location>Novosibirsk, Russia</location> - - <organization>Openlink Software</organization> - - <description>External Contributor</description> - - <tasks> - - <task>System.Windows.Forms</task> - - <task>WineLib</task> - - </tasks> - - </contributor> - <contributor> - - <name> - - <first-name>Jaime</first-name> - - <last-name>Anguiano Olarra</last-name> - - </name> - - <e-mail>jaime@gnome.org</e-mail> - - <image>none.png</image> - - <location>Malaga/Granada, Spain</location> - - <organization>The Mono Project?</organization> - - <description>Wanabee, MWN maintainer</description> - - <tasks> - - <task>I try to help everywhere I can</task> - - </tasks> - - </contributor> - <contributor> - - <name> - - <first-name>Zoltan</first-name> - - <last-name>Varga</last-name> - - </name> - - <e-mail>vargaz -AT- NOSPAM.freemail.hu</e-mail> - - <image>none.png</image> - - <location>Hungary</location> - - <organization></organization> - - <description></description> - - <tasks> - - <task>IKVM port</task> - - <task>Runtime hacking</task> - - </tasks> - - </contributor> - <contributor> - - <name> - - <first-name>John</first-name> - - <last-name>Luke</last-name> - - </name> - - <e-mail>jluke@cfl.rr.com</e-mail> - - <image>jluke.png</image> - - <location>Daytona, FL</location> - - <organization></organization> - - <description>Contributor.</description> - - <tasks> - - <task>Documentation.</task> - - <task>Monodoc.</task> - - <task>Gtk#</task> - - </tasks> - - </contributor> - <contributor> - - <name> - - <first-name>Peter</first-name> - - <last-name>Williams</last-name> - - </name> - - <e-mail>peter@newton.cx</e-mail> - - <image>peterw.png</image> - - <location>Cambridge, MA</location> - - <organization></organization> - - <description>Makefile Magician</description> - - <tasks> - - <task>MCS build system </task> - - </tasks> - - </contributor> - <contributor> - - <name> - - <first-name>Todd</first-name> - - <last-name>Berman</last-name> - - </name> - - <e-mail>tberman@gentoo.org</e-mail> - - <image>tberman.png</image> - - <location>Toronto, ON, CA</location> - - <organization></organization> - - <description>hacker</description> - - <tasks> - - <task>WSE2</task> - - <task>gacutil</task> - - <task>MonoDevelop</task> - - </tasks> - - </contributor> - <contributor> - - <name> - - <first-name>Carlos</first-name> - - <last-name>Guzmán Álvarez</last-name> - - </name> - - <e-mail>carlosga@telefonica.net</e-mail> - - <image>none.png</image> - - <location>Vigo, Spain</location> - - <organization></organization> - - <description>Contributor</description> - - <tasks> - - <task>TLS protocol</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Jordi</first-name> - - <last-name>Mas i Hernŕndez</last-name> - - </name> - - <e-mail>jordi [at] ximian.com</e-mail> - - <image>jordi.png</image> - - <location>Barcelona, Spain</location> - - <organization></organization> - - <description>Developer</description> - - <tasks> - - <task>System.Drawing implementation</task> - <task>Windows.Forms implementation</task> - - </tasks> - - </contributor> - - <contributor> - - <name> - - <first-name>Pedro</first-name> - - <last-name>Abelleira Seco</last-name> - - </name> - - <e-mail>pedroabelleira@yahoo.es</e-mail> - - <image>pedroas.png</image> - - <location>Galicia, Spain</location> - - <organization></organization> - - <description>Developer</description> - - <tasks> - - <task>MonoDevelop</task> - - </tasks> - - </contributor> - -</contributors> diff --git a/doc/web/team.xsd b/doc/web/team.xsd deleted file mode 100755 index 30143d7c26c..00000000000 --- a/doc/web/team.xsd +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-1" ?>
-<xs:schema id="contributors" targetNamespace="http://go-mono.org/team.xsd" xmlns="http://go-mono.org/team.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:element name="contributor">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="name" minOccurs="0" maxOccurs="1">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="first-name" type="xs:string" minOccurs="0" maxOccurs="1" />
- <xs:element name="last-name" type="xs:string" minOccurs="0" maxOccurs="1" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="e-mail" type="xs:string" minOccurs="0" maxOccurs="1" />
- <xs:element name="image" type="xs:string" minOccurs="0" maxOccurs="1" />
- <xs:element name="location" type="xs:string" minOccurs="0" maxOccurs="1" />
- <xs:element name="organization" type="xs:string" minOccurs="0" maxOccurs="1" />
- <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1" />
- <xs:element name="tasks" minOccurs="0" maxOccurs="1">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="task" type="xs:string" nillable="true" minOccurs="0" maxOccurs="unbounded" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-</xs:schema>
-
diff --git a/doc/web/team/aleksey.png b/doc/web/team/aleksey.png Binary files differdeleted file mode 100755 index 2b650587e01..00000000000 --- a/doc/web/team/aleksey.png +++ /dev/null diff --git a/doc/web/team/cesar.png b/doc/web/team/cesar.png Binary files differdeleted file mode 100644 index d416c35829b..00000000000 --- a/doc/web/team/cesar.png +++ /dev/null diff --git a/doc/web/team/dietmar.png b/doc/web/team/dietmar.png Binary files differdeleted file mode 100644 index e6086982d61..00000000000 --- a/doc/web/team/dietmar.png +++ /dev/null diff --git a/doc/web/team/duncan.png b/doc/web/team/duncan.png Binary files differdeleted file mode 100755 index 69b5e638c55..00000000000 --- a/doc/web/team/duncan.png +++ /dev/null diff --git a/doc/web/team/gonzalo.png b/doc/web/team/gonzalo.png Binary files differdeleted file mode 100644 index 6379362df31..00000000000 --- a/doc/web/team/gonzalo.png +++ /dev/null diff --git a/doc/web/team/gvaish.png b/doc/web/team/gvaish.png Binary files differdeleted file mode 100644 index 131f9ae5966..00000000000 --- a/doc/web/team/gvaish.png +++ /dev/null diff --git a/doc/web/team/hector.png b/doc/web/team/hector.png Binary files differdeleted file mode 100644 index 0e0781f961b..00000000000 --- a/doc/web/team/hector.png +++ /dev/null diff --git a/doc/web/team/jackson.png b/doc/web/team/jackson.png Binary files differdeleted file mode 100644 index 2fb5545ee61..00000000000 --- a/doc/web/team/jackson.png +++ /dev/null diff --git a/doc/web/team/jluke.png b/doc/web/team/jluke.png Binary files differdeleted file mode 100644 index d8578ad8258..00000000000 --- a/doc/web/team/jluke.png +++ /dev/null diff --git a/doc/web/team/johannes.png b/doc/web/team/johannes.png Binary files differdeleted file mode 100755 index 096f88205dc..00000000000 --- a/doc/web/team/johannes.png +++ /dev/null diff --git a/doc/web/team/jonpryor.png b/doc/web/team/jonpryor.png Binary files differdeleted file mode 100644 index d921a2dc051..00000000000 --- a/doc/web/team/jonpryor.png +++ /dev/null diff --git a/doc/web/team/jordi.png b/doc/web/team/jordi.png Binary files differdeleted file mode 100644 index 126e5dff5f4..00000000000 --- a/doc/web/team/jordi.png +++ /dev/null diff --git a/doc/web/team/lluis.png b/doc/web/team/lluis.png Binary files differdeleted file mode 100644 index b22edbfcd9a..00000000000 --- a/doc/web/team/lluis.png +++ /dev/null diff --git a/doc/web/team/miguel.png b/doc/web/team/miguel.png Binary files differdeleted file mode 100644 index 534ccd4caf4..00000000000 --- a/doc/web/team/miguel.png +++ /dev/null diff --git a/doc/web/team/mwh.png b/doc/web/team/mwh.png Binary files differdeleted file mode 100644 index 4a390c5bb86..00000000000 --- a/doc/web/team/mwh.png +++ /dev/null diff --git a/doc/web/team/nickd.png b/doc/web/team/nickd.png Binary files differdeleted file mode 100644 index c9a1561a3d5..00000000000 --- a/doc/web/team/nickd.png +++ /dev/null diff --git a/doc/web/team/none.png b/doc/web/team/none.png Binary files differdeleted file mode 100755 index deba20e455e..00000000000 --- a/doc/web/team/none.png +++ /dev/null diff --git a/doc/web/team/pedro.png b/doc/web/team/pedro.png Binary files differdeleted file mode 100644 index a3a4496a0d6..00000000000 --- a/doc/web/team/pedro.png +++ /dev/null diff --git a/doc/web/team/pedroas.png b/doc/web/team/pedroas.png Binary files differdeleted file mode 100644 index a639c6f33ab..00000000000 --- a/doc/web/team/pedroas.png +++ /dev/null diff --git a/doc/web/team/per.png b/doc/web/team/per.png Binary files differdeleted file mode 100644 index 5374cb64e2c..00000000000 --- a/doc/web/team/per.png +++ /dev/null diff --git a/doc/web/team/peterw.png b/doc/web/team/peterw.png Binary files differdeleted file mode 100644 index 1cb36eab7c8..00000000000 --- a/doc/web/team/peterw.png +++ /dev/null diff --git a/doc/web/team/reggie.png b/doc/web/team/reggie.png Binary files differdeleted file mode 100644 index 4f5dd4f1f70..00000000000 --- a/doc/web/team/reggie.png +++ /dev/null diff --git a/doc/web/team/rpratap.png b/doc/web/team/rpratap.png Binary files differdeleted file mode 100644 index 5c51c7db283..00000000000 --- a/doc/web/team/rpratap.png +++ /dev/null diff --git a/doc/web/team/spouliot.png b/doc/web/team/spouliot.png Binary files differdeleted file mode 100644 index 5c85a17b0f0..00000000000 --- a/doc/web/team/spouliot.png +++ /dev/null diff --git a/doc/web/team/tberman.png b/doc/web/team/tberman.png Binary files differdeleted file mode 100755 index 9a26c2be737..00000000000 --- a/doc/web/team/tberman.png +++ /dev/null diff --git a/doc/web/team/timc.png b/doc/web/team/timc.png Binary files differdeleted file mode 100644 index a129020576c..00000000000 --- a/doc/web/team/timc.png +++ /dev/null diff --git a/doc/web/template.html.in b/doc/web/template.html.in deleted file mode 100644 index 87f42ed24ef..00000000000 --- a/doc/web/template.html.in +++ /dev/null @@ -1,125 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<title>#TITLE#</title> -<link rel="icon" href="MonoIcon.png" type="image/png"> -<!-- background-image: url("images/bgsquares.gif"); --> -<style type="text/css"> -<!-- - body { font-family: "trebuchet ms", lucida, verdana, helvetica; - - } - body, td, table { font-family: "trebuchet ms", lucida, verdana, helvetica; - font-size: 14px; } - - .navi0 { font-size: 14px; font-weight: bold; background: #444444; } - .navi1 { font-size: 14px; font-weight: bold; left-margin: 10pt} - .navi2 { font-size: 10px; font-weight: bold; left-margin: 20pt} - .topmenu { font-size: 14px; font-weight: bold; } - .footnote { font-size: 12px; color: #aaaaaa; } - - a.navi0 { color: #ffffff; text-decoration: none} - a.navi0:visited { color: #cccccc; } - a.navi0:hover { color: #ee9900; text-decoration: underline; } - - a.navi1 { color: #ffffff; text-decoration: none; margin-left: 7px;} - a.navi1:visited { color: #cccccc; } - a.navi1:hover { color: #ee9900; text-decoration: underline; } - - a.navi2 { color: #ffffff; text-decoration: none; margin-left: 20px;} - a.navi2:visited { color: #cccccc; } - a.navi2:hover { color: #ee9900; text-decoration: underline; } - - a.topmenu { color: #ffffff; text-decoration: none; margin-left: 7px;} - a.topmenu:visited { color: #cccccc; } - a.topmenu:hover { color: #ee9900; text-decoration: underline; } - - h1 { - border-bottom: 2px solid #dddddd; - } - - .shell { - border-style: solid; background: #000000; color: #bbbbbb; - #777777; border-width: - 1px; padding: 2pt; - margin:15px; - } -// --> -</style> -#CSS# -#SCRIPT# -</head> -<body bgcolor="#555555" text="#000000"> - -<table cellpadding="0" cellspacing="0" border="0" width="100%"> - <tr> - <td><img src="images/pixel.gif" alt=""></td><!-- left border - --> - <td colspan="4"> - <table> - <tr> - <td> - <a href="http://www.go-mono.com"><img - src="images/mono-new.gif" alt="mono-logo" border="0"></a> - </td> - <td> - <a class="topmenu" href="download.html">Downloads</a> | - <a class="topmenu" href="http://go-mono.com/daily/">Daily snapshots</a> | - <a class="topmenu" href="screenshots.html">Screenshots</a> | - <a class="topmenu" href="http://www.go-mono.com:8080">Documentation</a> | - <a class="topmenu" href="bugs.html">Bugs</a> | - <a class="topmenu" href="http://www.go-mono.com/monologue/">Blogs</a> - </td> - </tr> - </table> - </td> - <td><img src="images/pixel.gif" alt=""></td><!-- right border - --> - </tr> - <tr> - <td><img src="images/pixel.gif" width="1" height="1" alt=""></td> - <td colspan="3" bgcolor="black"><img src="images/pixel.gif" - height="2" alt=""></td> - <td bgcolor="black"><img src="images/pixel.gif" width="1" alt=""></td> - <td><img src="images/pixel.gif" alt=""></td> - </tr> - <tr> - <td width="100"><img src="images/pixel.gif" alt=""></td> - <td valign="top"> - <table cellpadding="2" valign="top" cellspacing="0" border="0"> - #MENU# - </table> - </td> - <td bgcolor="black" width="1"><img src="images/pixel.gif" - width="1" alt=""></td> - <td bgcolor="white" align="left" width="80%" valign="top"> - <table cellpadding="16"> - <tr><td> - #CONTENT# - </td></tr> - </table> - </td> - <td bgcolor="black"><img src="images/pixel.gif" width="1" alt=""></td> - <td width="100"><img src="images/pixel.gif" alt=""></td> - </tr> - <tr> - <td colspan="2"> - <img src="images/pixel.gif" alt=""></td> - <td colspan="2" bgcolor="black"><img src="images/pixel.gif" - height="1" alt=""></td> - <td bgcolor="black"><img src="images/pixel.gif" width="1" alt=""></td> - <td><img src="images/pixel.gif" alt=""></td> - </tr> - - <tr> - <td colspan="2"></td> - <td colspan="2" align="center"> - <a class="footnote" href="mailto:webmaster@go-mono.com">webmaster@go-mono.com</a> - </td> - <td colspan="2"></td> - </tr> - </tr> -</table> - -</body> -</html> diff --git a/doc/web/transform.cs b/doc/web/transform.cs deleted file mode 100644 index af6424f90c3..00000000000 --- a/doc/web/transform.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Xml; -using System.Xml.Xsl; - -namespace Transform -{ - class Transform - { - public static void Main (string [] rgstrArgs) - { - XmlDocument xml = new XmlDocument (); - xml.Load (rgstrArgs [0]); - - XslTransform xsl = new XslTransform (); - xsl.Load (rgstrArgs [1]); - - xsl.Transform (xml, null, Console.Out); - } - } -} diff --git a/doc/winforms b/doc/winforms deleted file mode 100644 index b98d0d3a561..00000000000 --- a/doc/winforms +++ /dev/null @@ -1,96 +0,0 @@ -* System.Windows.Forms - - Currently Windows.Forms support is not finished. - - The System.Windows.Forms effort is taking two paths: - - <ul> - <li>Win32/Wine-based: This effort will use the Win32 - API, and use a stub program to run the with Wine. - This allows applications that use P/Invoke to - function, and event delivery through the Wndproc - method to work for the most advanced and custom - applications. This is the path of best compatibility. - - Also, work on a Gtk-based rendered for Wine will be - done, to make the user interface integrate with your - desktop look. - - <li>Gtk# based: This effort will build a subset of - Windows.Forms that uses Gtk#. This gives a better - integration with the desktop, but will not be - completely compatible with the Windows edition. In - particular code that uses P/Invoke to call into Win32 - or overwrite the Wndproc method to achieve special - effects will not work. - </ul> - -* Win32/Wine edition. - - To get the Windows.Forms support working, you need a Mono - installation from CVS, and you need to install Wine plus the - <a href="http://www.openlinksw.com">OpenLink patch</a>, and - define the environment variable "SWF" (export SWF=1 from your - shell). For more information, see the <a - href="http://www.nullenvoid.com/mono/wiki/index.php/MonoWinePackages">Mono - Wine Packages</a> page in the Mono Wiki. - - <table> - <tr> - <td> - System.Windows.Forms is currently being implemented using the - Win32 API, we will be using <a - href="http://www.winehq.com">WineLib</a> on Unix systems to - emulate the Win32 API. - - This means that those who want to contribute to the effort can - develop and test classes today using Windows and P/Invoke - calls to Win32 and we will then just run the result on Unix. - - In terms of integrating visually with the desktop, we are - hoping to contribute to the Wine project a mechanism to make - it use the Gtk+ themes on X11 and Cocoa on MacOS to render the - widgets, and get the native look and feel on each of these - platforms. - </td> - <td> - <a href="images/WINESWF.JPG"><img src="images/WINESWF-mini.JPG"></a> - </td> - - </table> - -* Gtk# based - - The code is contained in CVS. - - There are no current plans to support embedded devices, but - Gtk/FrameBuffer is an option. If you have suggestions or - recommendations, please let us <a - href="mailto:mono-hackers-list@ximian.com">let us know</a> - -* Contributing - - The Winforms effort is being coordinated in the <a - href="mailto:mono-winforms-list@ximian.com:.com">mono-winforms-list@ximian.com</a>. - If you are interested in helping out with this effort, - subscribe to it by sending an email message to <a - href="mailto:mono-winforms-list-request@ximian.com:.com">mono-winforms-list-request@ximian.com</a>. - - If you want to help, you can start by writing a control and - testing it with Windows today (or you can also try to build - the existing library on Linux, but this is a bit more - complicated). - - See the file mcs/class/System.Windows.Forms/CheckOutList for - details on who is working on which class. - - Please read the README document in the - System.Windows.Forms/WINElib directory for details about how - to build the Windows.Forms support for Mono. - -* System.Drawing - - For details, see the <a - href="drawing.html">System.Drawing implementation notes</a> - section of the web site. - diff --git a/doc/xml-classes b/doc/xml-classes deleted file mode 100755 index d0ac9898b85..00000000000 --- a/doc/xml-classes +++ /dev/null @@ -1,318 +0,0 @@ -* XML Classes - -** Abstract - - XML library is used by several field of Mono such as ADO.NET and XML - Digital Signature (xmldsig). Here I write about System.Xml.dll and - related tools. This page won't include any classes which are in other - assemblies such as XmlDataDocument. - - Note that current corlib has its own XML parser class named Mono.Xml.MiniParser. - - Basically System.XML.dll feature has finished, or almost finished, so - I write this page mainly for bugs and improvement hints. - - -** System.Xml namespace - - -*** Document Object Model (Core) - - DOM feature has already implemented. There is still missing feature. - - <ul> - * ID constraint support is problematic because W3C DOM does not - specify handling of ID attributes into non-adapted element. - (MS.NET also looks incomplete in this area). - * I think, event feature is not fully tested. There are no - concrete desctiption on which events are risen, so we have to - do some experiment on MS.NET. - </ul> - -*** Xml Writer - - Here XmlWriter almost equals to XmlTextWriter. If you want to see - another implementation, check XmlNodeWriter.cs used in monodoc. - - XmlTextWriter is completed. However, it looks slower than MS.NET (I - tried 1.1). After some optimization, it became better, but maybe it can be - done more. - -*** XmlResolver - - Currently XmlTextReader uses specified XmlResolver. If nothing was supplied, - then it uses XmlUrlResolver. XmlResolver is used to parse external DTD, - importing XSL stylesheets and schemas etc. - - However, XmlUrlResolver is still buggy (mainly because System.Uri is also - incomplete yet) and this results in several loading error. - - XmlSecureResolver, which is introduced in MS .NET Framework 1.1 is basically - implemented, but it requires CAS (code access security) feature. We need to - fixup this class after ongoing CAS effort works. - - You might also be interested in an improved <a href="http://codeblogs.ximian.com/blogs/benm/archives/000039.html">XmlCachingResolver</a> by Ben Maurer. - -*** XmlNameTable - - XmlNameTable itself is implemented. However, it should be actually used in - several classes. Currently it makes sense if compared names are both in - the table, they should be simply compared using ReferenceEquals(). We - have partially done in XmlNamespaceManager (in .NET 1.2 methods; if the - build is not NET_1_2 then it is internal use only). - -*** Xml Stream Reader - - When we are using ASCII document, we don't care which encoding we are using. - However, XmlTextReader must be aware of the specified encoding in XML - declaration. So we have internal XmlStreamReader class (and currently - XmlInputStream class. This may disappear since XmlStreamReader is enough to - handle this problem). - - However, there seems some problems in these classes on reading network - stream (especially on Linux). This should be fixed soon, if we found the - actual reason. - -*** XML Reader - - XmlTextReader, XmlNodeReader and XmlValidatingReader are almost finished. - - <ul> - * All OASIS conformance test passes as Microsoft does. Some - W3C tests fail, but it looks better. - * Entity expansion and its well-formedness check is incomplete. - It incorrectly allows divided content models. It incorrectly - treats its Base URI, so some dtd fails. - * Unicode surrogate pair character is not supported yet. - * I won't add any XDR support on XmlValidatingReader. (I haven't - ever seen XDR used other than Microsoft's BizTalk Server 2000, - and Now they have 2002 with XML Schema support) - </ul> - - XmlTextReader and XmlValidatingReader should be faster than now. Currently - XmlTextReader looks nearly twice as slow as MS.NET, and XmlValidatingReader - (which uses this slow XmlTextReader) looks nearly three times slower. (Note - that XmlValidatingReader won't be slow as itself. It uses schema validating - reader and dtd validating reader.) - - -**** Some Advantages - - The design of Mono's XmlValidatingReader is radically different from - that of Microsoft's implementation. Under MS.NET, DTD content validation - engine is in fact simple replacement of XML Schema validation engine. - Mono's DTD validation is designed fully separate and does validation - as normal XML parser does. For example, Mono allows non-deterministic DTD. - - Another advantage of this XmlValidatingReader is support for *any* XmlReader. - Microsoft supports only XmlTextReader. - - I added extra support interface named "IHasXmlParserContext", which is - considered in XmlValidatingReader.ResolveEntity(). Microsoft failed to - design XmlReader to support pluggable use of XmlReader (i.e. wrapping use - of other XmlReader) since XmlParserContext is required to support both - entity resolution and namespace manager. (In .NET 1.2, Microsoft also - supported similar to IHasXmlParserContext, named IXmlNamespaceResolver, - but it still does not provide any DTD information.) - - We also have RELAX NG validating reader. See mcs/class/Commons.Xml.Relaxng. - - -** System.Xml.Schema - -*** Summary - - Basically it is completed. We can compile complex and simple types, refer to - external schemas, extend or restrict other types, or use substitution groups. - You can test how current schema validation engine is (in)complete by using - standalone test module - (see mcs/class/System.XML/Test/System.Xml.Schema/standalone_tests). - At least in my box, msxsdtest fails only 30 cases with bugfixed catalog. - -*** Schema Object Model - - Completed, except for some things to be fixed: - - <ul> - * Complete facet support. Currently some of them is missing. - Recently David Sheldon is doing several fixes on them. - * ContentTypeParticle for pointless xs:choice is incomplete - (It is because fixing this arose another bugs in - compilation. Interestingly, MS.NET also fails around here, - so it might be nature of ContentTypeParticle design) - * Some derivation by restriction (DBR) handling is incorrect. - * Some simple type restriction handling is still incorrect. - </ul> - -*** Validating Reader - - XML Schema validation feature is (currently) implemented on - Mono.Xml.Schema.XsdValidatingReader, which is internally used in - XmlValidatingReader. - - Basically this is implemented and actually its feature is almost complete, - but I have only did validation feature testing. So we have to write more - tests on properties, methods, and events (validation errors). - - -** System.Xml.Serialization - - Lluis rules ;-) - - Well, in fact XmlSerializer is almost finished and is on bugfix phase. - - However, we appliciate more tests. Please try - - <ul> - * System.Web.Services to invoke SOAP services. - * xsd.exe and wsdl.exe to create classes. - </ul> - - And if any problems were found, please file it to bugzilla. - - Lluis also built interesting standalone test system placed under - mcs/class/System.Web.Services/Test/standalone. - - You might also interested in genxs, which enables you to create custom - XML serializer. This is not included in Microsoft.NET. - See mcs/tools/genxs for the details. - - -** System.Xml.XPath and System.Xml.Xsl - - There are two implementations for XSLT. One (and historical) implementation - is based on libxslt (aka Unmanaged XSLT). Now we uses fully implemented - managed XSLT. To use Unmanaged XSLT, set MONO_UNMANAGED_XSLT environment - value (any value is acceptable). - - As for Managed XSLT, we support msxsl:script. - - It would be nice if we can support <a href="http://www.exslt.org/">EXSLT</a>. - <a href="http://msdn.microsoft.com/WebServices/default.aspx?pull=/library/en-us/dnexxml/html/xml05192003.asp">Microsoft has already done it</a>, but it - is not good code since it depends on internal concrete derivatives of - XPathNodeIterator classes. In general, .NET's "extension objects" is not - usable to return node-sets, so if we support EXSLT, it has to be done - internally inside our System.XML.dll. Volunteers are welcome. - - Our managed XSLT implementation is still inefficient. XslTransform.Load() - and .Transform() looks three times slower (However it depends on - XmlTextReader which is also slow, so we are starting optimization from - that class, not XSLT itself). These number are only for specific cases, - and there might be more critical point on XSLT engine (mainly - XPathNodeIterator). - - -** System.Xml and ADO.NET v2.0 - - Microsoft introduced the first beta version of .NET Framework 1.2 runtime - and sdk (and Visual Studio Whidbey). They are now available on MSDN - _subscriber_ download (i.e. it is not publicly downloadable yet). It - contains several new classes. - - There are two assemblies related to System.Xml v2.0; System.Xml.dll and - System.Data.SqlXml.dll (here I treat sqlxml.dll as part of System.Xml v2.0, - but note that it is also one of the ADO.NET 2.0 feature). There are several - namespaces such as MS.Internal.Xml and System.Xml. Note that .NET Framework - is pre-release version and MS.Internal.Xml namespace apparently shows that - it is not in stable status as yet. - - System.Xml 2.0 contains several features such as: - - <ul> - * XPathNavigator2 and XPathDocument2 - * XML Query - * XmlAdapter - * XSLT IL generator (similar to Apache XSLTC) - it is - internal use - </ul> - - Tim Coleman started ADO.NET 2.0 related works. Currently I have no plan to - implement System.Xml v2.0 classes and won't touch with them immediately, - but will start in next some months. If any of you wants to try this - frontier, we welcome your effort. - -*** XPathNavigator2 - - System.Xml v2.0 implementation will be started from XPathDocument2 and - XPathNavigator2 implementations. Firstly, its document structure and - basic navigation feature will be implemented. And next, XPath2 engine - should be implemented (XPathNavigator2 looks very different from - XPathNavigator). Another requirement is schema based validation feature. - It needs some schema improvements, such like IXmlInfosetReader support. - (IXmlInfosetReader is in MS.Internal.Xml.) - -*** XML Query - - XML Query is a new face XML data manipulation language (well, at least new - to .NET world). It is similar to SQL, but intended to manipulate and to - support XML. It is similar to XSLT, but extended to support new features - such as XML Schema based datatypes. - - XML Query implementation can be found mainly in System.Xml.Query and - MS.Internal.Xml.Query namespaces. Note that they are in - System.Data.SqlXml.dll. - - MSDN documentation says that there are two kind of API for XML Query: High - Level API and Low Level API. At the time of this beta version, the Low Level - API is described not released yet (though it may be MS.Internal.Xml.* - classes). However, to implement the High Level API, the Low Level API will - be used. They looks to have interesting class structures in MS.Internal.Xml - related stuff, so it would be nice (and I will) start to learn about them. - - They looks to have IL generator classes, but it would be difficult to - start from them. - -*** System.Data.Mapping - - System.Data.Mapping and System.Data.Mapping.RelationalSchema are the - namespaces for mapping support between database and xml. This is at - stubbing phase (incomplete as yet). - -*** XmlAdapter - - XmlAdapter is used to support XML based query and update using - XPathDocument2 and XPathNavigator2. This class is designed to synthesize - ADO.NET and System.Xml. It connects to databases, and querys data however - in XML shape into XPathDocument2, using Mapping schema above. This must be - done after several classes such as XPathDocument2 and MappingSchema. - - -** Miscellaneous Class Libraries - -*** RELAX NG - - I implemented an experimental RelaxngValidatingReader. It is far from - complete, especially simplification stuff (see RELAX NG spec chapter 4), - some constraints (in chapter 7), and datatype handling. - - I am planning improvements (starts with renaming classes, giving more - kind error messages, supporting compact syntax and even object mapping), - but it is still my wishlist. - - -** Tools - -*** xsd.exe - - See <a href="ado-net.html">ADO.NET page</a>. - - Microsoft has another inference class from XmlReader to XmlSchemaCollection - (Microsoft.XsdInference). It may be useful, but it won't be so easy. - - -** Miscellaneous - - Sometimes I hear complain about System.dll and System.Xml.dll mutual - dependency: System.dll references to System.Xml.dll (e.g. - System.Configuration.ConfigXmlDocument extended from XmlDocument), while - System.Xml.dll vice versa (e.g. XmlUrlResolver.ResolveUri takes System.Uri). - Since they are in public method signatures, so at least we cannot get rid - of these mutual references. - - However, for those who really want to build System.Xml.dll without System.dll, - I created <a href="http://primates.ximian.com/~atsushi/System_DummyClasses.cs">dummy classes in System.dll</a>. To build System.Xml.dll in such way, remove - <code>/r:System.dll</code> from Makefile, and add this source to - System.Xml.dll.sources. Note that this is at the point of Mono 0.30 release. - - Also note that you still need System.dll to run mcs. - |