[mercury-users] csharp top_level.exe [was: csharp grade error in mdb.browse.cs]

Peter Wang novalazy at gmail.com
Wed Dec 8 12:07:34 AEDT 2010

On 2010-12-06, Jeff Thompson <jeff at thefirst.org> wrote:
> On 12/6/2010 5:35 PM, Peter Wang wrote:
> >On 6 December 2010 19:03, Jeff Thompson<jeff at thefirst.org>  wrote:
> >>Now to run in Windows...  top_level calls mmc again which on Windows 7 is
> >>the Microsoft Management Console.
> >>Is there an environment variable or switch so that top_level will call
> >>invoke something different than "mmc"?
> >No, but if you ensure Mercury's bin directory appears before the
> >Windows system directory in the PATH environment variable, then it
> >should work.
> First of all, on my Solaris box, I used the C# top_level.exe to once
> again compile top_level.exe and it worked! Very satisfying.
> Now to Windows.  I did change the PATH to put the Mercury bin
> directory in front of the Windows system directory.  At the command
> prompt, when I type "mmc" it invokes the compiler, but internally
> top_level.exe is still invoking the Microsoft Management Console. I
> don't know if this is some Windows Vista magic that can't be
> overridden.

I'm not sure why mmc is called at all.  When MERCURY_COMPILER is set, it
should be invoked directly.  Perhaps, on Windows or .NET, the new
process doesn't inherit the environment from the parent process.
The MSDN documentation for System.Diagnostics.Process.Start is silent on
this point.

The conflict with Microsoft Management Console has been annoying for a
long time.  I think we should provide an ambiguous synonym, e.g.

> Can I just permanently set the MERCURY_COMPILER and
> MERCURY_CONFIG_DIR environment variables so that it doesn't need the
> mmc script?

It wouldn't be trivial.

mercury-users mailing list
Post messages to:       mercury-users at csse.unimelb.edu.au
Administrative Queries: owner-mercury-users at csse.unimelb.edu.au
Subscriptions:          mercury-users-request at csse.unimelb.edu.au

More information about the users mailing list