[Mono-dev] PATCH: Make Process.Start() use the same 'mono'runtime

Miguel de Icaza miguel at novell.com
Tue Jun 5 00:23:45 EDT 2007


> I still prefer the environment variable approach. Are there any serious
> disadvantages? Here are some additional thoughts:

And I still think that we will use a hardcoded value for the

> - If it isn't going to work to have the code inside CreateProcess, then if
> it is implemented using an environment variable, the code for detecting CLR
> binaries can be 100% managed. The only downside is that the logic for
> determining the full path to the binary then needs to be duplicated, but it
> needs to be duplicated anyway if the implementation can't be inside
> CreateProcess, and if this is done in managed code, it can take advantage
> of things like Path.GetFullName().

I think we can keep the code inside CreateProcess,

> - Tools can be written to compare behaviour and/or performance of .NET
> applications across different runtimes. For instance, on UNIX, code aware
> of the behaviour could select between mono and DotGNU by setting the
> environment variable. 

Tools to do that can much more easily specify the runtime to use by
calling the specific interpreter instead of depending on yet another
obscure environment variable that if we are remotely lucky will be

Ie, Process.Start ("mono program.exe") and Process.Start ("clix
program.exe") much easier than setting the environment and then calling

> Similarly, on Windows, code could select between mono
> and the MS .NET framework by clearing and re-setting the environment
> variable. Also, on any platform, performance comparisons could be easily
> done in an automated fashion between different versions of mono installed
> side-by-side.

This is arguably the only possible use for this setup and am not
convinced that supporting the extra feature/bloat is worth it.

> Shall I rework the patch to do the check directly inside
> System.Diagnostics.Process.Start?

I think your current patch is fine, I only ask you for either:

	* Sign a copyright assignment form, so we can get the code
	  in the runtime.

	* License the patch under the MIT X11 code, so we are allowed
	  to relicense it.


More information about the Mono-devel-list mailing list