Kbase 12141: R-code segments and portability under Version 7
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/05/1998 |
|
R-code segments and portability under Version 7
Subject: r-code segments
Progress .r files in Version 7 are broken into segments.
Each segment except frame segments has a 60K limit.
There are various types of segments as follows:
a-code This type holds the actual pseudo-code (action-cells). There is
is a separate a-code segment for the main procedure and each
internal procedure. Trigger blocks will get a separate a-code
segment only if their code is located in an internal procedure
or external procedure.
e-code This type holds the RPN description of each expression. There is
is exactly 1 e-code segment for an entire .r file.
text This segment holds all character strings for the entire .r.
There is 1 text segment for each language specified in the
COMPILE statement. Only one text segment is in memory at
a time.
init There is 1 segment which contains information needed to
initialize the execution of a .r file (initial values, etc)
frame One segment per frame defined in the .r file. (frame segment
has a 32K limit).
debugger One segment per .r file. Contains information needed for the
4GL debugger. Loaded into memory on demand.
Originally, there was just 1 a-code segement for the entire .r file.
We ran into troubles with our ADE programs, so we split up the a-code
segments as mentioned above. This solved the problem and we haven't
had any other problems with r-code size limits.
R-code management
-----------------
The -e start up parameter is defunct in V7. Memory management for
r-code segments is completely dynamic. The -mmax start up parameter
controls how much memory is allocated for r-code segments before
swapping to the sort file occurs.
Portability
-----------
Progress .r files are portable *within* the same display (Motif/MSW)
environment. Character mode .r files are portable across all platforms
in character mode.
Progress Software Technical Support Note # 12141