[Mono-list] Re: Bootstrapping

Paolo Molaro lupus@ximian.com
Thu, 8 Jul 2004 17:15:16 +0200

On 07/08/04 Brandon Knitter wrote:
> If the original Mono mcs C# compiler was written and compiled on a Windows
> machine, how did it get ported to Linux?  Was there some sort of wine or
> wine-ish runtime used to execute csc on Linux to compile the first mcs?

The first mcs.exe and corlib.dll binaries were compiled on windows.
While mcs and corlib were being worked on, work was done on linux to
build the CLI runtime that could execute the IL code in mcs and corlib
(at first just as an interpreter, later as a JIT compiler). The
interpreter/JIT and support libraies are written in C. Using the
binaries compiled on windows a new corlib and a new mcs were compiled
(on linux this time) and they have been used to compile new versions of
mcs and corlib since then (with each new version used to compile the

> Also, how does this initial bootstrapping binary play out for other platforms? 
> When porting to each target platform, will a similar bootstrapping binary have
> to be compiled so that the larger mcs compiler can be built?  Who's going to
> maintain those?

There is no larger mcs. The same process above works for any platform
mono works on (except no one uses the windows builds anymore, but we
start from a mcs and corlib binaries built on linux/x86).


lupus@debian.org                                     debian/rules
lupus@ximian.com                             Monkeys do it better