[Mono-list] C++ compatible CLR?

Miguel de Icaza miguel@ximian.com
16 Dec 2002 15:39:52 -0500


Hello,

> Yesterday I have read an ca 1 years old article about .net again.
> 
> In this magazine there stood advantages and disadvantages of C# and .net 
> (and things, what could be better) .
> 
> Some of the things, which the magazine have listed, what could be better is, 
> that the CIL is not compatible to C++.
> Not all C++-programs can be compiled to the CIL. The reason is, that C++ 
> supports "Mehrfachvererbung" for example - the CIL dosen't.
> ("Mehrfachvererbung" is a german word. And I don't know how it is called in 
> english. Is it called "multi-heredity" ?)
> 
> So, is it possible, that Mono integrate this features in its CIL, which 
> Microsoft haven't integrated?

Multiple-inheritance can be emulated on the CIL (C++ does this) and
Eiffel.NET found an interesting trick to implement it, so there is no
need to change the CIL.

Now, even in that case, I am more interested in remaining compatible to
the Microsoft CIL than to do our own extensions.

But I am not shutting down your idea.  In fact, if someone is motivated
enough, they can use Mono as a research platform to try out the idea, do
a proof-of-concept implementation, and then they could propose this to
the ECMA standards body.

I do not know enough about multiple-inheritance to have a strong
opinion, but I know people who do have a pretty strong opinion against
it, so you might want to address those issues as well.


> But for completeness, here the "disadvantages" of C#, which there was 
> listed:
> - it is not possible to get more parameters by one function back

You can use `out' parameters.

> - no support for definitions of pre- and postconditions and invariants.

Brian posted a link yesterday about pre-conditions using attributes
which was interesting.  It is not natively supported as Eiffel does.

Miguel