|

Language Environment for OS/390® V2R10 is now downward compatible. This means that with required restrictions and programming guidelines observed, applications developed on higher levels of OS/390 will be able to run on execution platforms with lower release levels of OS/390.
Did you ever get and ABENDFCC (ABENDSFCC) because you linked an application with any OS/390 Version 2 Language Environment release, but ran it on any release of OS/390 Version 1 Language Environment? And the application didn't even take advantage of any new function of OS/390 Version 2, did it?
Unfortunately, this used to happen because a common practice many MVS mainframe customers follow. Many use their application development machine as a testing environment for the newest level of the operating system. The application programmers are not only developing and maintaining applications, but invariably testing the newest level of the operating system. However, these applications have a different release schedule to the production environments than the operating system. What ends up happening is that customer applications are compiled and linked on a higher level OS/390 system while they are executed on a lower level of OS/390. In those days you would have incompatibilities a plenty, better known as "downward compatibility" problems. But not anymore. We've felt your pain and came up with an antidote!
Prior to the solution we provide in OS/390 V2R10, IBM® had prescribed a remedy which involved saving the older level of OS/390 Language Environment libraries. While we knew this was a tactical solution, we provided instructions (as documented in INFO APAR II11316) to allow system programmers to keep the lowest level of the Language Environment libraries currently executing in the enterprise, on the development machine. To prevent any downward incompatibilities, application developers were then required to use these saved libraries during coding, link-editing, and testing before deploying the application on the production machines.
But now that our strategic solution is available, customers no longer need to save around lower levels of the Language Environment data sets. We have eliminated this step altogether with our unique design. We implemented our solution mostly through toleration PTFs. These toleration PTFs not only correct the incompatibilities but also provide diagnosis assistance when new functions are used in applications; functions which were available on the higher level of OS/390 on the development machine, but not available on the lower OS/390 level of the production environment. For C/C++ programmers, we have enhanced the TARGET compiler option to prevent new functions to be coded in the application, specifically those unavailable on the targeted system. Changes to our system headers and to the C/C++ compiler allow this to work.
The Language Environment downward compatibility support is available to all applications written in COBOL, PL/I, C/C++, and Fortran. Details of the diagnosis assistance, programming guidelines, and restrictions can be found documented in the OS/390 V2R10 level of Language Environment Programming Guide. A list of toleration PTFs are provided in the OS/390 V2R10 PSP bucket.
To avoid confusion, you should be aware of what "downward compatibility" does not mean. "Downward compatibility" does not mean that new functions are rolled back to old releases. Applications developed with the intention of being downwardly compatible must not use Language Environment function that is unavailable in previous releases. It also does not change Language Environment's upward compatibility. Upward compatibility has always been a part of Language Environment and will continue to be in OS/390 V2R10. This means that applications coded and link-edited on one release of OS/390 will continue to work on later releases.
So what does one need to do start taking advantage of this new function? For system programmers it means getting OS/390 V2R10 installed on the development machine as soon as possible. In addition, toleration PTFs will need to be installed on production machines. Application developers on the other hand, will need to ensure that they are using this new level of OS/390 Language Environment when compiling and link-editing their applications. The rest of our support is transparent to the development community, which means that no analysis nor any redevelopment of current applications is necessary.
Finally, what you can take away from all of this, is that OS/390 V2R10 Language Environment is both upward and downward compatible. IBM is committed to provide this support with future releases of the operating system and Language Environment.
|