third_party_content:community:commentary:forums_nonworks:15f37a5b97ff9b7e8525693d0047030f

Sign up on the Revelation Software website to have access to the most current content, and to be able to ask questions and get answers from the Revelation community

At 16 AUG 2000 08:55:38AM Lee Fong Lun wrote:

I am using Advanced Revelation verion 3. I was running a program and an error message ERRMSG27.4 came out. I was trying to find the cause of the message and unable to find out what causes it. What is this message means ?? What is the problem ?? I hope I can get some help here. Thank you.


At 16 AUG 2000 10:04AM [url=http://www.sprezzatura.com" onMouseOver=window.status=Click here to visit our web site?';return(true)]The Sprezzatura Group[/url] wrote:

This means that there are too many programs on the program stack. Try to use less {} references in your code as each dictionary item counts as a program.

The Sprezzatura Group

World Leaders in all things RevSoft


At 18 AUG 2000 01:37AM Lee Fong Lun wrote:

Thanks for the reply. But what is a program stack ?? Is it when I run a program, the program will be placed in the stack ??

I have Advaned Revelation version 3 installed in a Novell server. And I run programs form a few workstations. It that mean all the programs that I run from different workstations are placed in the same program stack ?? Although they are running the same program ??


At 18 AUG 2000 09:19AM Don Miller - C3 Inc. wrote:

Lee ..

It doesn't matter what network you're using. Each instance of the program maintains its own local program stack in memory. It works roughly as follows:

1. Every Call (direct or indirect) inside a program uses an entry in the program stack. The current program is suspended, it's variables, etc. are saved and control transfers to the call. It doesn't matter whether it is a subroutine or a function. The problem can be aggrevated in indirect dictionary symbolics. So, for example if your program uses tempfield={SYMBOLIC_FIELD}, a stack entry will be used. If inside {SYMBOLIC_FIELD} you do something like:

a={Symbolic_1}
b={Symbolic_2}
c=XLATE("filename",{SOMEFIELD},"FIELDNAME",'X')
note that this uses 2 stack entries + 1 for the XLATE ...
...
@ams=somecalc

then the call inside your program to {SYMBOLIC_FIELD} will use a lot more program stack space than you might think. This can be exacerbated if this kind of thing is being done inside a called subroutine that is not declared as expendable. The stack variables will stay around until the main program terminates.

HTH

Don Miller

C3 Inc.

View this thread on the forum...

  • third_party_content/community/commentary/forums_nonworks/15f37a5b97ff9b7e8525693d0047030f.txt
  • Last modified: 2023/12/28 07:40
  • by 127.0.0.1