Skip to content

Commit 4dec65b

Browse files
committed
Try to fix missing compiler messages.
1 parent f7ebf8f commit 4dec65b

File tree

2 files changed

+418
-419
lines changed

2 files changed

+418
-419
lines changed

ncc/main.n

+23-32
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* 3. The name of the University may not be used to endorse or promote
1515
* products derived from this software without specific prior
1616
* written permission.
17-
*
17+
*
1818
* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY ``AS IS'' AND ANY EXPRESS OR
1919
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
2020
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
@@ -55,7 +55,7 @@ namespace Nemerle.CommandlineCompiler
5555

5656
Platform : int = Environment.OSVersion.Platform :> int;
5757
IsUnix : bool = IO.Path.DirectorySeparatorChar == '/';
58-
58+
5959
public Main() : void
6060
{
6161
def is64bitProcess = IntPtr.Size == 8;
@@ -65,24 +65,24 @@ namespace Nemerle.CommandlineCompiler
6565
Environment.Is64BitOperatingSystem
6666
#else
6767
if (!IsUnix)
68-
{
69-
Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE") == "AMD64" ||
68+
{
69+
Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE") == "AMD64" ||
7070
Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432") == "AMD64"
7171
}
7272
else
7373
{
7474
def unameProcess = Process();
7575
unameProcess.StartInfo.UseShellExecute = false;
76-
unameProcess.StartInfo.CreateNoWindow = false;
76+
unameProcess.StartInfo.CreateNoWindow = false;
7777
unameProcess.StartInfo.FileName = "/bin/uname";
7878
unameProcess.StartInfo.Arguments = "-m";
7979
unameProcess.StartInfo.RedirectStandardOutput = true;
80-
80+
8181
if (unameProcess.Start())
8282
{
8383
def output = unameProcess.StandardOutput.ReadToEnd();
8484
unameProcess.WaitForExit();
85-
85+
8686
unameProcess.ExitCode == 0 && output.Contains("x64")
8787
}
8888
else
@@ -149,7 +149,7 @@ namespace Nemerle.CommandlineCompiler
149149
else
150150
main_with_catching()
151151
}
152-
152+
153153
needs_bigger_stack() : bool
154154
{
155155
typeof(object).Assembly.GetType("System.RuntimeType") != null ||
@@ -168,35 +168,26 @@ namespace Nemerle.CommandlineCompiler
168168
}
169169
catch
170170
{
171-
| e is IO.FileNotFoundException =>
172-
Message.Error (e.Message)
173-
| e is Recovery =>
174-
bomb (e, "got Recovery exception")
175-
| e is BailOutException =>
176-
bomb (e, "got bail out exception")
177-
| e is ArgumentException =>
178-
bomb (e, "got ArgumentException (" + e.Message + ")")
179-
| e is MatchFailureException =>
180-
bomb (e, "got MatchFailureException exception")
181-
| e is ICE =>
182-
bomb (e, e.Message)
183-
| e is AssertionException =>
184-
bomb (e, e.Message)
185-
| _ is AssemblyFindException =>
186-
Environment.Exit (3);
187-
| e =>
188-
bomb (e, $ "got some unknown exception of type $(e.GetType()): $(e.Message)")
171+
| e is IO.FileNotFoundException => bomb(e, e.Message)
172+
| e is Recovery => bomb(e, "got Recovery exception")
173+
| e is BailOutException => bomb(e, "got bail out exception")
174+
| e is ArgumentException => bomb(e, "got ArgumentException (" + e.Message + ")")
175+
| e is MatchFailureException => bomb(e, "got MatchFailureException exception")
176+
| e is ICE => bomb(e, e.Message)
177+
| e is AssertionException => bomb(e, e.Message)
178+
| e is AssemblyFindException => bomb(e, e.Message, exitValue=3)
179+
| e => bomb(e, $ "got some unknown exception of type $(e.GetType()): $(e.Message)")
189180
}
190181

191182
Message.MaybeBailout();
192183
}
193-
194-
bomb (e : Exception, msg : string) : void
184+
185+
bomb(e : Exception, msg : string, exitValue : int = 2) : void
195186
{
196-
Manager.KillProgressBar ();
197-
Message.MaybeBailout (true);
198-
Message.Error (sprintf ("internal compiler error: %s\n%s\n", msg, e.StackTrace));
199-
Environment.Exit(2);
187+
Manager.KillProgressBar();
188+
Message.MaybeBailout(true);
189+
Message.Error($<#internal compiler error: $msg. $(e.StackTrace.Replace("\r\n", "¦").Replace("\n", "¦"))#>);
190+
Environment.Exit(exitValue);
200191
}
201192

202193
parse_command_line() : void

0 commit comments

Comments
 (0)