43773f
diff -u ply/yacc.py ply.mine/yacc.py
43773f
--- ply/yacc.py	2011-02-18 04:52:28.000000000 +0100
43773f
+++ ply.mine/yacc.py	2017-03-03 16:01:13.609507492 +0100
43773f
@@ -2794,24 +2794,20 @@
43773f
 
43773f
     # Compute a signature over the grammar
43773f
     def signature(self):
43773f
+        parts = []
43773f
         try:
43773f
-            from hashlib import md5
43773f
-        except ImportError:
43773f
-            from md5 import md5
43773f
-        try:
43773f
-            sig = md5()
43773f
             if self.start:
43773f
-                sig.update(self.start.encode('latin-1'))
43773f
+                parts.append(self.start)
43773f
             if self.prec:
43773f
-                sig.update("".join(["".join(p) for p in self.prec]).encode('latin-1'))
43773f
+                parts.append(''.join([''.join(p) for p in self.prec]))
43773f
             if self.tokens:
43773f
-                sig.update(" ".join(self.tokens).encode('latin-1'))
43773f
+                parts.append(' '.join(self.tokens))
43773f
             for f in self.pfuncs:
43773f
                 if f[3]:
43773f
-                    sig.update(f[3].encode('latin-1'))
43773f
-        except (TypeError,ValueError):
43773f
+                    parts.append(f[3])
43773f
+        except (TypeError, ValueError):
43773f
             pass
43773f
-        return sig.digest()
43773f
+        return ''.join(parts)
43773f
 
43773f
     # -----------------------------------------------------------------------------
43773f
     # validate_file()