[Mono-dev] Standard name for mcs

Robert Jordan robertj at gmx.net
Mon Jun 28 06:05:20 EDT 2010

On 28.06.2010 11:13, Russell Wallace wrote:
> Sure, but it's not installed by default, even after installing the
> mono-devel package:
> a at a-desktop:~$ mcs
> The program 'mcs' is currently not installed.  You can install it by typing:
> sudo apt-get install mono-mcs
> I'm guessing this is because mcs in its current form, being a copy of
> an old compiler, requires an amount of bandwidth considered
> significantly greater than zero. But when the old compiler goes away,

Mcs is not an "old compiler". It is the compiler of the .NET 1.1
profile. Since this profile is not installed on your machine,
mcs is likewise not available because it would be of no use
w/out the core 1.1 assemblies.

> that will leave the name free, so it could be used for an alias script
> that points to the current/latest compiler; and an alias script is
> small enough to be installed by default.

This is a bad idea, IMO. .NET is very explicit at compile
time, i.e. you must explicitly specify the runtime version
you're compiling for and the assemblies you're binding

The runtime version is implicitly set by the specified compiler:

	mcs -> .NET 1.1
	gmcs -> .NET 2.0
	dmcs -> .NET 4.0

behind your back.

Having a hypothetical "mcs" pointing to a "current" compiler will
not solve the problem of having to choose a runtime version
at compile time. This is fundamental in the .NET world, even
if people don't always recognize this feature.

There are efforts to make "mcs" a multi-target compiler (probably
under a new name and with script wrappers for "mcs", "gmcs",
"smcs", "dmcs"), but even then you'll have to specify the target
runtime version via a command like switch (or resort to the
aforementioned wrappers).


> On Mon, Jun 28, 2010 at 8:20 AM, Oskar Berggren
> <oskar.berggren at gmail.com>  wrote:
>> 2010/6/28 Russell Wallace<russell.wallace at gmail.com>:
>>> On Mon, Jun 28, 2010 at 2:52 AM, Jonathan Pobst<monkey at jpobst.com>  wrote:
>>>> Likely, when gmcs goes away, an alias script called 'gmcs' will be left
>>>> in it's place that points to the current compiler.
>>> Yes, please do this -- that would be the preferred solution.
>>> It would be nice if the same could also be done with mcs once it's
>>> formally removed from the standard Mono distribution as a separate
>>> program -- being just a one line script, hopefully this could be put
>>> back into the version shipped with Ubuntu?
>> "...Put back..."?
>> It is still there:
>> http://packages.ubuntu.com/lucid/mono-mcs
>> /Oskar

More information about the Mono-devel-list mailing list