Skip to content

Latest commit

 

History

History
73 lines (61 loc) · 5.16 KB

ibmi-conformance-differences.md

File metadata and controls

73 lines (61 loc) · 5.16 KB

rpgc vs IBM ILE RPG — where the two compilers disagree

Generated by scripts/conformance-diff.py from ibmi-conformance-transcript.txt and ibmi-conformance-baseline.json.

rpgc accepts rpgc rejects
IBM accepts 271 4
IBM rejects 43 131

Agreement: 402 of 449 (90%). A shared rejection counts as agreement: it is a negative test working as designed.

Of the 47 disagreements, 47 are known and listed in tests/ibmi-expected.txt (see the end). None is unexplained.

IBM rejects, rpgc accepts — 0 files

None.

IBM accepts, rpgc rejects — 0 files

None.

Known disagreements — 47 files

Listed in tests/ibmi-expected.txt: OpenRPG extensions IBM's compiler rejects, and valid RPG that rpgc refuses on purpose. Not work items.

  • test105_rla_write_upd_del.rpgle (IBM rejects): database record formats: rpgc uses the file name (RNF5063)
  • test146_fixed_cspec_write_upd_del.rpgle (IBM rejects): database record formats: rpgc uses the file name (RNF5063)
  • test159_fixed_ispec_err_zone.rpgle (rpgc rejects): valid RPG; rpgc does not support I-spec record-identification zone codes
  • test195_fixed_cspec_err_move_declit.rpgle (rpgc rejects): valid RPG; rpgc refuses MOVE of a decimal literal
  • test205_fixed_cspec_err_entry_f2.rpgle (rpgc rejects): valid RPG; rpgc does not support Factor 2 on an *ENTRY PARM
  • test213_fixed_cspec_err_move_jobrun.rpgle (rpgc rejects): valid RPG; rpgc has no job attributes for *JOBRUN
  • test219_prog_order_release.sqlrpgle (IBM rejects): database record formats: rpgc uses the file name (RNF5063)
  • test238_rla_field_fit.rpgle (IBM rejects): database record formats: rpgc uses the file name (RNF5063)
  • test332_extfile_usropn.rpgle (IBM rejects): OpenRPG extension: EXTFILE names a host file path; IBM i wants LIB/FILE, 10 characters each (RNF0652)
  • test334_free_dclf_disk_len.rpgle (IBM rejects): OpenRPG extension: EXTFILE names a host file path; IBM i wants LIB/FILE, 10 characters each (RNF0652)
  • test350_block_comments.rpgle (IBM rejects): OpenRPG extension: block comments; IBM i has only //
  • test351_fixed_block_comments.rpgle (IBM rejects): OpenRPG extension: block comments; IBM i has only //
  • test354_dcl_s_names.rpgle (IBM rejects): OpenRPG extension: several names in one DCL-S; IBM i takes one
  • test355_fstring.rpgle (IBM rejects): OpenRPG extension: interpolated strings
  • test358_nested_proc.rpgle (IBM rejects): OpenRPG extension: procedures inside procedures
  • test360_not_in.rpgle (IBM rejects): OpenRPG extension: NOT IN
  • test362_regex.rpgle (IBM rejects): OpenRPG extension: regular-expression BIFs
  • test364_subst_nolenchk.rpgle (IBM rejects): OpenRPG extension: OPTION(*NOLENCHK)
  • test365_fixed_subst_nolenchk.rpgle (IBM rejects): OpenRPG extension: OPTION(*NOLENCHK)
  • test366_char_nozero.rpgle (IBM rejects): OpenRPG extension: %CHAR(n : *NOZEROSUPPRESS)
  • test369_if_directive_and_or.rpgle (IBM rejects): OpenRPG extension: AND/OR/NOT in /IF
  • test370_fixed_if_and_or.rpgle (IBM rejects): OpenRPG extension: AND/OR/NOT in /IF
  • test372_true_false.rpgle (IBM rejects): OpenRPG extension: *TRUE and *FALSE
  • test373_fixed_true_false.rpgle (IBM rejects): OpenRPG extension: *TRUE and *FALSE
  • test386_if_bif.rpgle (IBM rejects): OpenRPG extension: %IF
  • test390_keyword_args.rpgle (IBM rejects): OpenRPG extension: keyword arguments
  • test397_scanrpl_first_last.rpgle (IBM rejects): OpenRPG extension: %SCANRPL *FIRST and *LAST
  • test400_options_upper_lower.rpgle (IBM rejects): OpenRPG extension: OPTIONS(*UPPER) and OPTIONS(*LOWER)
  • test402_dynamic_char.rpgle (IBM rejects): OpenRPG extension: CHAR with no length
  • test405_inz_list.rpgle (IBM rejects): OpenRPG extension: INZ(%LIST) on an array
  • test409_xfoot_ds_column.rpgle (IBM rejects): OpenRPG extension: %XFOOT, %MAXARR and IN over ds(*).subfield
  • test411_compcorr.rpgle (IBM rejects): OpenRPG extension: %COMPCORR
  • test415_deprecated.rpgle (IBM rejects): OpenRPG extension: DEPRECATED
  • test416_lookup_kds.rpgle (IBM rejects): OpenRPG extension: %LOOKUP(%KDS(key) : ds(*))
  • test418_repeat.rpgle (IBM rejects): OpenRPG extension: %REPEAT
  • test420_param_default.rpgle (IBM rejects): OpenRPG extension: DEFAULT on a parameter
  • test422_progname.rpgle (IBM rejects): OpenRPG extension: %PROGNAME
  • test424_binary_literal.rpgle (IBM rejects): OpenRPG extension: binary literals
  • test427_foreach_index.rpgle (IBM rejects): OpenRPG extension: FOR-EACH INDEX
  • test429_compare_proc.rpgle (IBM rejects): OpenRPG extension: a comparison procedure for SORTA and %LOOKUP
  • test432_when_is_not.rpgle (IBM rejects): OpenRPG extension: WHEN-IS-NOT and WHEN-NOT-IN
  • test434_empty.rpgle (IBM rejects): OpenRPG extension: *EMPTY
  • test435_hex_bifs.rpgle (IBM rejects): OpenRPG extension: %TOHEX, %HEX and %FROMHEX
  • test436_message_directive.rpgle (IBM rejects): OpenRPG extension: /MESSAGE
  • test438_fixed_message_directive.rpgle (IBM rejects): OpenRPG extension: /MESSAGE
  • test61_no_free.rpgle (IBM rejects): OpenRPG extension: free-form without **FREE; IBM i requires the directive
  • test85_getenv.rpgle (IBM rejects): OpenRPG extension: %GETENV has no IBM i equivalent (IBM: RNF0604, not a built-in)