recursionLimit

Typeproperty
DictionaryLCS
LibraryLiveCode Script
Syntax
set the recursionLimit to stackSizeInBytes
Summary

Specifies how many levels deep a recursive function is allowed to go.

Introduced2.0
OSmac, windows, linux, ios, android
Platformsdesktop, server, mobile
Example
set the recursionLimit to 20
Values
NameTypeDescription
Value

The recursionLimit is a positive integer. By default, the recursionLimit property is set to 400000.

Description

Use the recursionLimit property to quickly find possible recursion bugs or to extend the ability to use deeply recursive routines.

The stackSizeInBytes specifies the CPU call stack size. ("Stack" in this sense has nothing to do with LiveCode stack objects; it refers to a type of data structure used by the processor.)

The relationship between the recursionLimit and the number of levels of nesting permitted for a recursive call depends on a number of factors, including the processor type and the number of parameters passed during each function call. This means that the same recursionLimit value may allow a different maximum level of nesting, depending on the platform.

Recursion may be used deliberately, especially in processing large data sets. To allow deeper levels of recursion than usual, increase the recursionLimit.

Recursion may also occur accidentally. In this case, the recursion is usually infinite--that is, the function will keep recursing until it reaches the limit and causes an execution error. To track down such problems more quickly, reduce the recursionLimit. The lower the limit, the more quickly a buggy routine will cause an execution error.

Note: On Windows, as of version 4.5.1, the recursionLimit property is bounded by the stackLimit. Attempts to set the recursionLimit greater than the stackLimit will see it downwardly adjusted to the maximum current size allowed.