Feature #1218: New method needed to set and get the current recursion limit
http://redmine.ruby-lang.org/issues/show/1218

Author: Conrad Taylor
Status: Open, Priority: Normal
Assigned to: Koichi Sasada, Category: YARV, Target version: 1.9.x

Hi, I would like to propose the addition of two methods for setting and getting the recursion limit:

recursion_limit(limit)
recursion_limit => returns an Integer value

At this time, I have been experimenting with recursion to compute the nth fibonacci number using ruby 1.9.1 ( i.e ruby 1.9.1p0 (2009-01-30 revision 21907) ).  These tests are being ran on a Apple PowerMac G5 2.5 Ghz Quad 4 GB RAM and a MacBook Pro 2.8 GHz Intel Core 2 Duo 4 GB RAM.  Also,  I was able to successfully produce a result using an iteration which I'm attaching to verify the correctness of the other two algorithms:

action:  ./fibonacci-recursive.rb 10000

result:

./fibonacci-recursive.rb:10:in `fibonacci': stack level too deep (SystemStackError)
	from ./fibonacci-recursive.rb:10:in `fibonacci'
	from ./fibonacci-recursive.rb:10:in `fibonacci'
	from ./fibonacci-recursive.rb:10:in `fibonacci'
	from ./fibonacci-recursive.rb:10:in `fibonacci'
	from ./fibonacci-recursive.rb:10:in `fibonacci'
	from ./fibonacci-recursive.rb:10:in `fibonacci'
	from ./fibonacci-recursive.rb:10:in `fibonacci'
	from ./fibonacci-recursive.rb:10:in `fibonacci'
	 ... 8174 levels...
	from ./fibonacci-recursive.rb:10:in `fibonacci'
	from ./fibonacci-recursive.rb:10:in `fibonacci'
	from ./fibonacci-recursive.rb:10:in `fibonacci'
	from ./fibonacci-recursive.rb:18:in `<main>'

action: ./fibonacci-tail-recursive.rb 10000

result:  

./fibonacci-tail-recursive.rb:10:in `fibonacci_helper': stack level too deep (SystemStackError)
	from ./fibonacci-tail-recursive.rb:10:in `fibonacci_helper'
	from ./fibonacci-tail-recursive.rb:10:in `fibonacci_helper'
	from ./fibonacci-tail-recursive.rb:10:in `fibonacci_helper'
	from ./fibonacci-tail-recursive.rb:10:in `fibonacci_helper'
	from ./fibonacci-tail-recursive.rb:10:in `fibonacci_helper'
	from ./fibonacci-tail-recursive.rb:10:in `fibonacci_helper'
	from ./fibonacci-tail-recursive.rb:10:in `fibonacci_helper'
	from ./fibonacci-tail-recursive.rb:10:in `fibonacci_helper'
	 ... 7265 levels...
	from ./fibonacci-tail-recursive.rb:10:in `fibonacci_helper'
	from ./fibonacci-tail-recursive.rb:10:in `fibonacci_helper'
	from ./fibonacci-tail-recursive.rb:17:in `fibonacci'
	from ./fibonacci-tail-recursive.rb:24:in `<main>'

action:  ./fibonacci-iterative.rb 10000

result:

33644764876431783266621612005107543310302148460680063906564769974680081442166662368155595513633734025582065332680836159373734790483865268263040892463056431887354544369559827491606602099884183933864652731300088830269235673613135117579297437854413752130520504347701602264758318906527890855154366159582987279682987510631200575428783453215515103870818298969791613127856265033195487140214287532698187962046936097879900350962302291026368131493195275630227837628441540360584402572114334961180023091208287046088923962328835461505776583271252546093591128203925285393434620904245248929403901706233888991085841065183173360437470737908552631764325733993712871937587746897479926305837065742830161637408969178426378624212835258112820516370298089332099905707920064367426202389783111470054074998459250360633560933883831923386783056136435351892133279732908133732642652633989763922723407882928177953580570993691049175470808931841056146322338217465637321248226383092103297701648054726243842374862411453093812!
 2065649140327510866433945175121615265453613331113140424368548051067658434935238369596534280717687753283482343455573667197313927462736291082106792807847180353291311767789246590899386354593278945237776744061922403376386740040213303432974969020283281459334188268176838930720036347956231171031012919531697946076327375892535307725523759437884345040677155557790564504430166401194625809722167297586150269684431469520346149322911059706762432685159928347098912847067408620085871350162603120719031720860940812983215810772820763531866246112782455372085323653057759564300725177443150515396009051686032203491632226408852488524331580515348496224348482993809050704834824493274537326245677558790891871908036620580095947431500524025327097469953187707243768259074199396322659841474981936092852239450397071654431564213281576889080587831834049174345562705202235648464951961124602683139709750693826487066132645076650746115126775227486215986425307112984411826226610571635150692600298617049454250474913781151541!
 3994155067125627119713325276363193960690289565028826860836224108205056
2430701794976171121233066073310059947366875


----------------------------------------
http://redmine.ruby-lang.org