Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, Migration Guide

Moving to the new compiler

Understanding the limitations of the new compiler
Language Environment Requirements
Language not supported
Multitasking
CHECK
CHARSET(48) and CHARSET(BCD)
EGCS
Fortran
Invalid code
Language restricted
RECORD I/O
STREAM I/O
Structure expressions
Array expressions
DEFAULT statement
Extents of automatic variables
Built-in functions
DEFINED BIT aggregates
OPTIONS(REENTRANT)
iSUB defining
LABEL arrays
DBCS
Macro preprocessor
Options restricted
Options not supported
Restrictions on other interfaces to the compiler
Batch compilation
Invoking the compiler from assembler
Compiling under TSO
Specifying INCLUDE dataset names
Compiler time and space requirements
AMODE(24) restrictions
EXTERNAL names restricted
Listing differences
Control block differences
ISAM support differences
Understanding the new compiler's options
Understanding the effect of default options on compatibility
BACKREG(5)
BIFPREC(15)
CMPAT(V2)
EXTRN(FULL)
LIMITS(EXTNAME(7))
NORENT and WRITABLE
SYSTEM
SYSTEM(CICS)
SYSTEM(IMS)
SYSTEM(OS)
Choosing non-default options for even more compatibility
COMMON
DFT(NOBIN1ARG)
DEFAULT(LINKAGE(SYSTEM))
DFT(OVERLAP)
NOREDUCE
NORESEXP
RULES(LAXCTL)
RULES(NOLAXINOUT NOLAXSEMI)
NOWRITABLE
Choosing options for improved performance
ARCH
BIFPREC(31)
DEFAULT(NONASGN)
DEFAULT(CONNECTED)
DEFAULT(REORDER)
DEFAULT(NOOVERLAP)
OPTIMIZE(2)/OPTIMIZE(3)
REDUCE
NORENT
RULES(NOLAXCTL)
TUNE
Choosing options for better quality
RULES(NOLAXDCL)
RULES(NOLAXIF)
RULES(NOLAXLINK)
RULES(NOLAXMARGINS)
RULES(LAXSTRZ)
RULES(NOMULTICLOSE)
Choosing options for test
CHECK(CONFORMANCE)
GONUMBER
PREFIX
TEST
Understanding the new compiler's messages
IBM1044: one-byte FIXED BIN
IBM1053: scaled FIXED BIN evaluation
IBM1065: imprecise float constants
IBM1091: FIXED BIN precision warning
IBM1099: mixed FIXED
IBM1181: miscoded DO loops
IBM1206: misuse of BIT operators
IBM1208: incompletely initialized arrays
IBM1215: incomplete declares
IBM1216: incorrect structure declares
IBM1220: pointless comparisons
IBM1927: SIZE condition
IBM1948: restricted expression evaluation
IBM2063: invalid ALLOCATE
IBM2402: storage overlay
IBM2409: RETURN; in a function
IBM2410: No RETURN in a function
IBM2412: missing RETURNS option
IBM2421: CLOSE in ENDFILE
IBM2610: precision interpretation
IBM2611, IBM2612: duplicate whens
IBM2617: passing labels out of PL/I
IBM2621: missing ON ERROR SYSTEM
IBM2622: warning on poorly coded DO loops
IBM2626: SUBSTR with a zero length
IBM2628: large BYVLAUE parameters
IBM2801: introduction of scaled FIXED BIN
IBM2804: suboptimal compares
IBM2810: conversion of scaled FIXED BIN
IBM2811: use of PICTURE as DO control variables
IBM2812: poor TRANSLATE and VERIFY
PLIXOPT messages
Using the compiler user exit
Understanding when working code must be changed
Incorrect code
Relying on the order of declarations
Using invalid FIXED DECIMAL data
Using invalid SUBSTR references
Using dissimilar EXTERNAL declares
Using an incorrect PLITABS declare
Initializing variables
Initializing AUTOMATIC
Initializing BASED
Initializing CONTROLLED
Initializing STATIC
Retaining unused declarations
Retaining unused INTERNAL STATIC
Incorrect code that will now raise exceptions
FIXEDOVERFLOW when SIZE is disabled
Invalid allocations
UNDEFINEDFILE with PRINT files
Incorrect code that will now loop endlessly
Even precision PICTURE loop control variables
Assignments that will produce different results
Source-target overlap
Float-to-float assignments
Other statements that will produce different results
STREAM I/O with unprintable characters
Uninitialized EXTERNAL STATIC
Incompletely declared FILEs
Dummy arguments and alignment
Dummy arguments and CONTROLLED
Pointer arithmetic
Code that will not perform as well
FIXED DEC as a loop control
FIXED BIN(15) as a loop control
I/O using TOTAL
Understanding when working code may need to be changed
Code that will now raise an exception
ZERODIVIDE and OVERFLOW promoted to ERROR
Conditions raised when disabled
Invalid RETURNs
GOTO holes
The scope of NOFOFL
Code that will now not raise exceptions
FIXEDOVERFLOW for FIXED BIN
CONVERSION when assigning blanks to numeric variables
ERROR when mapping excessively large aggregates
Storage mapped differently
One-byte FIXED BIN
Declarations handled differently
AREA with INITIAL
Conversions handled differently
Conversions from float to character
Conversions from scaled FIXED BINARY
Built-in functions handled differently
Arithmetic built-ins with scale factors and FIXED BIN
MACRO preprocessor differences
MACRO preprocessor and strings
Linking your new objects
Prelinker and PDSE considerations
AMODE(24) considerations
Using PLICALLA or PLICALLB Entry
CHANGE cards
Using Language Environment with the new compiler
Using the right run-time options
Calling PL/I from assembler main programs
Understanding when your results may vary
Return codes
When the run-time issues messages
What the run-time messages say
Where the run-time messages go
Math built-ins
Dumps
Storage reports
Prerequisite Language Environment PTFs
Tuning for better CPU and storage utilization
Improving CPU Utilization
Improving Storage Utilization
Improving Performance under Subsystems
Adding Enterprise PL/I programs to existing PL/I applications
Object and load module considerations
Sharing SYSPRINT
Run-time option considerations
Condition handling considerations
Partitioning PL/I source programs into units of execution
Moving from earlier VisualAge or Enterprise PL/I to Enterprise PL/I V3R8
Migrating from VisualAge PL/I
Migrating from Enterprise PL/I V3R1
Migrating from Enterprise PL/I V3R2
Migrating from Enterprise PL/I V3R3
Migrating from Enterprise PL/I V3R4
Migrating from Enterprise PL/I V3R5
Migrating from Enterprise PL/I V3R6
Migrating from Enterprise PL/I V3R7
Compiler messages introduced by V3R4
Compiler messages introduced by V3R5
Compiler messages introduced by V3R6
Compiler messages introduced by V3R7
Compiler messages introduced by V3R8
Object compatibility
Run-time changes

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)