better run [feature] (#11709)

* track the checksums of all involved Nim files for smarter 'nim c -r' recompiles
* don't recompile unless necessary for 'nim c -r' [feature]
* [feature] koch boot uses a two step process in order to free the RAM before the GCC/Clang invocations
* fixes a serious regression
This commit is contained in:
Andreas Rumpf 2019-07-11 21:36:23 +02:00 • committed by GitHub
commit 3d88d06b32
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 88 additions and 24 deletions

View file

@ -14,6 +14,10 @@ type
doc: seq[string]
buildIndex: seq[string]
proc exec(cmd: string) =
if execShellCmd(cmd) != 0:
quit("FAILURE: " & cmd)
proc testNimDoc(prjDir, docsDir: string; switches: NimSwitches; fixup = false) =
let
nimDocSwitches = switches.doc.join(" ")
@ -22,12 +26,10 @@ proc testNimDoc(prjDir, docsDir: string; switches: NimSwitches; fixup = false) =
putEnv("SOURCE_DATE_EPOCH", "100000")
if nimDocSwitches != "":
if execShellCmd("nim doc $1" % [nimDocSwitches]) != 0:
quit("FAILURE: nim doc failed")
exec("nim doc $1" % [nimDocSwitches])
if nimBuildIndexSwitches != "":
if execShellCmd("nim buildIndex $1" % [nimBuildIndexSwitches]) != 0:
quit("FAILURE: nim buildIndex failed")
exec("nim buildIndex $1" % [nimBuildIndexSwitches])
for expected in walkDirRec(prjDir / "expected/"):
let produced = expected.replace('\\', '/').replace("/expected/", "/$1/" % [docsDir])