summaryrefslogtreecommitdiffstats
path: root/tasks/rake/git_workflow.rake
diff options
context:
space:
mode:
authorDaniel Pittman <daniel@rimspace.net>2011-01-23 00:05:11 -0800
committerDaniel Pittman <daniel@rimspace.net>2011-02-03 16:45:30 -0800
commitf547118462cac124dc826ad96d00574711f1d3cd (patch)
tree90f16f6e4b5e9e5274d81b1a2137bcb921aec207 /tasks/rake/git_workflow.rake
parent34a57b846319f2962f78b161cd80b15f491e1086 (diff)
downloadpuppet-f547118462cac124dc826ad96d00574711f1d3cd.tar.gz
puppet-f547118462cac124dc826ad96d00574711f1d3cd.tar.xz
puppet-f547118462cac124dc826ad96d00574711f1d3cd.zip
Feature #2597 -- use iterative DFS in Tarjan clustering.
In order to bypass the limitations of the C stack, which is also the Ruby stack, we replace the simple and clear recursive Trajan implementation with an iterative version that uses the heap as the stack. This is somewhat harder to read, but can now run a 10,000 vertex deep linear dependency relationship where, previously, 1,250 was about the limit on my machine. This should now be bounded by the size of the heap rather than the stack on all platforms -- though it would be nice to get rid of the magic and return to the recursive version if Ruby ever follows Perl down the sensible path of essentially unlimited recursion by writing that code for us in the interpreter...
Diffstat (limited to 'tasks/rake/git_workflow.rake')
0 files changed, 0 insertions, 0 deletions