summary refs log tree commit diff stats
path: root/compiler/cgen.nim
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2016-12-06 10:05:22 +0100
committerAndreas Rumpf <rumpf_a@web.de>2016-12-06 10:05:22 +0100
commit0d6f4f1bb17e72b6bc0a7d781b2ca9fc1a6c4adb (patch)
treed7f57d89751cf69d78d52d206590b357ccc0c3a4 /compiler/cgen.nim
parent38ab106051481953c53d179542005c9576ae5983 (diff)
downloadNim-0d6f4f1bb17e72b6bc0a7d781b2ca9fc1a6c4adb.tar.gz
implements -d:nimdiff switch for seeing generated C code diffs
Diffstat (limited to 'compiler/cgen.nim')
-rw-r--r--compiler/cgen.nim8
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/cgen.nim b/compiler/cgen.nim
index 118a10214..6a60e87e9 100644
--- a/compiler/cgen.nim
+++ b/compiler/cgen.nim
@@ -1245,7 +1245,13 @@ proc shouldRecompile(code: Rope, cfile: string): bool =
   result = true
   if optForceFullMake notin gGlobalOptions:
     var objFile = toObjFile(cfile)
-    if writeRopeIfNotEqual(code, cfile): return
+
+    if not equalsFile(code, cfile):
+      if isDefined("nimdiff"):
+        copyFile(cfile, cfile & ".backup")
+        echo "diff ", cfile, ".backup ", cfile
+      writeRope(code, cfile)
+      return
     if existsFile(objFile) and os.fileNewer(objFile, cfile): result = false
   else:
     writeRope(code, cfile)