Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #51613

Re: Stack Sizes

From Walter Banks <walter@bytecraft.com>
Newsgroups comp.lang.forth
Subject Re: Stack Sizes
Date 2016-10-04 15:40 -0400
Organization Aioe.org NNTP Server
Message-ID <nt10k9$61u$1@gioia.aioe.org> (permalink)
References <nstii2$8pl$1@gioia.aioe.org> <nstphb$hbj$2@dont-email.me> <57f3f915$0$875$e4fe514c@news.xs4all.nl>

Show all headers | View raw


On 2016-10-04 2:46 PM, Hans Bezemer wrote:
> rickman wrote:
>> There are many answers to your question and they all related to
>> what you want to do with the processor.  It has been stated many
>> times that for most apps, an 8 element stack is enough.  But if you
>> wish to support recursion a million elements may not be enough.
>>
>> Some designs use one stack, others use as many as four.  Again, it
>> all depends.
> True. 4tH has got a single, shared return/data stack of 512 elements.
> I chose for thaty configuration because you can have programs which
> need quite some return stack depth, but few data elements - or the
> inverse. "Stack full" means the stack pointers cross.
>
> I got an FP package that uses the datastack (shared) and one that has
> its own stack. On top of that, I got a small lib that allows me to
> create my own stacks:
>
> ---8<--- : stack dup ! ;                        ( stack --) : a@ @ @
> ;                             ( stack -- n) : >a 1 cells over +! @ !
> ;             ( n stack --) : a> dup a@ -1 cells rot +! ;          (
> stack -- n) : adepth dup @ swap - ;                ( stack -- n)
> ---8<---
>
> On average, the standard stack is more than sufficient - unless you
> want to do something crazy like the Ackermann function
> (unoptimized).
>
> The only place I was really cramming as much on this poor stack was
> the 4tH preprocessor doing nested macros. I even had to off load the
> data elements to a separate stack.

My understanding of 4TH is it compiles to an intermediate H code that
can interpreted / compiled on a variety of targets if I have been
looking at the correct website. I am an old UCSD pascal fan as well.

One and two stacks have been what we have been doing most of our
simulations with. I quickly at one point looked at the implications of
three stacks (return, and two data) The idea that we could code up a
tree type expression evaluation.

What I found and it maybe the mix of regression tests we created from
applications was we generated slightly faster and smaller code a single
stack than we could with two stacks.

Our three stack solution had no advantages over the two or single stack
solution.

One interesting thing that has come out of this thread is there is some
consistency with about 12 levels needed for subroutine return. (Totally
consistent with our metrics of 13 levels for actual applications)

Data stacks have produced a different set of comments. In part is the
roles that data stacks are used for. Local variables, expression
evaluation and saving machine state for interrupts or event programming
applications.

Local variables are the wild card in this. They can in some languages be
quite large.

Expression evaluation is a more manageable problem to evaluate. I had
expected that data stack requirements for forth applications could
easily be larger than that used by other languages and approaches to
expression evaluation.

I may not be looking in the right place but essentially all the forth
code that I have looked at had similar metrics to code created by other
approaches. 4 or 5 data stack levels in applications was about the limit
we have seen for expression evaluation. If the 8 level comment you made
above is mostly about expression evaluation then that is close to what
we have found in the 4 or 5 level metrics we keep seeing in our tests.

What I haven't seen is anyone pointing to an application area that any
particular language that gains performance by using more stack space
which has been a surprise.


w..


Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 08:22 -0400
  Re: Stack Sizes foxaudioresearch@gmail.com - 2016-10-03 07:00 -0700
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 11:14 -0400
      Re: Stack Sizes Bernd Linsel <bl1@gmx.com> - 2016-10-03 18:20 +0200
        Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-03 11:30 -0500
          Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-03 15:27 -0400
          Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 18:12 -0400
            Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-03 17:52 -0500
            Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-03 16:06 -0700
        Re: Stack Sizes Jan Coombs <jenfhaomndgfwutc@murmic.plus.com> - 2016-10-04 08:31 +0100
          Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-04 08:46 +0000
            Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 10:38 -0400
            Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-04 11:59 -0700
              Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-05 09:59 +0000
                Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-05 10:16 -0400
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-06 08:21 +0000
          Re: Stack Sizes minforth@arcor.de - 2016-10-04 05:00 -0700
          Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 08:49 -0400
      Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-03 16:28 -0700
        Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 10:36 -0400
          Re: Stack Sizes Rod Pemberton <NoHaveNotOne@zxdehrnyya.cam> - 2016-10-04 16:15 -0400
          Re: Stack Sizes Brad Eckert <hwfwguy@gmail.com> - 2016-11-09 09:56 -0800
            Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-11-12 09:15 -0500
    Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-03 10:35 -0500
    Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-10-11 01:01 +0000
  Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-03 10:21 -0400
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 11:06 -0400
      Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-03 15:22 -0400
        Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 18:04 -0400
    Re: Stack Sizes Hans Bezemer <the.beez.speaks@gmail.com> - 2016-10-04 20:46 +0200
      Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 15:40 -0400
        Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-05 12:26 -0700
          Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 15:44 -0500
            Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-05 16:32 -0700
              Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-05 20:01 -0400
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-07 07:39 +0000
              Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 20:36 -0500
                Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-05 21:28 -0700
          Re: Stack Sizes alex <alex@rivadpm.com> - 2016-10-05 22:07 +0100
            Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-06 00:05 -0700
            Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-06 02:17 -0500
      Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-04 19:27 -0400
        Re: Stack Sizes Hans Bezemer <the.beez.speaks@gmail.com> - 2016-10-05 18:58 +0200
          Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-05 13:17 -0400
            Re: Stack Sizes Hans Bezemer <the.beez.speaks@gmail.com> - 2016-10-22 12:35 +0200
          Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 12:18 -0500
            Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-05 16:07 -0400
              Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 15:50 -0500
                Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-05 17:36 -0400
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 17:14 -0500
                Re: Stack Sizes "Elizabeth D. Rather" <erather@forth.com> - 2016-10-05 14:48 -1000
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-05 20:49 -0500
  Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-03 16:32 +0000
  Re: Stack Sizes Chris Curl <ccurl609@gmail.com> - 2016-10-03 13:53 -0700
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-03 17:54 -0400
  Re: Stack Sizes Rod Pemberton <NoHaveNotOne@zxdehrnyya.cam> - 2016-10-03 23:40 -0400
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 11:30 -0400
  Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-03 21:47 -0700
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 11:22 -0400
      Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-04 11:44 -0700
        Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-04 15:53 -0400
          Re: Stack Sizes Rod Pemberton <NoHaveNotOne@zxdehrnyya.cam> - 2016-10-04 16:15 -0400
      Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-05 14:31 -0700
        Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-06 08:48 -0400
          Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-06 13:08 -0700
            Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-06 19:11 -0400
  Re: Stack Sizes jim.brakefield@ieee.org - 2016-10-06 12:08 -0700
    Re: Stack Sizes alex <alex@rivadpm.com> - 2016-10-06 21:47 +0100
    Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-06 19:05 -0400
    Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-06 21:57 -0400
      Re: Stack Sizes jim.brakefield@ieee.org - 2016-10-06 19:21 -0700
        Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-07 00:10 -0400
          Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-06 23:14 -0700
            Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-07 02:26 -0400
              Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-06 23:57 -0700
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-07 08:18 -0500
                Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-07 10:52 -0400
                Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-09 16:22 -0700
                Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-10 01:49 -0400
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-10 10:21 -0500
                Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-10 22:39 -0400
                Straight Forth Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-10 12:36 +0200
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-13 13:45 -0700
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-14 01:16 -0700
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-15 20:38 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-16 02:00 -0400
                Re: Straight Forth Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-16 18:38 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-16 22:27 -0400
                Re: Straight Forth Re: Stack Sizes Raimond Dragomir <raimond.dragomir@gmail.com> - 2016-10-16 21:14 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-17 00:35 -0400
                Re: Straight Forth Re: Stack Sizes Raimond Dragomir <raimond.dragomir@gmail.com> - 2016-10-16 23:31 -0700
                Re: Straight Forth Re: Stack Sizes "Elizabeth D. Rather" <erather@forth.com> - 2016-10-16 20:36 -1000
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-17 13:11 -0700
                Re: Straight Forth Re: Stack Sizes Rod Pemberton <NeedNotReplyHere@xrsevnneqk.cem> - 2016-10-17 19:14 -0400
                Re: Straight Forth Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-10-17 21:53 +0000
                Re: Straight Forth Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-17 16:54 -0700
                Re: Straight Forth Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-10-21 22:13 +0000
                Re: Straight Forth Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-21 17:46 -0700
                Re: Straight Forth Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-10-23 22:26 +0000
                Re: Straight Forth Re: Stack Sizes JUERGEN <epldfpga@aol.com> - 2016-10-24 09:13 -0700
                Re: Straight Forth Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-24 16:28 -0700
                Re: Straight Forth Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-24 17:20 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-24 22:23 -0400
                Re: Straight Forth Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-11-04 20:39 +0000
                Re: Straight Forth Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-16 22:42 -0700
                Re: Straight Forth Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-17 11:12 +0200
                Re: Straight Forth Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-17 09:20 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-17 19:11 -0400
                Re: Straight Forth Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-17 16:40 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-17 20:19 -0400
                Re: Straight Forth Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-17 17:25 -0700
                Re: Straight Forth Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-17 20:50 -0400
                Re: Straight Forth Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-18 02:04 +0200
                Re: Straight Forth Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-18 06:13 +0000
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-16 15:21 -0700
                Re: Straight Forth Re: Stack Sizes Doug Hoffman <glidedog@gmail.com> - 2016-10-17 04:09 -0400
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-17 13:48 -0700
                Re: Straight Forth Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-18 02:12 +0200
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-18 00:35 -0700
                Re: Straight Forth Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-18 12:53 +0200
                Re: Straight Forth Re: Stack Sizes hughaguilar96@gmail.com - 2016-10-18 12:12 -0700
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-07 16:53 +0000
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-09 08:34 -0500
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-09 16:03 +0000
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-10 03:25 -0500
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-10 10:29 -0500
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-11 05:19 -0500
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-10 14:41 +0000
                Re: Stack Sizes Lars Brinkhoff <lars.spam@nocrew.org> - 2016-10-10 20:23 +0200
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-11 05:16 -0500
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-12 12:54 +0000
                Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-12 18:27 +0200
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-12 17:06 +0000
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-12 13:01 -0500
                Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-12 17:07 -0400
                Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-13 03:18 +0200
                Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-14 14:26 -0400
                Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-12 20:30 -0700
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-13 15:52 +0000
                Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-13 15:05 -0700
                Re: Stack Sizes Andrew Haley <andrew29@littlepinkcloud.invalid> - 2016-10-14 03:08 -0500
                Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-14 14:41 -0400
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-07 12:33 -0500
                Re: Stack Sizes rickman <gnuarm@gmail.com> - 2016-10-08 01:12 -0400
              Re: Stack Sizes Rod Pemberton <NeedNotReplyHere@xrsevnneqk.cem> - 2016-10-07 23:05 -0400
                Re: Stack Sizes jim.brakefield@ieee.org - 2016-10-07 21:56 -0700
                Re: Stack Sizes Walter Banks <walter@bytecraft.com> - 2016-10-08 07:23 -0400
                Re: Stack Sizes lawrencedo99@gmail.com - 2016-10-11 22:39 -0700
            Re: Stack Sizes Lars Brinkhoff <lars.spam@nocrew.org> - 2016-10-07 08:21 +0200
            Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-07 09:22 +0200
              Re: Stack Sizes Lars Brinkhoff <lars.spam@nocrew.org> - 2016-10-07 09:35 +0200
                Re: Stack Sizes jim.brakefield@ieee.org - 2016-10-07 10:51 -0700
                Re: Stack Sizes Cecil Bayona <cbayona@cbayona.com> - 2016-10-07 13:21 -0500
                Re: Stack Sizes Lars Brinkhoff <lars.spam@nocrew.org> - 2016-10-07 20:40 +0200
                Re: Stack Sizes albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2016-10-07 20:53 +0200
            Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-07 07:35 +0000
              Re: Stack Sizes Paul Rubin <no.email@nospam.invalid> - 2016-10-07 01:09 -0700
                Re: Stack Sizes anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-10-07 15:59 +0000
                Re: Stack Sizes Bernd Paysan <bernd@net2o.de> - 2016-10-17 22:05 +0000

csiph-web