views:

149

answers:

6

According to Wikipedia, Mono has three main components:

  • Core components
  • Mono/Linux/GNOME development stack
  • Microsoft compatibility stack

I want to know what the language or technology each one of those components is developed in.

EDIT:
I know that the some portions of the project is developed in C#, especially the old ones, but I want to know if the WHOLE project is developed in C#, or not.

A: 

mono is open source - why don't you just look at the source? see here http://www.go-mono.com/mono-downloads/

Edit: To be less rude

One of the first things mono did was to build a self compiling C# compiler. I would assume that they still write most of the stuff in that or a direct descendant.

Preet Sangha
that could be the answer to almost any open-source question, and is not particularly helpful
Rich Seller
but its true though...
Preet Sangha
If you're going to take the time to answer, you could at least post a link to the SCM to help the OP out
Rich Seller
+2  A: 

Here's a link to the Mono Subversion repository. From The Compiling Mono From SVN:

This assumes that you have a working mono installation, and that there's a C# compiler named 'mcs', and a corresponding IL runtime called 'mono'.

So I guess it is implemented in C#

Rich Seller
Thanks for the link and the citation. +1
Moayad Mardini
A: 

The Mono compiler (mcs/gmcs) is written in C++.

The class libraries (System, System.Web, etc.) are written in C#.

Some of the low-level functionality that can't be done in C# (for example: P/Invoke, native windowing) is also written in C++.

Ian Kemp
Nope, the runtime is in C, the C# compiler is written in C#.
Jb Evain
A: 

This is a educated guess, but the vm, jit and all the runtime stuff is probbly written in c or c++. The development stack like the interfaces to gnome api's, language libaries etc are probbly written in c sharp.

Microsoft compatibility stack is probbly written in c sharp implemented with the c sharp interfaces to native linux libaries.

It is a guess though. You can check yourself.

UK-AL
+7  A: 

The runtime itself is written in C. The different class libraries and tools, as well as the C# compiler are entirely written in C#.

The only exception is the VB compiler and VB libraries that are written, well, in VB.

Jb Evain
Thanks for the detailed information. +1
Moayad Mardini
+2  A: 

You can see a breakdown of lines of code in individual languages here.

The core itself which has to communicate with lower-level operating system functions is mostly written in C, while the class library is mostly written in C#.

Joey
That link is fantastic, thanks a lot. +1
Moayad Mardini
The only issue with the ohloh is that it takes into account a lot of things that are in SVN, such as moonlight for instance, but that are not directly part of Mono.
Jb Evain
Johannes, they both share /trunk/moon which is where the Moonlight code lives in. I kind of have a clue you know :)
Jb Evain
Argh, sorry. Overlooked that one. Too many that looked like `trunk/mono` and `trunk/moon` looking very similar ... bleh, I need coffee ...
Joey