Skip navigation.

Mono 0.29 released

Mono
Mono

The Mono folks released new Mono, Monodoc, mod_mono versions. Featuring, among other things:

  • Monodoc, documentation writing facility (Screenshot).
  • Progress on the PPC code generator port (Screenshot).
  • Internationalization support.
You can see the full list of features here. And you can download it here.Mono is the Free Software implementation of the .Net development platform. Which gives us:
  • Garbage collection facilities.
  • A pretty big class library.
  • A compiler for C#.
  • A just in time compiler or virtual execution engine and a precompiler.

Re: PowerPC Support

To answer your questions...

"Progress" means "better than it was," which means "it works, sort of", which means "it's not as good as x86, but it should get there Real Soon Now."

So yes, it's lagging behind x86.

Why Darwin? Because lots of people use Mac OS X (a.k.a. Darwin; look at `uname -a` sometime), and Mac OS is the most common OS for PPC.

Will it work on Linux/PPC? It should. Right now one of the more common problems is with the garbage collector, which looks like it's having problems with BSD threads. Linux/PPC should avoid this problem. Other than library issues, the real holdup is PPC support, which should be identical between Darwin and Linux.

What stopped earlier PPC support? The current Mono JIT is the 3rd version, designed specifically to be more easily portable among differing CPU architectures (a problem with the previous versions). It had one problem: registers and argument passing. x86 was the first supported platform, so arguments were initially passed on the stack. This is NOT how RISC processors do things -- they use CPU registers extensively for passing arguments.

So, the JIT had to be modified to use registers for passing arguments, and this delayed PPC support.

Plus, there are a number of type and library issues with Darwin, related to sockets and threading, that needed (and still need) fixing in order to allow the interpreter to execute, never mind the JIT.

Should it "just be slower without special PPC support"? Yes. A LOT slower -- the interpreter is several orders of magnitude slower than the JIT.

Why did it not work AT ALL until recently? Because there weren't any major developers focused on Darwin. I read the CVS list; they have volunteers who are working specifically on HP and Sparc ports, but few volunteers were actually working on Darwin. Most were just looking to see if it worked, but didn't contribute any major patches to make it work.

Now that some of the core Mono developers have started working on the Darwin port, things have speed up considerably.

What's this mean for Mono as an open, architecture-indepedant solution? It means it's open, but architecture support is lacking. It likely always will be lacking, as there are probably more architectures than developers willing and able to port to those architectures. Look at Java. How many platforms have a decent JIT? (Not interpreter support, but a JIT.) I doubt that there's PPC64 JIT support for Java. Especially since Darwn is still a 32-bit OS. Someone is likely working on it, certainly, but architecture support takes time.