A few RPG constructs are not supported: each one depends on IBM i hardware or OS facilities with no equivalent on the JVM. rpgc rejects each of these at compile time with a clear diagnostic, rather than silently dropping it (which would change program behavior) or inventing a substitute (which would create behavior that never existed on IBM i).
- Punch-card and telecom hardware - Telecommunications Specifications (T-specs), Auto Report Specifications (U-specs), and I-spec stacker-select (column 42) all target physical devices with no JVM analog. (TRN1042, TRN1044, TRN1045)
- S/38 assembler subroutines -
EXIT,RLABL, andULABLcall into machine-interface assembler code, which has no bytecode equivalent. (TRN1046) - RPG II/III
DEBUGopcode - theDEBUGopcode targets the System/36 interactive debugger, which has no JVM analog; useDUMPinstead. (TRN1044) ENDSRwith a runtime-determined return point - a variable or named constant holding the cycle step cannot be resolved at compile time. Literal cycle steps (*DETC,*DETL,*GETIN,*TOTC,*TOTL,*OFL) and*CANCLare supported. (TRN1019)- Implicit graphic (DBCS) conversion - graphic data has no assumed CCSID, so there is no implicit conversion to or from character/UCS-2 data to fall back on. (TRN1534)
- Non-standard character CCSIDs - the supported set is the SBCS EBCDIC pages 37, 273, 277, 278, 280, 284, 285, 297, 500, 871 and 1047 plus the Euro variants 1140 - 1147, the SBCS ASCII pages 819 and 850, and 1208 (
*UTF8); others are rejected rather than mis-collated. (TRN3022)