For z/OS Version 2 Release 1, Language Environment has the following changes:
- Accessing exported JCL symbols
New Language Environment interfaces allow programs to access exported JCL symbols. For 31-bit, callable service callable service CEEGTJS is provided. For 64bit, the C function __le_ceegtjs() is provided. This support provides another way to pass information to running programs from JCL.
- AMODE 64 support for large pages
You can exploit large pages in AMODE 64 in order to improve performance. A new Language Environment runtime option, PAGEFRAMESIZE64, is used to request that storage be backed by 1M pages for AMODE 64 applications.
- Enterprise COBOL V5.1 support
The Enterprise COBOL V5.1 runtime library is now supported with member ID 4.
- Converting between multibyte characters and specified Unicode characters
Users can convert between multibyte characters and specified Unicode characters using four new functions, mbrtoc16(), mbrtoc32(), c16rtomb() and c32rtomb() as specified in the C language standard, currently known as C11.
- Added support for exposing memory overlays that cause heap damage
Support was added for a new option that programmers can use to expose memory overlays that cause heap damage. A new HEAPZONES runtime option specifies that a checkzone be appended to each requested storage area. To find problems that might otherwise be difficult to identify, you can specify that Language Environment detect stored data in the check zone, or ignore data that is stored in it.
- Nested CEEPIPI environments
Language Environment provides support to allow nested CEEPIPI environments. Programs running in active CEEPIPI environments can now call CEEPIPI to create and use a nested CEEPIPI environment.
- Accessing data by blocks instead of bytes or records
With the BSAM type=blocked support, you can use XL C/C++ runtime library routines to process sequential data sets using blocked I/O, and to read from, write to, and reposition (seek) within data sets by blocks. Accessing data by blocks can provide significant performance improvements when you do not have to manipulate data within blocks.
- Removal of runtime option usermods
Support for creating usermods to modify runtime option defaults at the installation level was removed. The CEEXOPT macro was updated to prevent assembly of CEEDOPT or CELQDOPT CSETs. To override the IBM-supplied defaults at a system level, use the CEEPRMxx parmlib member support.
- Additional file I/O programming interfaces for z/OS UNIX System Services
Language Environment provides a set of nonstandard XL C/C++ file I/O functions that allow access to information about the file. A new header, <stdio_ext.h> is provided to improve the portability of these applications between z/OS and other UNIX platforms.
- Updates made for C11 compliance
Certain functions were made compliant to the C language standard (currently known as C11) when the environment variable _EDC_SUSV3=2 is set: log(), logf(), logl() log10(), log10f(), log10l() log1p(), log1pf(), log1pl() log2(), log2f(), log2l() pow(), powl().
- Converting multibyte Unicode encoded data to wide character data
Language Environment provides new functions to convert multibyte Unicode encoded data to wide character data. Four new conversion services are provided to perform these conversions between data encoded as
char16_tand char32_t, and CCSIDs supported by z/OS Unicode.