proc recurse1 {} { return [recurse1] }
proc recurse2 {i} { puts $i; return [recurse2 [expr {$i + 1}]] }

interp recursionlimit {} 1000

set recurse_error ""
catch {recurse1} recurse_error
puts stdout $recurse_error

interp recursionlimit {} 10000000

set recurse_error ""
catch {recurse1} recurse_error
puts stdout $recurse_error
