Name: recursionLimit

Type: property

Syntax: set the recursionLimit to stackSizeInBytes

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

Introduced: 2.0

OS: mac, windows, linux, ios, android

Platforms: desktop, server, mobile

Example:
set the recursionLimit to 20

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.


