Alp has updated the Mono C binding generator
cilc to support Gtk#.
The cilc tool is used to produce C bindings from Mono and .NET assemblies. The new Gtk+ support extends this to provide object inheritance of Gtk#-based widgets. So it is now possible to consume Gtk# widgets from C easily.
The code lives in CVS as part of mcs/tools/cilc
Nat used to sleep a lot on airplanes.
Posted on 13 Dec 2004
Michael Meeks has been contributing to OpenOffice for a couple of years now. Initially he made it simple to start contributing to the effort, and wrote the OpenOfficeOrg Hacking guide, and setup a site at Ximian to get open source developers to contribute, you can see it here:
http://ooo.ximian.com/
With all the tools for newcomers to contribute to OpenOffice: Source Code Cross Reference, Bug Tracking System, Tinderbox Status and ready-to-hack source packages.
One of the best features is the Hackers Guide.
Yesterday he posted his slides on OpenOffice hacking here, I found some of them fascinating:
Edd, I agree that there is not much action on the IronPython development front, and we would be willing to host a hackable repository for maintaining IronPython.
We could then provide all these patches to Jim for when he has the cycles to do its upcoming release.
Logistically-wise, my hands are tied until January as Cancun is taking precedence over hacking in the upcoming weeks, but the new year is a good time to pick this up.
We released the latest two versions of Mono 1.0.5 (production) and 1.1.3 (development) both with a long list of goodies.
In the Windows.Forms world, Geoff wrote a native Quartz driver for our Windows.Forms implementation, which you can see here. Geoff reports that we have feature parity with Windows.Forms
Also, ran into IronPHP the same concept of IronPython, but for PHP.
Also Duncan learned today that the University of California Irvine is teaching one of its compiler classes with Mono on MacOS X.
Posted on 09 Dec 2004
Over the weekend I checked into the repository a tool to easily create Mono bundles. A mono bundle allows you to ship your Mono application as a single binary: no runtime necessary: everything is "statically linked", there are no external dependencies on a Mono installation of any kind.
To use, just type:
mono$ mkbundle --deps sample.exe -o mcs Sources: 1 Auto-dependencies: True embedding: /home/cvs/mcs/mcs/mcs.exe embedding: /mono/lib/mono/1.0/mscorlib.dll embedding: /mono/lib/mono/1.0/System.dll embedding: /mono/lib/mono/1.0/System.Xml.dll Compiling: as -o /tmp/tmp7aa740ad.o temp.s cc -o demo -Wall temp.c `pkg-config --cflags --libs mono-static` /tmp/tmp7aa740ad.o Done mono$
In the example above the resulting binary is a healty 7.5 megabyte file, but it contains the Mono C# compiler and three of the system libraries as well as the Mono VM embedded into it:
mono$ ls -l demo -rwxr-xr-x 1 miguel users 7575630 2004-12-01 02:21 demo*
I then tuned the compilation to use a few shared libraries from the system, in this particular sample, I only want to avoid taking a Mono dependency:
mono$ mono$ ldd demo linux-gate.so.1 => (0xffffe000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0x4002c000) libm.so.6 => /lib/tls/libm.so.6 (0x4003c000) libgmodule-2.0.so.0 => /opt/gnome/lib/libgmodule-2.0.so.0 (0x4005e000) libdl.so.2 => /lib/libdl.so.2 (0x40062000) libgthread-2.0.so.0 => /opt/gnome/lib/libgthread-2.0.so.0 (0x40066000) libglib-2.0.so.0 => /opt/gnome/lib/libglib-2.0.so.0 (0x4006b000) libc.so.6 => /lib/tls/libc.so.6 (0x409e6000) librt.so.1 => /lib/tls/librt.so.1 (0x40afa000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40c68000)
This is just a productification of a feature that Paolo had developed for Mono.
The next step is to write an assembly "linker", so that only the functions necessary to run mcs.exe are included as opposed to the whole three assemblies.
The main problem is that we need a good library for dealing with CIL images, the contenders:
Posted on 01 Dec 2004
Sebastien for a while has been working on all-things-security in the Mono stack, in today's blog entry he describes how to write an SSL server in 3 simple steps.
He uses that to showcase the Mono.Security assembly and the excellent work that Carlos Guzman Alvarez has done on the TLS/SSL stack in Mono (Carlos is also the man behind the Firebird database provider for .NET).
In any case, Sebastien's blog is packed with technical information on a wide range of cryptographic and security topics (specially related to Mono).
Posted on 30 Nov 2004
At ApacheCon today, just finished my keynote, there is a video and audio of it here.
The slides of my presentation are here.
F-Spot failed during the demo, the problem was that on CVS Geoff just made Mono.Data.Sqlite support both the old Sqlite and the new Sqlite3, a tiny logic error gets the autodetection wrong (which is now fixed).
Dmitry Robsman, myself, Scott Guthrie, Daniel López
With the creators of ASP.NET (Dmitry and Scott) and the original author mod_mono (Daniel).
Daniel is at the conference demostrating at the conference is BitRock installer for Unix which is an Install-Shield like installer for Linux, BSD, Solaris and Windows and works with in GUI, text or unattended modes.
As a proof of his installer, he has a sample Mono installer for Linux that includes XSP and Apache for folks that want to get a quick head-start on Mono. The simplest Mono installation on Unix so far.
There is a lot of Java presence, and some PHP presence at the conference.
In other news: am running IBM's Derby in Mono, without having to write a line of Java. Love!
Posted on 16 Nov 2004
We completed the migration of the Mono repository from CVS to SVN. We did a few dry runs of the whole migration to verify that nothing would go wrong.
We are happy to report that the migration went as planned and we only had a small service interruption of a few hours while we did the final migration.
The repository had 635 megs of data in 34,831 files checked-in. We are using the file system backend, and things went very smoothly.
Details on the migration process for Mono users are here.
Posted on 11 Nov 2004
Lluis has been working on a new Dynamic Code Generation API for Mono. A detailed blog post with source code, examples and rationale is available here.
Lluis' new code generation API is a medium-level API and sits happily between the CIL (too low level for certain tasks) and generating C# source code (too high level and slow to produce, compile and dynamically load for certain tasks).
Notice the interesting model for the code generation.
Posted on 10 Nov 2004
The Novell Linux Desktop has been released, a web page with information (and various flash demos) is available here.
Congratulations to the desktop folks for this release.
They have a starter's page in Novell's Cool Solutions with an overview for those new to NLD.
Joseph has been running www.gotmono.net for a while, and today I discovered his blog. What I found interesting is that he has been maintaining ASP.NET applications and ports of Mono (here) and his blog talks about his experiences.
It is an interesting read for those interested in Mono deployment and performance.
Although he is beta testing some new ASP.NET-based forums, the current forums are very active.
An Interview with Alan on the recent Desktop Release is here
Posted on 08 Nov 2004
Joshua Tauberer (Monodoc hacker extraordinaire and of GovtTrackUs fame) has ported Perl's Algorithm::Diff to C#, lovely tool available here.
It is not limited to strings or characters, it can operate on anything comparable.
Posted on 06 Nov 2004
Massimiliano just posted his implementation of the SSA-based Partial Redundance Elimination (for an explanation, see Massi's presentation).
This is an important milestone in Mono's runtime to improve the performance of computationally intensive tasks. The patch is only 2069 lines of code.
Massi previously implemented the Arrays Bound Check eliminination in the Mono VM. Congratulations Massi!
Am now using GPWS to share files
from my computer at home.
Hasan has a blog where he talks about his Gtk# experiences.
I have updated NPlot to version 0.9.7 and improved the widget performance. You still need to use CVS mcs and libgdiplus to get it to work.
Code drop is here. Now with a spicy makefile.
Matt (the maintainer of NPlot) said that he wanted to distribute the Gtk# moving forward.
An interesting presentation from Ariel Faigon on usability and another one on testing
Posted on 05 Nov 2004