From 9ecd2191ff19b4c05b19c0d68323eb7f84416a42 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Fri, 23 Feb 2018 09:49:32 +0100
Subject: [PATCH] Make order of assembly methods deterministic

---
 python/dune/perftool/pdelab/localoperator.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py
index 4873920b..a8e73780 100644
--- a/python/dune/perftool/pdelab/localoperator.py
+++ b/python/dune/perftool/pdelab/localoperator.py
@@ -625,6 +625,8 @@ class TimerMethod(ClassMember):
 
 class LoopyKernelMethod(ClassMember):
     def __init__(self, signature, kernel, add_timings=True, initializer_list=[]):
+        self.name = kernel.name
+
         from loopy import generate_body
         from cgen import LiteralLines, Block
         content = signature
@@ -671,6 +673,10 @@ class LoopyKernelMethod(ClassMember):
 def cgen_class_from_cache(tag, members=[]):
     from dune.perftool.generation import retrieve_cache_items
 
+    # Sort the given member functions by their name to help debugging by fixing
+    # the order
+    members = sorted(members, key=lambda m: m.name)
+
     # Generate the name by concatenating basename and template parameters
     basename, fullname = class_type_from_cache(tag)
 
-- 
GitLab