For z/OS Version 1 Release 2, Language Environment provides the following:
- Enhanced ASCII Functionality
Enhanced ASCII functionality makes it easier to port internationalized applications developed on, or for, ASCII platforms to z/OS platforms by providing conversion from EBCDIC to ASCII and from ASCII to EBCDIC.
To complement this support, a file tagging mechanism is introduced, which allows programmers to tag text files with an identifier indicating the encoding used to write the data. These tags can be used to translate from one encoding to another. This allows the use of EBCDIC programs against ASCII data files.
This section explains under what conditions you can use Enhanced ASCII. For limitations of Enhanced ASCII, see z/OS C/C++ Programming Guide.
- Limitations of Enhanced ASCII
- A subset of C headers and functions is provided in ASCII. For more information, see z/OS C/C++ Run-Time Library Reference.
- The only way to get to the ASCII version of functions and the external variables environ and tzname is to use the appropriate IBM header files.
- ASCII environment variables may read, but not update, environment variables using the environ external variable Updates to the environment variables using environ in an ASCII application causes unpredictable results and may result in an abend. Language Environment maintains two equivalent arrays of environment variables when running an ASCII application, one with EBCDIC encodings and the other with ASCII encodings. All ASCII compile units that use the environ external variable must include so that environ can be mapped to access the ASCII-encoded environment strings. If
is not included, environ will refer to the EBCDIC representation of the environment variable strings.
Enhanced ASCII provides limited EBCDIC/ASCII conversion. The character set or alphabet that is associated with any locale consists of the following:
- A common, XPG4-defined subset of characters such as POSIX portable characters
- A unique, locale-specific subset of characters such as NLS characters
The conversion only applies to the portable subset of characters that are associated with a locale. Only the EBCDIC IBM-1047 encoding of portable characters is supported.
You might encounter unexpected results in the following situations:
- If Enhanced ASCII applications run in locales that contain non-Latin Alphabet Number 1 NLS characters, C-RTL functions might copy some of the locale's non-Latin 1 NLS characters into buffers that the application is writing to stdout or other HFS files. The non-Latin Alphabet Number 1 NLS characters would then cause problems during automatic conversion.
- Language Environment applications must select non-English message files. If the NATLANG run-time option is not UEN or ENU, conversion does not take place. The messages are presented to the file system write routine in EBCDIC, before any automatic conversion takes place. If the automatic conversion is to EBCDIC, there will be a problem because EBCDIC cannot be converted to EBCDIC.
- CICS dynamic storage tuning
When Language Environment is running with CICS, support for automatic storage tuning is provided to improve performance of applications running under CICS. Automatic storage tuning is controlled with the CICS system initialization parameter AUTODST. Automatic storage tuning reduces GETMAIN and FREEMAIN activity associated with acquiring Language Environment stack or heap increments.
- Server thread task management
As the complexity in managing many environments increases, this function provides automated management of server tasks running in the server space. The putwork() and getwork() functions are enabled for Workload Manager to dynamically vary the number of server threads active to process work requests.
- Heap storage diagnostics support
A new report is provided in CEEDUMP that shows show traceback information for storage that was allocated but not freed.
- Documentation improvements for traces
z/OS Language Environment Debugging Guide contains trace documentation improvements.
- Use CICS dump services
The CICS transaction dump now includes CEEDUMP data.
- Improvement in storage use
Language Environment has been changed to favor 31-bit applications. This increases performance by eliminating the dependency for below-the-line storage in a 24-bit application.
- Machine state control block
All fields in the Language Environment machine state control block CEEMCH are externalized.
- Reusable enclaves for CICS scalable Java Virtual Machine (JVM)
Java programs can initialize once and then allow subsequent Java programs to begin running. A Language Environment enclave (CICS thread) remains active as needed.
- TCP/IP resolver enhancement
DNS and BIND transform conversions are provided for Communications Server.
- CICS trace of an application domain
A new CICS trace allows users to monitor and determine the activity of a CICS transaction. This gives users the ability to trace key events in Language Environment while running CICS transactions.
- pread() and pwrite() transform
The new pread() and pwrite() functions perform the same actions as read() and write(), except that they read or write from a given position in a file without changing the file pointer. This reduces system overhead and improves performance.
- Removal of SOM Support from Language Environment
SOMobjects ADE and SOMobjects RTL have been removed from z/OS.
What's New in C/C++ for z/OS Version 1 Release 2
This run-time library is shipped with Language Environment. For z/OS Version 1 Release 2, the C/C++ run-time library includes the following enhancements:
- ISO/IEC 14882:1998 Programming Language - C++
The new C++ compiler adheres to the latest ISO 1998 C++ standard, including a compiler implementation of the ISO Standard C++ library and the ANSI Standard Templated Library (STL). This supports IBM's continuing adherence to openness and offers customers the increased portability of applications to and from other platforms that support the ISO 1998 C++ standard.
- BiDi functionality and Arabic locale
Support is added for a BiDi routine to allow proper handling of Arabic and Hebrew data in applications. The interfaces handle the conversion of BiDi data from logical to visual and vice versa.
- Internet Protocol (IP) address conversion
IBM intends to provide an integrated Internet Protocol Version 6 (IPV6) implementation that will enable application access using the new TCP/IP standard. Support is added in the C/C++ run-time library for IPV6 functions inet_pton() and inet_ntop() and global variables.
- POSIX threads extensions
This support provides the _r functions that indicate thread-safe functions in UNIX 98 standards. Large applications in multi-threaded environments need verification that functions are thread safe.
- Eurocurrency support
Latin 9 support is provided for customers doing business in many different countries requiring National Language Support or Unicode support to operate efficiently on the z/OS platform.
- Goal mode support
A Language Environment transform is provided in support of z/OS UNIX System Services goal mode support for Workload Manager.
- Enhancement to the uname utility
This enhancement allows for continued support of the name OS/390 within the uname() field.
- Chinese code conversion standard
GB 18030 is a new code standard that provides encodings for approximately 30,000 Chinese characters. The iconv function now supports GB18030 conversions. Customers can cause this support to allow creation and processing of text documents containing these characters.
- <<b>Upgrade of IBM Open Class Library
The IBM Open Class Library (OCL) is a library of C++ classes. z/OS Version 1 Release 2 includes a new level of IOC, which is consistent with that shipped in VisualAge C++ for AIX Version 5.0. This is intended to ease porting from AIX, but is not intended for use in new development. Support will be withdrawn in a future release. New application development involving C++ classes should make use of the C++ Standard Library rather than the IBM Open Class Library.