It is that time of the Quarter! Traveling to Microsoft.

by Miguel de Icaza

When Joseph and myself head out to Redmond to meet with some folks at Microsoft about Moonlight.

This is a call for all cool cats at Microsoft that would like to get together and talk shop to drop me an email (miguel at gnome dot org) and we can schedule something.

Posted on 05 Feb 2009


XBox Division at Microsoft

by Miguel de Icaza

For about a year I have been trying to find someone in the XBox360 division at Microsoft that we can talk to about bringing Mono to the XBox360 to allow C/C++ developers to script their applications with the high performing C#, Boo or the Iron* languages as opposed to interpreters.

A year ago Mono could not target the XBox360 as apparently this platform, like the iPhone, does not support JITing. Mono now supports full static compilation of .NET code into native code before deployment and we would very much like to bring this to the XBox360.

If you are a Microsofty and you know how to get a hold of someone on the XBox360 group in the Middleware division and you could hook us up, I would love if you could arrange an introduction.

Posted on 03 Feb 2009


Linux Outlaws Podcast

by Miguel de Icaza

Last week the folks at Linux Outlaws interviewed me about Mono.

The idea was that someone on a previous episode apparently did not quite like Mono and they wanted to hear my take. In the end I am not sure that we even talked about their concerns, but it was a fun interview.

Posted on 03 Feb 2009


IronClad

by Miguel de Icaza

The guys at Resolver Systems have released IronClad. IronClad is a library that allows IronPython to use any existing compiled CPython extension.

The new version has matured to the point that it is able to use CPython's numpy and pass its test suite.

It is lovely to see third parties start to test their code with Mono in addition to .NET as part of the release process. The code has been tested with Mono, and comes with Unix makefiles.

Posted on 30 Jan 2009


One Month of Email Gone

by Miguel de Icaza

If you sent me an email in the last month, and you are waiting for me to reply, please resend your email.

I accidentally deleted all email since December 18th, 2008.

Posted on 27 Jan 2009


DekiWiki powers WhoRunsGov.Com

by Miguel de Icaza

Aaron Fulkerson and his team at Mindtouch have done it again. This time they landed the Washington Post new http://whorunsgov.com project:

WhoRunsGov.com provides a unique look at the world of Washington through its key players and personalities. The site features concise profiles of influential political officials who shape government policy, including members of the new presidential administration, Pentagon officials, lawmakers, senior congressional aides and committee staff. The first several hundred profiles are being crafted by a newly created editorial team at the Washington Post Company, as well as a group of experienced outside contributors. Each profile provides in-depth information on an official’s policy experience, involvement in government decision-making, major policy positions, key associates, political affiliations, voting records, campaign and personal finance information, plus relevant news articles from around the Web.

Their Deki project has gone from the cutest Wiki system to a full collaboration platform.

Their press release has the details.

And as my readers have come to expect, yes, this is also built on top of Mono. Deki is not built with ASP.NET --Microsoft's web platform-- instead the engine is built on top of Mindtouch's Dream framework and the presentation layer is built on top of PHP.

Congraulations to Mindtouch on this important launch!

Posted on 23 Jan 2009


Cartoon Network's Kid's MMO and Mono.

by Miguel de Icaza

The amazing Joachim Ante from Unity3D wrote me to tell me that Cartoon Network's new browser-based MMO for kids FusionFall has finally launched to the public.

Fusion Fall takes advantage of many new features in Unity3D for creating large worlds. I live blogged some of the details as Joachim presented them at the Unite Conference.

Unity uses the Mono runtime on both Windows and MacOS and it might become one of the largest deployment vehicles for the Mono VM.

There is an air of coolness in the fact that Mono is being used on Windows instead of .NET. And part of it has to do with the fact that Mono's open source engine allowed Unity to modify it to suit their very specific needs.

As I mentioned at my PDC talk, the .NET engine is fantastic, but up until Mono only Microsoft was in a position to reshape .NET into different forms (Silverlight and Mesh both use a special trimmed-down .NET called CoreCLR). I would love to see a world where people take Mono (or chunks of Mono) tune it and shape it to suit their needs.

Congratulations to the team at Unity for a job well done, and to the team that produced FusionFall. You can see the introduction video:

One thing that stands out in FusionFall is that it shows what a big creative budget can do with Unity.

Go Mono gaming, Go!

Posted on 22 Jan 2009


Linux and the Inauguration

by Miguel de Icaza

Not only was the inauguration transmitted using Silverlight, but also on each window for everyone watching the inauguration from pic2009.org the following caption was at the bottom of every page:

Every viewer could see "Linux-compatible Silverlight Player".

Posted on 21 Jan 2009


Watching the Obama Official Inauguration on Linux with Moonlight.

by Miguel de Icaza

I just wanted to confirm that you can watch today's Barack Obama Official Inauguration video stream using Moonlight on Linux/x86 and Linux/x86-64 systems.

All you need to do is to go to the Moonlight Download page, install Moonlight and restart your browser. Then you can visit www.pic2009.org in a few hours and watch the event from Linux.

Microsoft worked late last night to get us access to the code that will be used during the inauguration so we could test it with Moonlight.

Thanks to: Joseph, Larry, Geoff, Rusty and specially Aaron who all worked tirelessly to implement and get everything tested tonight and ready to go on the Novell side. To Brian, Eric, Ben at Microsoft and Mio at IStreamPlanet to make sure that Linux users will be able to watch Obama's inauguration.

Ben Waggoner has posted an update on the Microsoft side..

Aaron's code will also be powering MacOS/PPC streaming.

Now everyone say at once: O-ba-ma! O-ba-ma! O-ba-ma!

Posted on 20 Jan 2009


Mono's New Code Generation Engine

by Miguel de Icaza

Three years ago, in November of 2005 we started a project to upgrade Mono's code generation engine as the engine started to age and it became increasingly difficult to improve code generation and extend the JIT engine in meaningful ways.

The new code generation engine is based on a linear intermediate representation as opposed to the tree-based intermediate representation that we had used up to Mono 2.0.

Switching the code generation engine is a pretty significant effort and we did not want to switch it shortly before we had to ship Mono 2.0, so we decided to ship 2.0 with the engine that had been in wide use.

Shortly after we branched Mono's tree for the 2.0 release Zoltan merged his work from the linear branch into the main tree.

We have now shipped all of this as part of Mono 2.2, you can get it here.

Some Benchmarks

Mono's new engine generates much better code than the version found in Mono 2.0.

Speed: The engine will mostly benefit computationally intensive code, usually between 10% and 30% performance increase, with some cases going up as high as being 50% faster.

Code size: the new engine generates slimmer code, typically 12% to 20% smaller code generated.

Check out some of the benchmark results.

Debugging the Transition

Although we had our test suite, and we regularly tested the code against most apps, we were still afraid that something might go wrong. The new code could miss-compile something, and it would be hard in a large project to pin point exactly what went wrong.

For example, the problem might not appear while compiling a small test program like `hello world', but could appear when running a web site under heavy load or when running MonoDevelop.

Zoltan came up with a very interesting solution: for a period of time Mono had two JIT engines built into it, the new and the old one. Here is where the clever trick comes in: an environment variable contained the number of methods that should be compiled with the new JIT engine. After the Nth method had been compiled, the engine would switch code generators.

This was used to bisect regressions and failures.

A couple of months after we had done the switch and both our unit tests and our system tests passed the old JIT engine was eliminated from Mono.

SIMD

Using SIMD for accelerating certain floating point operations had been in the back of our minds for a while. We looked into implementing that in our old engine, but that turned out to be very difficult.

With the new engine, Rodrigo was able to put together a prototype in a weekend (the legend goes that Rodrigo's wife was busy that weekend).

This prototype was later turned into Mono.SIMD an API for accelerating vector operations.

Mono 2.2 is the first release to officially support and distribute it. To learn more about Mono.SIMD support, you can see this blog entry.

Full Generics Sharing

With this release, the generics code sharing engine has been completely debugged and is now enabled not only for code that lives in mscorlib, but for all generics code written by the user.

The Technical Details

We have provided A complete description of Mono's new engine design and the the various code generation stages.

Posted on 20 Jan 2009


« Newer entries | Older entries »