[Python-checkins] cpython: don't rewrite the header file if it hasn't changed; this reduces development

benjamin.peterson python-checkins at python.org
Tue Aug 9 23:29:07 CEST 2011


http://hg.python.org/cpython/rev/d80ce5f549c1
changeset: 71799:d80ce5f549c1
user: Benjamin Peterson <benjamin at python.org>
date: Tue Aug 09 16:28:58 2011 -0500
summary:
 don't rewrite the header file if it hasn't changed; this reduces development build time
files:
 Parser/asdl_c.py | 13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -4,7 +4,9 @@
 # TO DO
 # handle fields that have a type but no name
 
-import os, sys
+import os
+import sys
+import StringIO
 import subprocess
 
 import asdl
@@ -1155,7 +1157,7 @@
 sys.exit(1)
 if INC_DIR:
 p = "%s/%s-ast.h" % (INC_DIR, mod.name)
- f = open(p, "w")
+ f = StringIO.StringIO()
 f.write(auto_gen_msg)
 f.write('#include "asdl.h"\n\n')
 c = ChainOfVisitors(TypeDefVisitor(f),
@@ -1166,7 +1168,12 @@
 f.write("PyObject* PyAST_mod2obj(mod_ty t);\n")
 f.write("mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode);\n")
 f.write("int PyAST_Check(PyObject* obj);\n")
- f.close()
+ s = f.getvalue()
+ with open(p, "r") as fp:
+ write = fp.read() != s
+ if write:
+ with open(p, "w") as fp:
+ f.write(s)
 
 if SRC_DIR:
 p = os.path.join(SRC_DIR, str(mod.name) + "-ast.c")
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /