Find limit of recursion: Difference between revisions

Content added Content deleted
(→‎{{header|TXR}}: Drop @(do ...). Larger depth due to reduced stack usage (smaller unwind frames on Linux).)
Line 1,999: Line 1,999:
=={{header|TXR}}==
=={{header|TXR}}==


<lang txrlisp>(set-sig-handler sig-segv
<lang txr>@(do
(lambda (signal async-p) (throw 'out)))
(set-sig-handler sig-segv
(lambda (signal async-p) (throw 'out)))


(defvar *count* 0)
(defvar *count* 0)


(defun recurse ()
(defun recurse ()
(inc *count*)
(inc *count*)
(recurse))
(recurse))


(catch (recurse)
(catch (recurse)
(out () (put-line `caught segfault!\nreached depth: @{*count*}`))))</lang>
(out () (put-line `caught segfault!\nreached depth: @{*count*}`)))</lang>


{{out}}
{{out}}


<pre>$ txr limit-of-recursion.txr
<pre>$ txr limit-of-recursion.tl
caught segfault!
caught segfault!
reached depth: 2941</pre>
reached depth: 10909</pre>


=={{header|UNIX Shell}}==
=={{header|UNIX Shell}}==