Tcl\_SetRecursionLimit(3) Tcl Library Procedures Tcl\_SetRecursionLimit(3)

```

```

# [NAME](#NAME)

Tcl\_SetRecursionLimit - set maximum allowable nesting depth in interpreter

# [SYNOPSIS](#SYNOPSIS)

```
#include <tcl.h>

Tcl_Size
Tcl_SetRecursionLimit(interp, depth)
```

# [ARGUMENTS](#ARGUMENTS)

Tcl\_Interp *\*interp* (in)

Interpreter whose recursion limit is to be set. Must be greater than zero.

Tcl\_Size *depth* (in)

New limit for nested calls to **Tcl\_Eval** for *interp*.

```
    
```

# [DESCRIPTION](#DESCRIPTION)

At any given time Tcl enforces a limit on the number of recursive calls that may be active for **Tcl\_Eval** and related procedures such as **Tcl\_EvalEx**. Any call to **Tcl\_Eval** that exceeds this depth is aborted with an error. By default the recursion limit is 1000.

**Tcl\_SetRecursionLimit** may be used to change the maximum allowable nesting depth for an interpreter. The *depth* argument specifies a new limit for *interp*, and **Tcl\_SetRecursionLimit** returns the old limit. To read out the old limit without modifying it, invoke **Tcl\_SetRecursionLimit** with *depth* equal to 0.

The **Tcl\_SetRecursionLimit** only sets the size of the Tcl call stack: it cannot by itself prevent stack overflows on the C stack being used by the application. If your machine has a limit on the size of the C stack, you may get stack overflows before reaching the limit set by **Tcl\_SetRecursionLimit**. If this happens, see if there is a mechanism in your system for increasing the maximum size of the C stack.

# [KEYWORDS](#KEYWORDS)

nesting depth, recursion

7.0 Tcl

---

Document: Tcl_SetRecursionLimit(3) from tcl 9.1.0-r0 (Chainguard OS)
Source: https://downloads.sourceforge.net/project/tcl/Tcl/9.1.0/tcl9.1.0-src.tar.gz
