ASTER implementation for Int4 Suite brings certain limits in order to help work around common pitfalls in script design.
Loop execution limits
There is a 100’000 times execution limit for FOR and WHILE loops. This limit should be sufficient for processing even large data files, as typical messages processed in Int4 Suite are around thousands lines.
This way, if an infinite loop is created, it will break after the set limits of loop code execution.
Example
SUM = 0;
WITH(I=0;Limit=100,
WHILE(I<LIMIT,
SUM = SUM + 1)) # Forgotten about incrementing I
Call stack depth
Stack depth represents roughly the level of nesting of function calls. There is a limit of 10’000 for the call stack depth in ASTER. This way, we protect from cases of infinite recurrent execution.
Example
DEFUN("INFINITE_RECURRENCE", ("x"),
INFINITE_RECURRENCE(x)); # Forgotten about checking for stop criteria
INFINITE_RECURRENCE(10)
Controlling limits
In case Your software solution complexity requires updating these limits, please reach out to Int4 team for assistance.