Developer for System z
Enterprise PL/I for z/OS, Version 3.8, Migration Guide
Contents
Figures
About this book
Using your documentation
PL/I information
Language Environment information
How to send your comments
Overview
Do I need to recompile?
Migration basics
Run-time migration - Moving to Language Environment
Compiler migration
Migration Roadmap
Service support for OS PL/I and PL/I for MVS & VM
Introducing the new compiler and run-time
Product relationships - compiler, run-time, debug
General PL/I compiler information
Language Environment's run-time support for other programs
Advantages of the new compiler and run-time
Major changes with the new compiler and run-time
General conversion tasks
Planning your strategy
Moving to the Language Environment run time
Recompiling your source with Enterprise PL/I
Adding Enterprise PL/I programs to existing applications
Conversion Strategies
Planning the move to Language Environment
Prepare to move to the Language Environment run-time library
Installing Language Environment
Assessing storage requirements
Educating your programmers about Language Environment
Take an inventory of your applications
Vendor tools, packages, and products
PL/I applications
Existing PL/I load modules
Decide how to phase in Language Environment
Multilanguage conversion
Determining how applications will have access to the library
Set up a regression testing procedure
Take performance measurements
Cut over to production use
Planning to move to the new compiler
Prepare to move your source to the new compiler
Installing Enterprise PL/I
Assessing storage requirements
Educating your programmers on new compiler features
Take an inventory of your applications
Taking an inventory of vendor tools, packages, and products
Taking an inventory of PL/I applications
Prioritizing your applications
Setting up move/no move categories
Make application program updates
Moving existing applications to Language Environment
Running existing applications under Language Environment
Invoke existing applications
For non-CICS applications
For CICS applications
Link-edit existing applications
Considerations Before Migrating
Differences in Run-Time Options
Deleted run-time options
Replaced run-time options
New run-time options
Differences in Condition Handling
Timing differences
Unhandled condition differences
IBMBXITA and IBMBEER differences
ABEND U4039 differences
Severity differences
Differences in PLICALLA and PLICALLB Support
PLICALLA Considerations
PLICALLB Considerations
Differences in Preinitialization Support
Differences in PLISRTx Support
Differences in Multitasking Support
Differences in OS PL/I Shared Library support
Differences in DATE/TIME Built-In Functions
Differences in User Return Code
Differences in the opening of PRINT files
Differences in Run-Time Messages
Differences in PLIDUMP
Differences in Storage Report
Differences in Interlanguage Communication Support
Differences in Assembler Support
Assembler programs that find the main parameter list
Object and Load Module Considerations
OS PL/I Version 1 Object Module and Load Module Compatibility
OS PL/I Version 1 Release 5.1
OS PL/I Version 1 Release 5
OS PL/I Version 1 Release 3.0 - Release 4.0
OS PL/I Version 1 Prior to Release 3.0
OS PL/I Version 2 Object Module and Load Module Compatibility
Summary of Support for OS PL/I Object and Load Modules
Link-Edit Considerations
SCEERUN
Symbol Table Considerations
NCAL Linkage Editor Option
ENTRY cards
Using OS PL/I Math Routines
Subsystem Considerations
CICS Considerations
Updating CICS System Definition (CSD) File
Error Handling
Restrictions on User-Written Condition Handlers under CICS
Macro-Level Interface
FETCHing a PL/I MAIN Procedure
STACK Run-Time Option
Run-Time Output
Abend Codes Used by PL/I under CICS
IMS Considerations
Interfaces to IMS
SYSTEM(IMS) Compile-Time Option
PLICALLA Support in IMS
PSB Language Options Supported
Storage Usage Considerations
Coordinated Condition Handling under IMS
Performance Enhancement with Library Retention(LRR)
DB2 Considerations
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
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
Subsystem and other language considerations
Assembler considerations for PL/I applications
Considerations for assembler programs mimicking PL/I main procedures
Calling PL/I from assembler and Language Environment conforming assembler
Condition handling and assembler programs
Considerations for using assembler user exits
Specific considerations
CICS considerations for PL/I applications
General CICS considerations
Updating CICS System Definition (CSD) file
Macro-level interface
Compiler options for programs that run under CICS
Linking CICS applications and run-time considerations
Error-handling
FETCHing a PL/I MAIN procedure
Run-time output
Abend codes used by PL/I under CICS
Migrating to the integrated CICS preprocessor
IMS considerations for PL/I applications
Interfaces to IMS
SYSTEM(IMS) compile-time option
PLICALLA support in IMS
PSB language options supported
Storage usage considerations
Coordinated condition handling under IMS
Performance enhancement with Library Retention (LRR)
DB2 Considerations for PL/I applications
General DB2 considerations
Migrating to the integrated SQL preprocessor
Programming and compilation considerations
FOR BIT DATA assignment notes
Appendixes
Appendix A. Conversion and Migration Aids
OS PL/I Routine Replacement Tool
OS PL/I Version 1 Release 5.1 main load module ZAP
OS PL/I Shared library replacement tool
OS PL/I Object Module Relinking Tool - APAR PN69803
ILC Applications
PLISRTx Applications
EDGE Portfolio Analyzer
Vendor products
Appendix B. Compiler elements comparison
Appendix C. Compiler option comparison
Appendix D. Compiler limit comparison
Appendix E. Batch processing sample
Appendix F. Debugging tool comparison
Differences between debugging tools
Appendix G. Notices
Programming interface information
Trademarks
Index
Terms of use
|
Feedback
This information center is powered by Eclipse technology. (http://www.eclipse.org)