From 6d1102c830dac15689f6973ac8136166b38fa55b Mon Sep 17 00:00:00 2001 From: Evgeny Skvortsov <71790359+EvgSkv@users.noreply.github.com> Date: Thu, 26 Sep 2024 23:34:13 -0700 Subject: [PATCH] Use -1 in recursion depth for infinity. --- common/concertina_lib.py | 13 +++++++++---- compiler/functors.py | 2 ++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/common/concertina_lib.py b/common/concertina_lib.py index 32fb58e..10149a9 100644 --- a/common/concertina_lib.py +++ b/common/concertina_lib.py @@ -246,12 +246,17 @@ def ActionShape(self, a): return 'diamond' return 'box' + def IterationRepetitionsSymbol(self, iteration): + if self.iteration_repetitions[iteration] > 1000000: + return '∞' + return '%d' % self.iteration_repetitions[iteration] + def AsGraphViz(self): def NodeText(node): if node in self.action_iteration: - maybe_iteration_info = ' %d / %d' % ( + maybe_iteration_info = ' %d / %s' % ( self.action_iterations_complete[node], - self.iteration_repetitions[self.action_iteration[node]] + self.IterationRepetitionsSymbol(self.action_iteration[node]) ) if node in self.action_stopped: maybe_iteration_info += ' / stop.' @@ -282,9 +287,9 @@ def AsNodesAndEdges(self): """Nodes and edges to display in terminal.""" def ColoredNode(node): if node in self.action_iteration: - maybe_iteration_info = ' %d / %d' % ( + maybe_iteration_info = ' %d / %s' % ( self.action_iterations_complete[node], - self.iteration_repetitions[self.action_iteration[node]] + self.IterationRepetitionsSymbol(self.action_iteration[node]) ) if node in self.action_stopped: maybe_iteration_info += ' / stop.' diff --git a/compiler/functors.py b/compiler/functors.py index e39d0ef..e1cc87e 100755 --- a/compiler/functors.py +++ b/compiler/functors.py @@ -692,6 +692,8 @@ def RecursiveAnalysis(self, depth_map, default_iterative, default_depth): p = min(c & deep) else: p = min(c) + if depth_map.get(p, {}).get('1', default_depth) == -1: + depth_map[p]['1'] = 1000000000 # Iterate if explicitly requested or unspecified # and number of steps is greater than 20. if (depth_map.get(p, {}).get('iterative', default_iterative) or