Compiler option changes in Enterprise COBOL 5 and 6
A number of changes are made to compiler options in Enterprise COBOL 5 and 6.
The following options are new:
Compiler option | Comments |
---|---|
AFP | New option. It controls the compiler usage of the Additional Floating Point (AFP) registers that are provided by IBM® z/Architecture® processors.
|
ARCH | New option. It specifies the machine architecture
for which the executable program instructions are to be generated.
|
CONDCOMP | New option in Enterprise COBOL V6.3 with the service PTFs. It affects the behavior of conditional compilation directives and controls how conditional code will be displayed in the listing. |
COPYLOC | New
option in Enterprise COBOL 6.1
with the service PTFs, 6.2 with the service PTFs, and from 6.3. It
can be used to add either a PDSE (or PDS )
dataset or z/OS® UNIX directory
as an additional location to be searched for copy members during the
library phase. |
COPYRIGHT | New option from Enterprise COBOL 5.2. It places a string in the object module if the object module is generated. |
DEFINE | New option from Enterprise COBOL 6.2. It assigns a literal value to a compilation variable that is defined in the program by using the DEFINE directive with the PARAMETER phrase. |
DISPSIGN | New option. It controls output formatting for DISPLAY of signed numeric items. DISPSIGN(COMPAT) is the default. |
HGPR | New option. It controls the compiler usage of the 64-bit registers provided by IBM z/Architecture processors. HGPR(PRESERVE) is the default. |
INITCHECK | New option in Enterprise COBOL 5.2 with the service PTFs, 6.1 with the service PTFs, and from 6.2. It controls whether to check for uninitialized data items and issue warning messages when they are used without being initialized. |
INITIAL | New option in Enterprise COBOL 6.2 with the service PTFs and from 6.3. It causes a program and all of its nested programs to behave as if the IS INITIAL clause was specified on the PROGRAM-ID paragraph. |
INLINE | New option in Enterprise COBOL 6.1 with the service PTFs and from 6.2 and later versions and later versions. It controls the compiler to consider whether to inline procedures referenced by PERFORM statements in the source program. INLINE is a potential performance boosting option. Note that INLINE was always in effect in COBOL 5. |
INVDATA | New option in Enterprise COBOL 6.2 with the service PTFs and from 6.3. The option
supercedes the deprecated ZONEDATA option. It tells the compiler whether data in USAGE DISPLAY and
PACKED-DECIMAL data items is valid, and if not, what the behavior of the compiler should be. To
ease your migration to COBOL 5 or 6:
|
JAVAIOP | New option from Enterprise COBOL 6.4. It controls the behavior of COBOL programs that interoperate with Java™ though the JAVA-CALLABLE or JAVA-SHAREABLE directives or by calling Java static methods using the CALL statement. |
LP | New option from Enterprise COBOL 6.3. It indicates whether an AMODE 31 (31-bit) or AMODE 64 (64-bit) program should be generated with the related language features enabled. LP(32) is the default. |
MAXPCF | New option. It instructs the compiler not to optimize
code if the program contains a complexity factor greater than n.
|
NUMCHECK | New
option in Enterprise COBOL 5.2
with the service PTFs, 6.1 with the service PTFs, and from 6.2. It
controls whether to generate
implicit numeric class tests for zoned decimal and packed decimal
data items that are used as sending data items, and whether to generate SIZE
ERROR checking for binary data items. |
PARMCHECK | New option in Enterprise COBOL 6.1 with the service PTFs and from 6.2. It tells the compiler to generate an extra data item following the last item in WORKING-STORAGE. This buffer data item is then used at run time to check whether a called subprogram corrupted data beyond the end of WORKING-STORAGE. |
QUALIFY | New option from Enterprise COBOL 5.2. It affects qualification rules and controls whether to extend qualification rules so that some data items that cannot be referenced under COBOL Standard rules can be referenced. |
RULES | New option from Enterprise COBOL 5.2. It requests information about your program from the compiler to improve the program by flagging certain types of source code at compile time. |
SERVICE | New option from Enterprise COBOL 5.2. It places a string in the object module if the object module is generated. |
SMARTBIN | New
option from Enterprise COBOL 6.4. It instructs the compiler to
generate modules containing additional binary metadata that enables them to be optimized by IBM Automatic Binary Optimizer (ABO) for z/OS 2.2. For details, see SMARTBIN changes. |
SQLIMS | New option in Enterprise COBOL 5.1 with the service PTFs, and from 5.2. It enables the new IMS SQL coprocessor (called SQL statement coprocessor by IMS). The new coprocessor handles your source programs that contain embedded SQLIMS statements. |
STGOPT | New
option. It controls storage optimization. NOSTGOPT is the default. In Enterprise COBOL 5.1, 5.2, and 6.1, data items can get optimized with OPT(2) even when NOSTGOPT was in effect. NOSTGOPT was changed in Enterprise COBOL 6.1 with the service PTFs and from 6.2, so that no optimization of storage or data items occurs even with OPT(2). This is especially helpful for WORKING-STORAGE eye-catchers. |
SUPPRESS | New option from Enterprise COBOL 6.1. It controls whether to ignore the SUPPRESS phrase of COPY statements. |
TUNE | New option from Enterprise COBOL 6.3 with the service PTFs. It specifies the
architecture for which the executable program will be optimized. In Enterprise COBOL 6.4, TUNE(8) and TUNE(9) are removed, and a new higher level of TUNE(14) is accepted. The default TUNE level matches the ARCH level if ARCH is specified. If ARCH is not specified, both ARCH and TUNE default to 10. |
VLR | New
option in Enterprise COBOL 5.1
with the service PTFs and from 5.2. It affects the READ statement
processing of variable length records that have length conflicts. VLR(STANDARD) is the default. For details, see Variable length records - wrong length READ. |
VSAMOPENFS | New option from Enterprise COBOL 6.1. It affects the user file status reported from successful VSAM OPEN statements that require verified file integrity check. |
XMLPARSE | New option in Enterprise COBOL 5.1 with the service PTFs and from 5.2. It enables you to choose between parsing with the compatibility-mode COBOL XML parser from the COBOL library, or with the z/OS XML System Services parser. It can ease your migration to the Enterprise COBOL 5 or 6 compilers. XMLPARSE(XMLSS) is the default. |
ZONECHECK | New
option in Enterprise COBOL 5.2
with the service PTFs and 6.1. It tells the compiler to generate IF
NUMERIC class tests for zoned decimal data items that are used as
sending data items. In Enterprise COBOL 6.1 with the service PTFs and from 6.2, ZONECHECK is deprecated but is tolerated for compatibility. Consider using NUMCHECK(ZON) instead. For details, see NUMCHECK in the Enterprise COBOL for z/OS Programming Guide. |
ZONEDATA | New option from Enterprise COBOL 5.2. It tells the compiler whether data in USAGE
DISPLAY and PACKED-DECIMAL data items is valid, and if not, what the behavior
of the compiler should be. Originally, Enterprise COBOL 5.2 at base level did not have the NOPFD suboption. In 5.2 with the service PTFs and from 6.1, the NOPFD suboption is added to let the compiler generate code that performs comparisons of zoned decimal data in the same manner as COBOL 4 does when using NUMPROC(NOPFD|PFD) in COBOL 4. To ease your
migration to COBOL 5 or 6:
|
For new compiler options in Enterprise COBOL 6, see Compiler options new with Enterprise COBOL 6.
The following options are modified:
Compiler option | Comments |
---|---|
CURRENCY | From Enterprise COBOL 6.3, the literal
argument to the CURRENCY option can no longer be the character 'U '
or the character 'u '. |
EXIT | The EXIT compiler option is no longer mutually exclusive with the DUMP compiler option, and the compiler exits rules are updated. |
INITCHECK | In Enterprise COBOL 6.1 with the
service PTFs, 6.2 with the service PTFs, and from 6.3 with the service
PTFs, new suboptions LAX | STRICT are added to the INITCHECK option
to control whether the compiler will issue warning messages for data
items unless they are initialized on at least one, or on all, logical
paths to a statement. |
LANGUAGE | To change to uppercase English or Japanese compiler messages in COBOL 6, in addition to using the LANGUAGE compiler option, you must also set the Language Environment® runtime option NATLANG at compile time. We recommend using CEEOPTS DD in the compile JCL. For example, to change messages to Japanese, use the
LANGUAGE(JA) compiler option and also specify the NATLANG LE runtime option at compile time:
|
MAP | In Enterprise COBOL 5.1 with the
service PTFs and from 5.2, new suboptions HEX | DEC are
added to the MAP compiler option to control whether hexadecimal or
decimal offsets are shown for MAP output in the compiler listing. Previous versions of Enterprise COBOL always showed hexadecimal offsets in MAP output, but Enterprise COBOL 5.1 at base level originally showed decimal offsets for MAP output. From Enterprise COBOL 5.1 with the service PTFs, new suboptions HEX and DEC are added to the MAP option. If MAP is specified with no suboption, it will be accepted as MAP(HEX). This will give you the same behavior in Enterprise COBOL 5 or 6 as in earlier COBOL compilers. Thus, it can ease your migration to Enterprise COBOL 5 or 6 compilers. |
MDECK | The MDECK option no longer has a dependency on the LIB option, as the LIB option is removed. For details, see LIB. |
NORENT | NORENT
can no longer be used with RMODE(ANY). Execution of NORENT programs above the 16 MB line is not supported. |
NOSTGOPT |
|
NUMCHECK | From Enterprise COBOL 6.3, when invalid
data is found at compile time and regardless of whether NUMCHECK(MSG) or NUMCHECK(ABD) is
in effect, an error-level message is produced and the check is removed. |
OPTIMIZE | The
OPTIMIZE option is modified to allow more levels of performance optimization
for your application. The previous OPTIMIZE option format is deprecated
but is tolerated for compatibility. Note: Although OPT(0) is equivalent
to the NOOPTIMIZE option in previous compilers, it now removes some
code that previously was not removed.
The storage optimization provided by the old FULL suboption of OPT is now provided by the new compiler option STGOPT. |
RMODE(ANY) | RMODE(ANY) can no longer be used with NORENT. |
RULES | In Enterprise COBOL 6.2 with the
service PTFs and from 6.3, the following new suboptions are added to the RULES compiler option:
From Enterprise COBOL 6.4, if there are multiple RULES specifications for a compilation, the suboptions are additive, which means they are accumulated. |
SOURCE | From Enterprise COBOL 6.3 with the
service PTFs, new suboptions DEC | HEX are added to SOURCE
compiler option. If SOURCE(DEC) is in effect, the line numbers for the listing of
the source will be in decimal format. If SOURCE(HEX) is in effect, the line numbers
for the listing of the source will be in hexadecimal format. |
SSRANGE | The compiled-in range checks cannot be disabled at run time using the
CHECK(OFF) runtime option.
In
Enterprise COBOL 5.2 with the service PTFs and from 6.1, new
suboptions In Enterprise COBOL 6.1 with the service PTFs and from 6.2, new suboptions
|
TEST |
|
For modified compiler options in Enterprise COBOL 6, see Compiler option changed with Enterprise COBOL 6.
The following options are removed:
Compiler option | Comments |
---|---|
DATEPROC | Support for Year 2000 extensions has been removed. |
LVLINFO | From Enterprise COBOL 6.1, the LVLINFO installation option is removed. The build level information is put where LVLINFO used to be, and the SERVICE compiler option can be used for user service level information in place of LVLINFO. |
LIB | The
compiler behaves as though COPY, BASIS, or REPLACE statements are included in a program and searches
for the specified library or libraries to retrieve the copied code referenced in those
statements. For details about how to define the source libraries, see Specifying source libraries (SYSLIB) in the Enterprise COBOL for z/OS Programming Guide. |
NUMPROC(MIG) | NUMPROC(PFD) and NUMPROC(NOPFD) are still available. If NUMPROC(MIG) is specified, Enterprise COBOL 5 or 6 issues a warning message and the compilation will get the default setting for NUMPROC. This is either the user-customized default or the IBM default, which is NUMPROC(NOPFD). To
migrate your programs compiled with NUMPROC(MIG) to Enterprise COBOL 6, consider
using the NUMCHECK compiler option to help you
migrate to NUMPROC(PFD):
For details, see NUMCHECK in the Enterprise COBOL for z/OS Programming Guide. |
SIZE |
|
YEARWINDOW | Support for Year 2000 extensions has been removed. |
ZONECHECK | In Enterprise COBOL 6.1 with the service PTFs and from 6.2, ZONECHECK is deprecated but is tolerated for compatibility, and it is replaced by NUMCHECK(ZON). |
For removed compiler options in Enterprise COBOL 6, see Compiler option not available in Enterprise COBOL 6.
- CMPR2
- EVENTS
- FDUMP
- FLAGSAA
- PFDSIGN
- RES
For a detailed list of options supported for the various compiler versions, see Option comparison.
For a detailed list of compiler options that can affect performance, see How to tune compiler options to get the most out of COBOL 6 in the Enterprise COBOL Performance Tuning Guide.
For detailed descriptions of all the compiler options, see Compiler options in the Enterprise COBOL Programming Guide.