Продолжение цикла для процесса внутри процесса - PullRequest
0 голосов
/ 15 мая 2018

Как мне увеличить предел рекурсии в TCL. Мой вложенный рекурсивный процесс не работает.

proc a {arg} {
   a $arg
}

1 Ответ

0 голосов
/ 15 мая 2018

Требуется команда interp recursionlimit path? Newlimit? .

Имя «текущего» интерпретатора - пустая строка.

$ tclsh
% proc a {} { incr ::n; a }
% set n 0
0
% a
too many nested evaluations (infinite loop?)
% set n
1000
% interp recursionlimit ""
1000
% interp recursionlimit "" 4000
4000
% set n 0
0
% a
too many nested evaluations (infinite loop?)
% set n
4000

Обратите внимание на предупреждение в документации:

Команда устанавливает максимальный размер только стека вызовов Tcl.Само по себе это не может предотвратить переполнение стека в стеке C, используемом приложением.Если ваша машина имеет ограничение на размер стека C, вы можете получить переполнение стека до достижения предела, установленного командой.Если это произойдет, посмотрите, есть ли в вашей системе механизм увеличения максимального размера стека C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...