Make PeachPy processes deterministic: https://github.com/Maratyszcza/PeachPy/issues/88 https://issues.guix.gnu.org/50672 diff --git a/peachpy/name.py b/peachpy/name.py index b6a03dc..c069fc2 100644 --- a/peachpy/name.py +++ b/peachpy/name.py @@ -95,6 +95,10 @@ class Namespace: self.prenames[scope_name.prename].add(scope) def assign_names(self): + # Step 0: sort the dictionary for deterministic output + self.prenames = dict(sorted(self.prenames.items(), + key=lambda item: "" if item[0] == None else item[0])) + # Step 1: assign names to symbols with prenames with no conflicts for prename in six.iterkeys(self.prenames): if prename is not None: