What's new in Enterprise COBOL for z/OS 6.5

This section lists new and improved features in Enterprise COBOL for z/OS® 6.5

6.5 - June 2025 (release)

User-defined type support
A user-defined type is a group item or elementary item that is defined with the TYPEDEF clause and can be used to create one or more data items (called type instances), whose data description entries and structure are identical to those of the type. Type instances are defined using the TYPE clause.
For more information on type declarations, refer to User-defined types.
Index name qualification
An index name can now be qualified with the data name of its associated table and any ancestors of the table in the group in which it is defined. This is particularly useful when an index name appears in a user-defined type. Refer to User-defined types for more information.
High-Low qualification support
Data items in a hierarchy can now be qualified in order from highest level data-name to lowest level data-name using the new "::" operator. Refer to Qualification for more details.
VSAMDB support
VSAMDB files (datasets) provides the capability of storing and retrieving JSON documents through VSAM in COBOL. For more information, refer to Processing VSAMDB files.
New suboption for SMARTBIN
The (NAMES|NONAMES) suboption controls whether information about the names of the user symbols is added to the additional binary metadata. Refer to SMARTBIN for more information.
Intrinsic function ULENGTH enhancement
Two optional arguments are added to ULENGTH to provide enhanced functionality when calculating the number of characters of a UTF-8 item. Refer to ULENGTH for more information.
JSON GENERATE COUNT BYTE-LENGTH enhancement
The optional COUNT BYTES phrase is added to obtain the byte count directly, reducing the coding needed to get the byte count, and allows for better runtime application performance. Refer to JSON GENERATE statement for more information.
ARCH changes
A new higher level of ARCH(15) is accepted. ARCH(10) is no longer accepted. ARCH(11) is the default. Refer to ARCH for more information.
TUNE changes
A new higher level of TUNE(15) is accepted. TUNE(10) is no longer accepted. If ARCH is not specified, the default is TUNE(11). Refer to TUNE for more information.
OMITTED class test and OPTIONAL parameters changes
BY REFERENCE parameters in PROCEDURE DIVISION USING statements can now be marked as OPTIONAL. Optional parameters can be tested using the new OMITTED class test to find if they were included or omitted in the CALL statement to this program. Refer to Omitted argument condition for more information.
Non-OO COBOL/Java interop DLL naming improvements
When the user directs the cjbuild utility to output the DLL for their program to a data set, the specified name is no longer automatically prefixed with the 3 characters "LIB", allowing users to now use the full 8 characters of a member name for the name of their DLL, which will make it easier to name the DLL the same as the COBOL program. JCL link step changes will be needed. Refer to Changes in compiling with Enterprise COBOL 6 or cjbuild command reference for more details.