./koch tools now builds bin/nim_dbg, a debug version of nim (#18289)

This commit is contained in:
Timothee Cour
2021-06-28 08:15:20 -07:00
committed by GitHub
parent 0be17f5d9c
commit cb9496693a
2 changed files with 11 additions and 4 deletions

View File

@@ -215,8 +215,14 @@ proc buildTools(args: string = "") =
options = "-d:release " & args)
when defined(windows): buildVccTool(args)
bundleNimpretty(args)
nimCompileFold("Compile testament", "testament/testament.nim",
options = "-d:release " & args)
nimCompileFold("Compile testament", "testament/testament.nim", options = "-d:release" & args)
# pre-packages a debug version of nim which can help in many cases investigate issuses
# withouth having to rebuild compiler.
# `-d:nimDebugUtils` only makes sense when temporarily editing/debugging compiler
# `-d:debug` should be changed to a flag that doesn't require re-compiling nim
# `--opt:speed` is a sensible default even for a debug build, it doesn't affect nim stacktraces
nimCompileFold("Compile nim_dbg", "compiler/nim.nim", options = "--opt:speed --stacktrace -d:debug --stacktraceMsgs -d:nimCompilerStacktraceHints" & args, outputName = "nim_dbg")
proc nsis(latest: bool; args: string) =
bundleNimbleExe(latest, args)

View File

@@ -98,8 +98,9 @@ proc nimCompile*(input: string, outputDir = "bin", mode = "c", options = "") =
let cmd = findNim().quoteShell() & " " & mode & " -o:" & output & " " & options & " " & input
exec cmd
proc nimCompileFold*(desc, input: string, outputDir = "bin", mode = "c", options = "") =
let output = outputDir / input.splitFile.name.exe
proc nimCompileFold*(desc, input: string, outputDir = "bin", mode = "c", options = "", outputName = "") =
let outputName2 = if outputName.len == 0: input.splitFile.name.exe else: outputName.exe
let output = outputDir / outputName2
let cmd = findNim().quoteShell() & " " & mode & " -o:" & output & " " & options & " " & input
execFold(desc, cmd)