Summary of changes

This topic lists the major changes that have been made to this document since Enterprise COBOL for z/OS® 6.4. The changes that are described in this information have an associated cross-reference for your convenience.

For a complete list of new and improved features in Enterprise COBOL for z/OS 6.4 and COBOL 6.4 with PTFs installed, see What is new in Enterprise COBOL for z/OS 6.4 and COBOL 6.4 with PTFs installed in the Enterprise COBOL for z/OS What's New.

Enterprise COBOL for z/OS 6.4 with PTFs installed

  • PH48453: New sample files demonstrating a COBOL/Java™ interoperable application and how to build it are provided in the demo subdirectory of the COBOL install directory in the z/OS UNIX file system. (Example: COBPROD application - building and running)
  • PH48667: A problem is fixed for using figurative constant HIGH-VALUES with fixed byte-length UTF-8 data items of a length not a multiple of 4 bytes. (Using UTF-8-character figurative constants)
  • PH49715: A new cjbuild command reference section is added to address various usability and stability issues relating to the non-OO Java/COBOL interoperability. (cjbuild command reference)
  • PH50295: The NUMCHECK compiler option is updated to avoid generating runtime checking code of zoned-decimal senders in MOVE statements when the receiver is an alphanumeric data item and NUMCHECK(ZON(LAX)) is in effect. (NUMCHECK)
  • PH50296: CONDCOMP: The new CONDCOMP compiler option is introduced to control how conditional code will be displayed in the listing. (CONDCOMP)
  • PH51752: A new sample JCL is provided to demonstrate how a non-OO COBOL/Java interoperable application can be built and run entirely using JCL. (Sample JCL for building and running the COBPROD application)
  • PH53631: Enhanced the ON EXCEPTION phrase support to deal with exceptions in the non-OO COBOL/Java interoperability framework. (Handling errors in Java-interoperable COBOL applications)
  • PH56036 and PH56037: An optional alternate logic path is introduced for VSAM files that use the ACCESS IS DYNAMIC mode. The alternate logic path uses a direct read-by-key request instead of a point to a record by key. (Specifying access modes for VSAM files)
  • PH56142: 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. (cob2 syntax and options)
  • PH57297: You can use UTF-8 (PIC U) data items as the arguments to the STRING and UNSTRING statements. (COBOL statements and UTF-8 data items)
    Note: COBOL Runtime LE APAR PH57264 (for AMODE 31) or APAR PH57265 (for AMODE 64) must also be applied on all systems where programs that make use of this new feature are linked or run.
  • PH57397: You can use function prototypes to invoke COBOL user-defined functions. This is part of the 2014 COBOL Standard. (Using function prototypes)
  • PH57400: You can use dynamic-length and UTF-8 (PIC U) data items as the arguments to the JSON GENERATE and JSON PARSE statements. (Processing JSON input and Producing JSON output)
    Note: COBOL Runtime LE APAR PH57152 must also be applied on all systems where programs that make use of this new feature are linked or run.
  • PH59733: You can generate and parse JSON null values by using the JSON GENERATE and JSON PARSE statements. (Generating JSON null values and Handling JSON null values)
  • Runtime APAR PH61133 (V2R4 or later): You can use ddname IGZPROUT at the run step of your JCL to generate a report of COBOL programs that are compiled with Enterprise COBOL 5 or later releases. (Generating a report of COBOL programs)
  • PH61700: The cjbuild utility is enhanced to allow users to specify the names of COBOL programs in the command line and process all files in the COBOL artifact directory. (cjbuild command reference)
  • PH64491: Use the LSACHECK option (LSACHECK is short for Linkage Section Addressability Check) to prevent inadvertent use of LINKAGE-SECTION data items prior to establishing addressability. This can prevent problems when migrating to z/OS 2.5 and later.(LSACHECK)
  • Runtime APARs PH63898 (for 31-bit/AMODE31) and PH63939 (for 64-bit/AMODE64) provide new runtime messages for ABENDs due to LSACHECK to better explain the 0C4 ABEND

Enterprise COBOL for z/OS 6.4

Compiler option changes

  • The following compiler options are new:
    • SMARTBIN: Use SMARTBIN to instruct 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. (SMARTBIN)
    • JAVAIOP: Use JAVAIOP to control 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. (JAVAIOP)
  • The following compiler options are modified:
    • ARCH: ARCH(8) and ARCH(9) are no longer accepted. A new higher level of ARCH(14) is accepted. ARCH(10) is the default. (ARCH)
    • RULES: If there are multiple RULES specifications for a compilation, the suboptions are additive, which means they are accumulated. (RULES)
    • TUNE: TUNE(8) and TUNE(9) are no longer accepted. A new higher level of TUNE(14) is accepted. TUNE(10) is the default if ARCH is not specified. (TUNE)

Improved COBOL/Java interoperability

You can easily extend your COBOL applications with Java using a more comprehensive and flexible form without the need to write object-oriented (OO) COBOL programs. (COBOL/Java interoperability outside of the object-oriented (OO) COBOL framework and Compiling, linking, and running non-OO COBOL applications that interoperate with Java)

Interoperability between AMODE 31 (31-bit) and AMODE 64 (64-bit) COBOL programs

AMODE 64 (64-bit) COBOL applications can interoperate with your existing AMODE 31 (31-bit) COBOL applications. Dynamic call is supported in a mixed AMODE 31/AMODE 64 environment. (COBOL applications with mixed AMODE 31 and AMODE 64 programs)

User-defined functions support

You can write your own function definitions and invoke them by using a reference to a function identifier. This is part of the 2002 COBOL Standard. (Using user-defined functions)

Debugging enhancement

With COBOL 6.4 at the base level, you can use ddname IGZPROUT at the run step of your JCL to generate a report of all dynamically called programs that are compiled with Enterprise COBOL 5 or later releases. With the COBOL runtime PTF for APAR PH61133 installed, the report contains COBOL 5 or later programs that are called dynamically, statically, and via DLL linkage. (Generating a report of COBOL programs)