Skip to content

v0.9.50

Choose a tag to compare

@github-actions github-actions released this 21 Oct 19:27
· 38 commits to main since this release
Two more behaviours brought in line with IBM i, each found or confirmed
by running programs on a real IBM i (PUB400).

- READ of a program-described file sets on the record identifying
  indicator of the record type it identified and turns no other one
  off; a READ at end of file changes none. rpgc used to turn off every
  other record type's indicator first. This was the cause of the last
  two unexplained differences on IBM i.
- MOVE or MOVEL of a character whose EBCDIC digit portion is above 9
  ('.', '+', '*', '<' and others) into a number is a decimal data error
  (status 907) that ends the program unless MONITOR handles it, and the
  result field is unchanged. rpgc used to set %STATUS, move zeros, and
  carry on.

Upgrading: a program that reads several record types with READ and
relied on rpgc turning the other indicators off must now set them off
itself before each READ, as on IBM i:

     C                   EVAL      *IN01 = *OFF
     C                   EVAL      *IN02 = *OFF
     C                   READ      CUSTFILE

A program that tested %STATUS after such a MOVE now ends at the MOVE;
put it in a MONITOR group.

The IBM i conformance runs log in to PUB400 once per run, retrying when
the machine closes a new connection, and carry on when another job's
output queue survives the library clear.

452 OpenRPG tests, 45 dspfc tests and 31 interactive display-file tests
pass.