frenetic-lang / pyretic

The Pyretic language and runtime system
http://frenetic-lang.org/pyretic/
159 stars 99 forks source link

maximum recursion depth when hashing frozendict #13

Closed joshreich closed 11 years ago

joshreich commented 11 years ago

low priority seen when running learning_switch when pyretic/tests/connectivity_test.py has been called repeatedly (10~ times)

RuntimeError('maximum recursion depth exceeded',)

/home/mininet/pyretic/frenetic/util.py(173)hash() 172 except AttributeError: --> 173 h = self._cached_hash = hash(frozenset(self._dict.items())) 174 return h

princedpw commented 11 years ago

tail recursion problem as in my PL lectures? (Does puthon do tail recursion optimizations?)

Sent from my iPhone

On Jan 22, 2013, at 6:47 PM, joshreich notifications@github.com wrote:

low priority seen when running learning_switch when pyretic/tests/connectivity_test.py has been called repeatedly (10~ times)

RuntimeError('maximum recursion depth exceeded',)

/home/mininet/pyretic/frenetic/util.py(173)hash() 172 except AttributeError: --> 173 h = self._cached_hash = hash(frozenset(self._dict.items())) 174 return h

— Reply to this email directly or view it on GitHub.

joshreich commented 11 years ago

On Jan 22, 2013, at 2:28 PM, David Walker notifications@github.com wrote:

tail recursion problem as in my PL lectures? Very possibly (Does puthon do tail recursion optimizations?) No python doesn't, though there are plenty of suggestions on how to work around that and argument as to why these work arounds shouldn't be incorporated into the python compiler. See: http://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.html http://paulbutler.org/archives/tail-recursion-in-python/

For now, this problem crops up rarely, so I'd say it's lower priority.

Sent from my iPhone

On Jan 22, 2013, at 6:47 PM, joshreich notifications@github.com wrote:

low priority seen when running learning_switch when pyretic/tests/connectivity_test.py has been called repeatedly (10~ times)

RuntimeError('maximum recursion depth exceeded',)

/home/mininet/pyretic/frenetic/util.py(173)hash() 172 except AttributeError: --> 173 h = self._cached_hash = hash(frozenset(self._dict.items())) 174 return h

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub.