Changes in compiling with Enterprise COBOL 6
z/OS MEMLIMIT changes
IGYCB7145-U Insufficient
memory in the compiler to continue compilation
. If you encounter this error message, set
REGION=0M
and MEMLIMIT=3G
on the job card and recompile your
programs. If it is successful, consider changing the system MEMLIMIT default that was set in IEFUSI,
SMFPRMxx, or SMFLIMxx to no less than 2 GB.Listing changes
- Starting
in Enterprise COBOL V6.1,
the build level information (of the form PYYMMDD) is always included
in the header of the listing file, which assists with determining
the maintenance level of the compiler. Here is an example of the listing
header:
PP 5655-EC6 IBM Enterprise COBOL for z/OS 6.4.0 PXXXXXX
In Enterprise COBOL V5 and V6.1, the diagnostic messages are in the middle of the listing. In Enterprise COBOL V6.2 and later versions, the diagnostic messages are at the bottom of the listing as with Enterprise COBOL V4 and earlier compilers.
- Starting in Enterprise COBOL 6.3, listing terminologies change as follows:
STATIC MAP
in Enterprise COBOL 6.2 and earlier versions is changed toINITIAL HEAP STORAGE MAP
.- Writeable static area (WSA) in Enterprise COBOL 6.2 and earlier
versions is changed to
storage
. WSA24
in Enterprise COBOL 6.2 and earlier versions is changed toBELOW THE LINE STORAGE
.AUTOMATIC MAP
in Enterprise COBOL 6.2 and earlier versions is changed toSTACK STORAGE MAP
.
JCL changes
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.
//CEEOPTS DD *
NATLANG(JPN)
/*
Starting in Enterprise COBOL 6.3, new cataloged procedures for doing compilation have been provided to help developing COBOL AMODE 64 (64-bit) programs. The AMODE 64 support is a new feature introduced to Enterprise COBOL 6.3. See Developing AMODE 64 programs (Enterprise COBOL for z/OS Programming Guide) for details about AMODE 64 support.
Compiler phases in shared storage changes
Starting
in Enterprise COBOL 6.3,
the installation customization for placing compiler phases into shared
storage is removed, since in modern systems most users have lots of
storage available, and do not need to conserve storage by placing
compiler phases in shared storage. As a result of this change to the
compiler, the language for placing compiler phases in shared storage
is no longer supported, so if you have a saved copy of the IGYCDOPT
customization that has a specification of compiler phases being IN
or OUT
of
shared storage, that language must be removed before you can assemble
IGYCDOPT. If you do not have any statements in IGYCDOPT that specify IN
or OUT
for
compiler phases, then you will not be affected by this change.
Use of file-name in CALL ... USING statement
The use of passing a file-name to a subprogram with the USING phrase of the CALL statement was removed in Enterprise COBOL 6.3, but is restored in Enterprise COBOL 6.3 with PTF for APAR PH20724 installed.
SMARTBIN
changes
Starting in Enterprise COBOL 6.4, the
SMARTBIN
option is on by default when LP(32)
is in effect.
SMARTBIN
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 (ABO) 2.2. When
SMARTBIN
is in effect, the additional binary metadata is placed in a
NOLOAD
segment of the module. To generate the
SMARTBIN
metadata, compile times may increase by up to 21% at
OPT(0)
and 2-3% at OPT(1)
and OPT(2)
on an IBM
z15® (or later) machine with zEnterprise Data Compression (zEDC)
enabled (hardware compression turned on). This is in comparison to an increase of up to 33% at
OPT(0)
and 10% at OPT(1)
and OPT(2)
on an IBM
z15™ (or later) machine without zEDC enabled (hardware compression turned off). The additional
metadata will also increase the size of the module on disk, requiring larger load libraries, but
will not increase the size in memory when the program is running since it is not loaded. The size
increase on disk will be approximately 2 times to 3 times the size of the original binary.
You can change the option to NOSMARTBIN
, however, without the additional binary
metadata, COBOL modules built with Enterprise COBOL 6.4 will be ineligible for ABO optimization and you would need to recompile and test your modules in the future to maximize benefit from IBM Z® hardware improvements. If you use ABO or plan to in the future, the SMARTBIN
option is recommended.
Refer to the IBM Automatic Binary Optimizer for z/OS product page for additional information on ABO benefits.
Usability enhancement
Starting in Enterprise COBOL 6.4 with PTF for APAR PH56142 installed, when compiling under z/OS UNIX, you can use the cob2 -M
option to generate a make dependency file, file.u
. This file contains entries for each copybook file that resides in a z/OS UNIX file system and is referenced in your COBOL source file.