[Mono-dev] Mono

Kornél Pál kornelpal at hotmail.com
Thu Oct 20 08:07:52 EDT 2005


Microsoft Visual C++ .NET 2005 will support platform independent code with
/clr:safe but will not have this support with /clr:pure.

Microsoft don't want to implement /clr:pure as platform independent altough
it has a lot of advantages over /clr:safe. Furthermore they state that
unsafe code cannot be platform independent. They even state: "Even
unverifiable code written in C# cannot be platfrom independent, for the same
reason." Of course we all and even they know that this is untrue as their
Microsoft Visual C# .NET compiler can produce platform independent unsafe
code and there are numeric operations in IL specially designed to deal with
native size integers. In addition unsafe code compiled using /clr:pure is
designed for x86 (maybe another binary can be compiled that is 64-bit only)
and will not run on 64-bit Windows.

For more information see:


----- Original Message -----
From: "Jonathan Pryor" <jonpryor at vt.edu>
To: "Zymmeral" <zymmeral at yahoo.com>
Cc: <mono-devel-list at lists.ximian.com>
Sent: Thursday, October 20, 2005 1:08 PM
Subject: Re: [Mono-dev] Mono

> On Wed, 2005-10-19 at 12:05 -0700, Zymmeral wrote:
>> When will there be a C++ compiler for Mono?
> The Mono team isn't working on a C++ compiler, and likely never will.
> So the answer to your question depends on what features you want.
> If you want C++/CLI support for pure-IL assemblies, there will be "a C++
> compiler for Mono" in ~1.5 months, called "Visual Studio.NET 2005."  In
> theory, pure-IL C++/CLI apps should run unchanged under Mono, though I
> haven't heard of too many people actually trying this.
> If you want C++/CLI support for mixed-mode assemblies (single .dll/.exe
> files containing both managed and unmanaged code), there are bigger
> problems -- such as the complete lack of support for mixed-mode
> assemblies within Mono.  I'm not sure if this will ever be "corrected,"
> as supporting them would virtually require copying all of /lib/ld.so
> into Mono.
> (On Win32, Mixed-mode assemblies work because assemblies are PE files,
> and normal .DLL files are PE files, so .NET can just
> LoadLibrary()/GetProcAddress() the assemblies to get the native methods.
> The normal OS Library Loader helps immensely.  Linux is different, as
> ELF is the shared library format, not PE, so you can't
> dlopen(3)/dlsym(3) the mixed-mode assembly, meaning that to properly
> support mixed-mode assemblies in Mono you'd have to replicate most of
> the work of /lib/ld.so for use on PE files.  See also the Wine project.
> Plus, you won't ever be able to use a Win32-compiled mixed-mode assembly
> on Linux, ever, because of differences in shared library names, exports,
> etc.)
> If you want a Free C++/CLI compiler for Mono, you may be waiting awhile.
> I've heard of various efforts over the years, but it's been awhile since
> I've heard anything at all.
> - Jon
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list

More information about the Mono-devel-list mailing list