The Compiler generates messages if your source program exceeds certain Open PL/I Compiler implementation limits. The following table lists these implementation limits.
Message | Limit |
---|---|
Depth of nesting of a structure | 16 |
Maximum length of an ‘external’ string constant | 30721 |
Maximum length of an ‘internal ’ string constant | 327672 |
Maximum length of a string constant with repeat specifier | 32767 |
Maximum length of source line | 1024 |
Maximum length of an identifier | 100 |
Maximum size of storage for AREA data | 2GB
Note: Very Large area sizes may be impacted by system resources.
|
Maximum size of a single data structure | 2GB |
Maximum stack storage allocated for automatic variables (per procedure) | 2GB |
Maximum storage allocated for static variables (per compilation unit) | 2 GB |
Maximum storage allocated for uninitialized static variables with -bss option | unlimited (system dependent) |
Array dimensions | 8 |
Nesting level of INCLUDE statements | 7 |
Nesting of DO, PROCEDURE, BEGIN, SELECT, and simple ON-unit statements | 643 |
Number of arguments in a subroutine or function call | 239 |
Number of data and format list pairs in an edit-directed specification | 256 |
Number of diagnostics (see the -maxmsg option in Compiler Options for information on configuring this limit.) | 1000 |
Maximum VSAM key size | 120 bytes |
Scale factor of variables | 0 ≤ scale factor ≤ 128 |
Scale factor of a constant | 0 ≤ scale factor ≤ 127 |
Scale factor of a conversion built-in function | 0 ≤ scale factor ≤ 127 |
Value of a format's repeat, w, or d field | 254 |
Precision for a fixed binary number | 31 |
Precision for a fixed decimal number (maximum) | 31 |
Precision for a float binary number | 52 |
Precision for a float decimal number | 16 |
Internal Limits | |
Number of tokens in a statement | 20,000 |