[COFF] Tail-recursion was Re: [TUHS] Lorinda Cherry
silas poulson
silas8642 at hotmail.co.uk
Wed Feb 23 10:53:04 AEST 2022
Yes! That’s such as fun presentation!
For those who want the fast version, skip to 6:00 mark.
Silas
> On 23 Feb 2022, at 00:48, Will Senn <will.senn at gmail.com> wrote:
>
> My all time favorite presentation on tail-recursion:
>
> https://www.youtube.com/watch?v=-PX0BV9hGZY
>
>
> On 2/22/22 4:39 AM, Ralph Corderoy wrote:
>> Hi Otto,
>>
>>> MacOS uses the GNU implementation which has a long standing issue with
>>> deep recursion. It even cannot handle the tail recursive calls used
>>> here and will run out of its stack.
>> When learning dc and seeing it relied on tail calls, the first thing
>> I did was check it did tail-call elimination, and it did. That was
>> GNU dc.
>>
>> Trying just now, I see no growth in memory usage despite heavy CPU load
>> shown by TIME increasing.
>>
>> $ dc
>> !ps u `pidof dc`
>> USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
>> ralph 11489 0.0 0.0 2332 1484 pts/1 S+ 10:33 0:00 dc
>> [lmx]smlmx
>> ^C
>> Interrupt!
>> !ps u `pidof dc`
>> USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
>> ralph 11489 75.5 0.0 2332 1488 pts/1 S+ 10:33 0:46 dc
>>
>> The memory used remained at that level during the macro execution too,
>> watched from outside.
>>
>> Do you have more detail on what GNU dc can't handle? dc without
>> tail-call elimination is a bit crippled.
>>
>
> _______________________________________________
> COFF mailing list
> COFF at minnie.tuhs.org
> https://minnie.tuhs.org/cgi-bin/mailman/listinfo/coff
More information about the COFF
mailing list