If you want to maintain object compatibility with code generated by VisualAge PL/I or earlier Enterprise PL/I releases, it is imperative that you use, with this Enterprise PL/I release, the same value from each of the following set of options that you used with the earlier compiler:
The PTF for APAR PQ66252 changed VisualAge PL/I 2.2.1 (and corresponding PTFs changed Enterprise PL/I 3.1 and 3.2) so that the results of conversions of FLOAT to FIXED DEC and PICTURE would match those produced by the old compilers.
This can cause a small difference in some conversions. For example given:
dcl f float dec(16); dcl d2 dec(15,2); f = 1.4417e+04; f = f / 100; d2 = f;
all the compilers will now assign the value 144.17 to d2, while before this PTF, the new compilers would have assigned the value 144.16 to d2.
With APAR PK17575 (which applied to V3R3, V3R4, and V3R5), the compiler generated code will set a flag in the CAA if MAIN contains an ON FINISH block. With a corresponding library APAR, the library will check for this flag and unless it is on, it will not raise FINISH. This pair of changes can yield signicificant performance improvements. However, this alsos means that once you apply this library APAR, you must recompile any old Enterprise PL/I objects that have an ON FINISH block or else the ON FINISH block will not be entered.
Apart from these changes, there is complete object compatibility between code compiled by the Enterprise PL/I V3R2 compiler and code compiled by either the VisualAge PL/I or the Enterprise PL/I V3R1 compiler as long as you adhere to these limitations:
It remains our recommendation that all code be compiled with the same settings for the RENT/NORENT and WRITABLE/NOWRITABLE options.