Merge pull request #2026 from reactormonk/koch-temp-125-exit-code

Koch temp 125 exit code
This commit is contained in:
Andreas Rumpf 2015-02-01 01:38:06 +01:00
commit fa166dc42d
2 changed files with 18 additions and 3 deletions

View file

@ -145,6 +145,19 @@ are also lots of procs that aid in debugging:
# why does it process temp.nim here? # why does it process temp.nim here?
writeStackTrace() writeStackTrace()
To create a new compiler for each run, use ``koch temp``::
./koch temp c /tmp/test.nim
``koch temp`` creates a debug build of the compiler, which is useful
to create stacktraces for compiler debugging.
``koch temp`` returns 125 as the exit code in case the compiler
compilation fails. This exit code tells ``git bisect`` to skip the
current commit.::
git bisect start bad-commit good-commit
git bisect ./koch -r c test-source.nim
The compiler's architecture The compiler's architecture
=========================== ===========================

View file

@ -77,9 +77,9 @@ proc findNim(): string =
# assume there is a symlink to the exe or something: # assume there is a symlink to the exe or something:
return nim return nim
proc exec(cmd: string) = proc exec(cmd: string, errorcode: int = QuitFailure) =
echo(cmd) echo(cmd)
if execShellCmd(cmd) != 0: quit("FAILURE") if execShellCmd(cmd) != 0: quit("FAILURE", errorcode)
proc tryExec(cmd: string): bool = proc tryExec(cmd: string): bool =
echo(cmd) echo(cmd)
@ -341,7 +341,9 @@ proc tests(args: string) =
proc temp(args: string) = proc temp(args: string) =
var output = "compiler" / "nim".exe var output = "compiler" / "nim".exe
var finalDest = "bin" / "nim_temp".exe var finalDest = "bin" / "nim_temp".exe
exec("nim c compiler" / "nim") # 125 is the magic number to tell git bisect to skip the current
# commit.
exec("nim c compiler" / "nim", 125)
copyExe(output, finalDest) copyExe(output, finalDest)
if args.len > 0: exec(finalDest & " " & args) if args.len > 0: exec(finalDest & " " & args)