Hi, > from > --> currentMaxDepth = recursionlimit() > currentMaxDepth = > 1000.
Thanks Samuel, I didn't know this function. So I face a problem (a bug?): Scilab cratches with segfault but without reaching the recursionlimit. Here the used three functions function out=test_l(in) if in==0 then out=in; return end out=in+test_l(in-1); endfunction function out=test_ll(in,acc) if in<=1 out=acc; return end out=test_ll(in-1,acc+in); endfunction function l_test(in) i=1; while 1 mprintf("\n%d: ",i) sleep(.5,"s"); select in case 1 out=test_l(i); case 2 out=test_ll(i,1); end mprintf("%d\n",out) i=i+1; end endfunction There is no problem with > recursionlimit(20) > l_test(1) The program stops as expected with the message "Limite de récursion atteinte (20)" when i=19 and > recursionlimit(20) > l_test(2) stops when i=20 (I was wrong when I talked about tail call in my previous email!). But, with > recursionlimit(1000) > l_test(1) Scilab cratches at i=41 with segfault and with > recursionlimit(1000) > l_test(2) Scilab cratches at i=140. Is this cratch a know bug? (It's quite far from the recursion limit!) (Subsidiary question: while l_test(2) stop 1 iteration after l_test(1) with low recursion limit, l_test(2) allows around 100 iterations more than l_test(1) before cratch with recursionlimit(1000)! Where does it comes from?) --Jean-Yves _______________________________________________ users mailing list users@lists.scilab.org http://lists.scilab.org/mailman/listinfo/users