static int Main(string[] args) { var exename = Path.GetFileNameWithoutExtension(Environment.GetCommandLineArgs()[0]); switch (exename) { case "isc": case "isc32": args = PrefixArgs(args, "-nologo"); break; } if (args.Length > 0 && args[0] == "-profile") { const string PROFILER_GUID = "{9E2B38F2-7355-4C61-A54F-434B7AC266C0}"; if (ExecuteRegsvr32(false, true)) { ProcessStartInfo psi; // create a process executor psi = new ProcessStartInfo(typeof(Program).Assembly.Location); // ----- SET THE CLR ENVIRONMENT VARIABLES ------------------- // set the COR_PROFILER env var. This indicates to the CLR which COM object to // instantiate for profiling. if (psi.EnvironmentVariables.ContainsKey("COR_PROFILER") == true) { psi.EnvironmentVariables["COR_PROFILER"] = PROFILER_GUID; } else { psi.EnvironmentVariables.Add("COR_PROFILER", PROFILER_GUID); } ////// set the Cor_Enable_Profiling env var. This indicates to the CLR whether or ////// not we are using the profiler at all. 1 = yes, 0 = no. if (psi.EnvironmentVariables.ContainsKey("COR_ENABLE_PROFILING") == true) { psi.EnvironmentVariables["COR_ENABLE_PROFILING"] = "1"; } else { psi.EnvironmentVariables.Add("COR_ENABLE_PROFILING", "1"); } // ----- RUN THE PROCESS ------------------- string[] argargs = new string[args.Length - 1]; Array.Copy(args, 1, argargs, 0, argargs.Length); psi.Arguments = string.Join(" ", argargs); psi.UseShellExecute = false; try { Process p = Process.Start(psi); //p.PriorityBoostEnabled = true; p.WaitForExit(); return(p.ExitCode); } finally { ExecuteRegsvr32(false, false); } } else { // remove -profile string[] argargs = new string[args.Length - 1]; Array.Copy(args, 1, argargs, 0, argargs.Length); args = argargs; } } if (Array.IndexOf(args, "--remoting-server") >= 0) { Host.Start(); args = Array.FindAll(args, x => x != "--remoting-server"); } //Encoding oi = Console.InputEncoding; Encoding oo = Console.OutputEncoding; //Debugger.Launch(); try { //Console.InputEncoding = Encoding.UTF8; Console.OutputEncoding = Encoding.UTF8; return(IronSchemeConsoleHost.Execute(args)); } finally { Console.OutputEncoding = oo; //Console.InputEncoding = oi; } }
static int Main(string[] args) { #if !NETCOREAPP2_1_OR_GREATER if ((Array.IndexOf(args, "-profile")) >= 0) { const string PROFILER_GUID = "{9E2B38F2-7355-4C61-A54F-434B7AC266C0}"; if (ExecuteRegsvr32(false, true)) { ProcessStartInfo psi = new ProcessStartInfo(typeof(Program).Assembly.Location); psi.EnvironmentVariables["COR_PROFILER"] = PROFILER_GUID; psi.EnvironmentVariables["COR_ENABLE_PROFILING"] = "1"; // ----- RUN THE PROCESS ------------------- args = Array.FindAll(args, x => x != "-profile"); psi.Arguments = string.Join(" ", args); psi.UseShellExecute = false; try { Process p = Process.Start(psi); p.WaitForExit(); return(p.ExitCode); } finally { ExecuteRegsvr32(false, false); } } else { // remove -profile args = Array.FindAll(args, x => x != "-profile"); } } #endif var exename = Path.GetFileNameWithoutExtension(Environment.GetCommandLineArgs()[0]); switch (exename) { case "isc": case "isc32": case "ironscheme": args = PrefixArgs(args, "-nologo"); break; } args = Args(args, "--show-loaded-libraries", () => Builtins.ShowImports = true); args = ParseIncludes(args); Encoding oo = System.Console.OutputEncoding; #if !NETCOREAPP2_1_OR_GREATER EnableMulticoreJIT(); #endif try { System.Console.OutputEncoding = Encoding.UTF8; #if NETCOREAPP2_1_OR_GREATER Builtins.Exact(1); #endif return(IronSchemeConsoleHost.Execute(args)); } finally { System.Console.OutputEncoding = oo; } }
static int Main(string[] args) { return(IronSchemeConsoleHost.Execute(args)); }