gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] GCL stack siza


From: Vadim V. Zhytnikov
Subject: Re: [Gcl-devel] GCL stack siza
Date: Mon, 21 Jul 2003 22:22:16 +0300
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.4) Gecko/20030630

Camm Maguire ?????:
Hi Vadim!  First, do you feel this is related to my earlier request
for suggestions on our gbc setup? Or is this a separate concern?

Thank you for comments. No, I don't think that stack is directly related to GBC problems (my major concern). But It occurs to me that GCL stack management also needs some improvement.

In any case, here is stacks.h with my comments:

#ifndef MAXPAGE  /* total memory */
#define MAXPAGE (32 * 1024)
#endif
#ifndef VSSIZE  /* value stack size, configurable, default below */
#define VSSIZE 8192
#endif

#define VSGETA 128 /* emergency extra stack space available to a
                        running program */
EXTER object value_stack[VSSIZE + (STACK_OVER +1) *VSGETA];
#define BDSSIZE         1024  /* variable dynamic binding stack
                                globals can have different bindings in
                                nested functions */
#define BDSGETA         40
EXTER struct bds_bd bind_stack[BDSSIZE + (STACK_OVER +1)* BDSGETA];

/* #define IHSSIZE 1024 */
/*  #define     IHSGETA         32 */
#define IHSSIZE         4096 /* a stack listing the name and base
                                address of parent function calls */
#define IHSGETA         64
EXTER struct invocation_history ihs_stack[IHSSIZE + (STACK_OVER +1) * IHSGETA];

#define FRSSIZE         1024 /* a stack providing debugging
                                information for  function calls in
                                interpreted and possibly compiled
                                code, i.e. addresses for interactively
                                long jumping back to a particular parent call, 
etc. */
#define FRSGETA         16
EXTER struct frame frame_stack[FRSSIZE + (STACK_OVER +1) * FRSGETA];


Suggestions for default values, and/or which should be configurable,
are welcome.  My feeling is that frs and ihs should be the same size.

Take care,



"Vadim V. Zhytnikov" <address@hidden> writes:


It seems to me that current dfault stack size
is too little.  I recall thet it was enlarged
to 1K not so long ago and now if I fire
 (defun f (i) (f (print (+ i 1))))
 (f 0)
we end with 1021.  But IMHO it is not
that much.  I found out that in
CLISP, SBCL and CMUCL minimal stack
size is much greater - minimal about 14K.
Even ACL demo has 4K stach limit - but
this is intended demo limitation.
Ideally I'd like to see stack size as
GCL configure option.  As far as I
understand stack size is defined in
stack.h but I a bit confused by
multitude of constants in this file.

--
     Vadim V. Zhytnikov

      <address@hidden>
     <address@hidden>





_______________________________________________
Gcl-devel mailing list
address@hidden
http://mail.gnu.org/mailman/listinfo/gcl-devel







--
     Vadim V. Zhytnikov

      <address@hidden>
     <address@hidden>






reply via email to

[Prev in Thread] Current Thread [Next in Thread]