Enhancements for OS/390 Version 2 Release 10 Language Environment
include the following:
-
Extra Performance Linkage(XPLINK)
The Hot Topics newsletter provides an article on
Using XPLINK to improve C/C++ program performance.
Language Environment provides greater flexibility in application development on OS/390
with XPLINK support. XPLINK is an enhanced linkage between programs that can significantly
improve the performance of your C and C++ programs. This new linkage addresses many
issues that you may have in application environments that have frequent calls between small
programs.
XPLINK offers the following benefits to your application environment:
- Improved performance for C and C++ subroutine linkage
- Improved performance through reduction in function size
- Increased ease in porting new applications to S/390
XPLINK versions of the following are provided:
- The compiled locale objects and of the code set converter programs
- The C curses archive file, libcursesxp.a
The primary goal of XPLINK is to make subroutine calls as fast and efficient as
possible by removing all nonessential instructions form the main program path.
XPLINK can significantly speed up the linkage for C and C++ routines by using a
downward-growing stack and by passing parameters in registers. It includes support
for calls to functions in Dynamic Link Libraries (DLLs) and compatibility with
old code.
XPLINK can also reduce the size of the program that is loaded into
memory, allowing your system programmers to fit more functions
into memory. This is especially effective for the typically small
functions in C++. XPLINK reduces the function footprint as much
as possible.
XPLINK introduces a common linkage for C and C++. When all functions are
compiled with XPLINK, you can use function pointers without restriction. Casting
of integers to function pointers will work as on other platforms.
This can ease the porting of new applications to S/390.
The STACK and THREADSTACK run-time options control the allocation
of both the standard linkage upward-growing and XPLINK downward-growing
stacks.
The THREADSTACK run-time options replaces the NONIPTSTACK run-time
option. The NONIPTSTACK run-time option is deprecated but remains for
compatibility, but without the XPLINK downward-growing stack support.
Debug Tool supports the debugging of applications that use the
XPLINK convention.
For more detailed information on XPLINK, see
Language Environment Programming Guide.
Downward Compatibility
The Hot Topics newsletter provides an article on
Downward compatability in Language
Environment - Problem solved!.
OS/390 Release 10 Language Environment provides downward
compatibility support. Assuming that you have met the required
programming
guidelines and restrictions, described in
Language Environment Programming Guide
,
this support enables you to develop applications on
higher release levels of OS/390 for use on platforms that are running
lower release levels of OS/390.
For example, a company may use OS/390 Release 10 with
Language Environment on a development system where applications are
coded, link-edited, and tested, while using any supported lower release of
OS/390 Language Environment on their production systems where the
finished application modules are used.
Downward compatibility support is not the roll-back of new
function to prior releases of OS/390. Applications developed that
exploit the downward compatibility support must not use any Language
Environment function that is unavailable on the lower release of OS/390 where
the application will be used.
The downward compatibility support includes toleration PTFs for
lower releases of OS/390 to assist in diagnosing applications that do not meet the
programming requirements for this support. (Specific PTF numbers can be found in
the PSP buckets.)
The downward compatibility support provided by OS/390 Release 10
and by the toleration PTFs does not change Language Environment's upward
compatibility. That is, applications coded and link-edited with one release of
OS/390 Language Environment will continue to run on later releases of OS/390 Language
Environment without the need to recompile or re-link edit the
application, independent of the downward compatibility support.
Large File Support
Language Environment provides large file support for 31-bit
applications that will improve
porting capabilities of C/C++ applications accessing HFS and NFS
files larger than 2 GB. This is
done by changing some C run-time library I/O functions to support
the long long data type for
recording file offsets.
CEEGPID Improvement
The CEEGPID callable service now provides a fully programmable byte-oriented
interface, mapping the Language Environment product ID, version, release, and
modification levels in the fullword value returned as CEE_Version_ID.
semop with Timeout Transform
Language Environment provides a timer parameter to control the
performance of signals based on semop() and msgrcv() functions.
Additional National Language Support
Language Environment provides code pages for:
- IBM-1390 Japanese
- IBM-1399 Japanese
- IBM-1364 Korean
sysconf performance
Language Environment provides sysconf functions to allow
for more data to be collected and to improve sysconf performance.
Retrieval of Machine ID
Language Environment provides a C function to retrieve the
CPUID of the current system.
Changed ABTERMENC Run-Time Option Default
The default value for the ABTERMENC run-time option is changed
from RETCODE to ABEND in OS/390 V2R10. This support was also optionally
provided in OS/390 V2R9. Please note that if the same default behavior is expected
as in previous releases, the default for the ABTERMENC run-time option must be set
to RETCODE.