R-code > 62K and info on "-isnoconv" parameter

Posted by LegacyUser on 20-Mar-2001 10:34

Hi,

I am trying to migrate a Progress application

from version 8.2c to version 9.1b. Everything has

been well except the compilation of some

programs. I got the message # : 3307, indicating

that the programs exceeded the 62K limit in heir

R-code generated. I tried with the startup

parameter "-isnoconv" and got no success.

Any help or suggestion of solution is greatly

appreciated.

Gilles

All Replies

Posted by LegacyUser on 23-Mar-2001 06:32

Gilles,

The following text is from the online help;

WHAT GOES INTO ACTION CODE SEGMENT

==================================

There is one action code segment for the main procedure and one for each internal procedure. The action code segment contains the PROGRESS primitives (display, set, for each, open query, get next, find, update, etc...).

HOW TO OVERCOME ACTION CODE SEGMENT LIMITATION ERROR 3307

=========================================================

If the 62K limit on an action code segment is exceeded, the following error is given:

Action segment has exceeded its limit of 61440 bytes, in at line # . (3307)

Since each internal procedure has its own action segment you can move trigger code into internal procedures and run the internal procedures from the triggers. This would give you an additional 62K of action code segment in your procedure

for every new internal procedure you create.

You can also reduce the size of your action code segment by combining multiple 4gl statements into one. For example, you can change:

var1 = "a".

var2 = "b".

var3 = "c".

to:

ASSIGN

var1 = "a"

var2 = "b"

var3 = "c".

This will execute one action instead of three, therefore a-code is decreased.

WHAT GOES INTO EXPRESSION CODE SEGMENT

=======================================

There are 4 expression code segments for a procedure in Version 7.3 and later. There is only one in 7.2 and earlier.

Expression code segments contain all Progress functions and any type of expression.

MIGRATING CODE FROM EARLIER VERSIONS OF PROGRESS

================================================

Customers migrating code from an earlier version of Progress to the latest release (for example, migrating from Version 7 to Version 8) without changing or adding code may get error 3307.

This may occur in cases where customers were close to the limit in the earlier version and the added capabilities of the latest release increased the r-code enough to go over the limit. The action code segment is the segment most likely to be exceeded, but any of the other segments (initial value, debugger, text, e-code, or frame) may also be exceeded if they were close to the limit in the previous version.

A way to determine how close the earlier release code is to the action code segment limit is with a client.mon report of segment This report will be written to the working directory when -yd startup paramter is used. When code is compiled in a session where -yd has been used, the program is listed in client.mon with its segment sizes.

Hope this helps

Dave

"Gilles" wrote:

>

>Hi,

>

>I am trying to migrate a Progress application

>from version 8.2c to version 9.1b. Everything has

>been well except the compilation of some

>programs. I got the message # : 3307, indicating

>that the programs exceeded the 62K limit in heir

>R-code generated. I tried with the startup

>parameter "-isnoconv" and got no success.

>

>Any help or suggestion of solution is greatly

>appreciated.

>

>Gilles

>

This thread is closed