All pastes #630885 Raw Edit

Diff

public text v1 · immutable
#630885 ·published 2007-07-23 15:38 UTC
rendered paste body
Index: wafadmin/Scripting.py===================================================================--- wafadmin/Scripting.py	(revision 1451)+++ wafadmin/Scripting.py	(working copy)@@ -135,10 +135,10 @@ 			hash = 0 			for file in proj['files']: 				mod = Utils.load_module(file)-				hash = Params.hash_sig_weak(hash, inspect.getsource(mod.configure).__hash__())+				hash = Params.hash_function_with_globals(hash, mod.configure) 			reconf = (hash != proj['hash'])-		except:-			warning("Reconfiguring the project as an exception occured")+		except Exception, ex:+			warning("Reconfiguring the project as an exception occured: %s" % (str(ex),)) 			reconf=1  		if reconf:Index: wafadmin/Configure.py===================================================================--- wafadmin/Configure.py	(revision 1451)+++ wafadmin/Configure.py	(working copy)@@ -994,7 +994,7 @@  		ret = mod.configure(self) 		if Params.g_autoconfig:-			self.hash = Params.hash_sig_weak(self.hash, inspect.getsource(mod.configure).__hash__())+			self.hash = Params.hash_function_with_globals(self.hash, mod.configure) 			self.files.append(os.path.abspath(cur)) 		self.cwd = current 		return retIndex: wafadmin/Params.py===================================================================--- wafadmin/Params.py	(revision 1451)+++ wafadmin/Params.py	(working copy)@@ -254,6 +254,19 @@ 	m.update(o1) 	m.update(o2) 	return m.digest()++def hash_function_with_globals(prevhash, func):+	for name, value in func.func_globals.iteritems():+		if type(value) in (types.BuiltinFunctionType,+				   types.ModuleType,+				   types.FunctionType):+			continue+		try:+			prevhash = hash_sig_weak(prevhash, (name, value))+		except TypeError: # raised for unhashable elements+			pass+        return hash_sig_weak(prevhash, inspect.getsource(func))+ ## # hash string def h_md5_str(str):