The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Otto Moerbeek <otto@drijf.net>
To: The Eunuchs Hysterical Society <tuhs@tuhs.org>
Subject: Re: [TUHS] Lorinda Cherry
Date: Tue, 22 Feb 2022 16:53:06 +0100	[thread overview]
Message-ID: <YhUG4iul1O6E4vwU@clue.drijf.net> (raw)
In-Reply-To: <20220222103948.1B0482206F@orac.inputplus.co.uk>

On Tue, Feb 22, 2022 at 10:39:48AM +0000, 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.
> 
> -- 
> Cheers, Ralph.

On MacOS:

$ dc --version
dc (GNU bc 1.06) 1.3
...
$ dc
[lmx]smlmx 
Segmentation fault: 11
$

On debian bullseye:
$ dc --version
dc (GNU bc 1.07.1) 1.4.1
...
$ dc
[lmx]smlmx 
...

all ok.

So the basic tail recursion case seems to be fixed in recent versions.

But note that 

	[laxp]sa
	1 lax

still segfaults on both GNU dc versions while on OpenBSD, using the
dc I wrote:

dc: recursion too deep: Cannot allocate memory

This is not a tail recursion case, but segfaulting is not nice at all.

	-Otto


  reply	other threads:[~2022-02-22 15:55 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-15 22:31 Douglas McIlroy
2022-02-15 23:32 ` Steve Nickolas
2022-02-15 23:43   ` Jim Capp
2022-02-15 23:51     ` Larry McVoy
2022-02-16  0:54       ` Will Senn
2022-02-16  2:58         ` Steve Nickolas
2022-02-16  0:09 ` George Michaelson
2022-02-16  0:24   ` Dave Horsfall
2022-02-16  7:54     ` arnold
2022-02-16  8:13       ` markus schnalke
2022-02-16 14:54         ` Leah Neukirchen
2022-02-16 22:27           ` Dave Horsfall
2022-02-16 22:40             ` Andrew Diller
2022-02-17 10:14               ` Peter Jeremy via TUHS
2022-02-17 15:50                 ` Adam Thornton
2022-02-17 20:23                   ` Dave Horsfall
2022-02-17 10:24               ` Andy Kosela
2022-02-17 16:05                 ` Andrew Hume
2022-02-17 16:38                   ` Warner Losh
2022-02-16 22:42             ` Larry McVoy
2022-02-16 22:56               ` Clem Cole
2022-02-16 23:49                 ` Paul Winalski
2022-02-16 23:49               ` [TUHS] Benchmarks Bakul Shah
2022-02-17  1:02                 ` Larry McVoy
2022-02-17 12:36             ` [TUHS] Lorinda Cherry Stuart Remphrey
2022-02-17 19:59           ` Tom Ivar Helbekkmo via TUHS
2022-02-17 21:18             ` Dave Horsfall
2022-02-17 21:44               ` Bakul Shah
2022-02-18  8:33                 ` Otto Moerbeek
2022-02-22 10:39                   ` Ralph Corderoy
2022-02-22 15:53                     ` Otto Moerbeek [this message]
2022-02-20 17:29                 ` Derek Fawcus
2022-02-17 22:00               ` David Arnold
2022-02-18  9:58               ` Tom Ivar Helbekkmo via TUHS
2022-02-16 14:34     ` [TUHS] dc after bc Ralph Corderoy
2022-02-16 19:08   ` [TUHS] Lorinda Cherry Diomidis Spinellis
2022-02-16 20:55     ` John P. Linderman
2022-02-16 21:17       ` Andrew Hume
2022-02-16 21:59       ` Marshall Conover
2022-02-17  5:51     ` arnold
2022-02-17 22:09     ` Will Senn
2022-02-16  0:35 ` Andrew Hume
2022-02-16  8:02 ` Thomas Paulsen
2022-02-16 14:05 ` [TUHS] Shower of Dogs Ralph Corderoy
2022-02-16 14:09   ` Andrew Hume
2022-02-16 15:01     ` Larry McVoy
2022-02-16 16:57     ` Douglas McIlroy
2022-02-16 17:03     ` Dennis Boone
2022-02-16 17:18       ` Warner Losh
2022-02-16 14:09   ` Chet Ramey
2022-02-16 14:35     ` Ron Natalie
2022-02-16 14:41     ` Ralph Corderoy
2022-02-16 15:08   ` Rich Morin
2022-02-16 21:21     ` Dave Horsfall
2022-02-16 21:25       ` John Cowan
2022-02-17  3:31         ` Chet Ramey
  -- strict thread matches above, loose matches on Subject: below --
2022-02-22  0:02 [TUHS] Lorinda Cherry Brian Walden
2022-03-01 21:51 ` Terry Jones
2022-02-18  3:18 Norman Wilson
2022-02-18  9:10 ` Peter Jeremy via TUHS
2022-02-15 21:17 John P. Linderman
2022-02-15 21:26 ` Dave Horsfall
2022-02-15 21:33 ` Jeffrey Joshua Rollin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YhUG4iul1O6E4vwU@clue.drijf.net \
    --to=otto@drijf.net \
    --cc=tuhs@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).