[Mono-dev] Standard name for mcs

Russell Wallace russell.wallace at gmail.com
Sun Jun 27 12:43:44 EDT 2010

The issue is backward compatibility. At the moment, I would like to
use C#4 features but I can't because it's not generally available, so
I'll stick to C#3; fair enough. But then, having done that, my program
should continue to work even when later versions of Mono that support
4 (which is a superset of 3) start appearing in the field. But if I
write my makefile to call gmcs, it will start failing as soon as dmcs
becomes the default compiler, even though dmcs would presumably be
able to compile the code just fine.

On Sun, Jun 27, 2010 at 5:38 PM, Mark de Bruijn | Dykam
<kramieb at gmail.com> wrote:
> Isn't it you deciding what platform your source targets? That is also the
> decision of compiler. Once you get to use eg C#4 features, you want dmcs to
> be the compiler.
> --
> Mark
> On Sun, Jun 27, 2010 at 6:37 PM, Russell Wallace <russell.wallace at gmail.com>
> wrote:
>> I'm trying to distribute a C# program in both binary and source form
>> so that the user can optionally recompile it.
>> According to http://www.mono-project.com/CSharp_Compiler
>> "You have to pick one of:
>> mcs: compiler to target 1.1 runtime (to be deprecated with Mono 2.8).
>> gmcs: compiler to target the 2.0 runtime.
>> smcs: compiler to target the 2.1 runtime, to build Moonlight applications.
>> dmcs: Starting with Mono 2.6 this command is the C# 4.0 compiler, and
>> references the 4.0 runtime."
>> And indeed on my Ubuntu 10.04 VM, 'gmcs' works but 'mcs' gives an
>> error message. (dmcs would be nice to have, presumably it just hasn't
>> made it through the pipeline yet -- the Ubuntu version of Mono is
>> 2.4.4 -- which is fair enough.)
>> The problem I'm trying to solve is how to write a reliable makefile. I
>> can have the makefile call gmcs, but then presumably this will start
>> failing as soon as dmcs becomes the standard version.
>> Would it be possible to define a command to run whatever the
>> latest/currently installed C# compiler is? It seems to me that command
>> should be mcs, but it doesn't really matter what it is, as long as it
>> works reliably on all systems.
>> _______________________________________________
>> 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