BT

Mono 4.0 Released with C# 6

| by Jonathan Allen Follow 575 Followers on May 06, 2015. Estimated reading time: 2 minutes |

Mono 4.0 was officially released this month. This marks the first version that contains open source code from Microsoft’s CoreCLR project. It also defaults to C# 6, meaning that once again Mono has an RTM version of a new C# compiler before Microsoft.

In addition to the features and changes we previously reported on, Mono 4 is supposed to have “Lighter Debugger overhead” and “Basic PowerPC64 LE support”. Specific details on these features are not available at this time.

Many people have been asking why the Mono project should continue now that Microsoft is working on their own open source, cross platform CLR. Mono contributor and reddit user _alexrp_ explains,

I think people have the wrong mindset about this whole Mono/CoreCLR situation. Why should one VM becoming open source and being ported to other OSs mean that another VM can't exist? It'd be like saying that there should only be one Python implementation, or one JVM. That is not a good thing. Competition is healthy.

Mono happens to have a lot of features that CoreCLR doesn't: LLVM, full AOT, NaCl, tasklets, cross-VM GC bridge, various profiler modules, etc. Mono's startup time and runtime memory footprint are also optimized for platforms/devices that CoreCLR isn't (at least presently) even targeting. OTOH, CoreCLR has a more mature GC and generally better code generation (hence the slower startup time). The two VMs are good at different things, and there is no reason both cannot exist.

It's not like we insist on keeping our own code either. We're happy to switch to CoreCLR/reference source code when there are clear benefits to doing so (less maintenance, more correct, still portable enough). We've imported tons of reference source code already, and we're also importing certain parts of the CoreCLR VM:

https://github.com/mono/mono/blob/master/mono/metadata/decimal-ms.c

https://github.com/mono/mono/blob/master/mono/metadata/threadpool-ms.c

The 4.0 release is not without its flaws. Reddit user whatsinashagbox writes,

I'm not quite sure how to handle this now, since I have an app that has some third party dll's that seem to want the 10.0.0.0 version of Microsoft.VisualBasic.dll and will not run under mono 4. The release notes seem to imply there's a way to get it to use the .Net 4.5 assembly, but I am not clear on how to do that. Anyone got any ideas how to make this thing work with the new version of mono?

This is currently being researched and appears to be an accident.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Topic by Luiz Adolphs

Well, there`s a large suit of .Net technologies (wf, silverlight) that the new framework version must support, and those are far beyond what Mono CLR can reach, right?

Re: Topic by Jonathan Allen

Sorry, that's not the plan.

Microsoft's Core CLR is only going to support ASP.NET 5 and console applications.

If you want to use more of the .NET framework (e.g. WinForms), you need to use Mono.

Nobody is supporting Silverlight or WPF on Linux.

Re: Topic by Paulo Oliveira

well pointed!

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

3 Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT