Skip to content

ironwork 0.2.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 05:24
· 434 commits to main since this release

ironwork for COBOL 0.2.0. Builds for Linux (static), macOS and Windows, and the npm package @portll/ironwork. The ironwork-tls archives are the same builds with TLS for --sql-db (rustls, sslmode=verify-full). The Python package is on PyPI as ironwork, and the crates are on crates.io. Each file carries SLSA build provenance: gh attestation verify -R Portll/ironwork.

The features the roadmap gave 0.2.0 already ran in 0.1.2: EXEC SQL at run time, SORT and MERGE, Report Writer, object-oriented COBOL, compare and sealed evidence, --serve with a CSD region, ironwork ddl, IBM's reserved words, diagnostics with IBM's return codes, ALTER, ENTRY and GO TO DEPENDING ON, DECLARATIVES, LINAGE, and EXEC DLI refused by name.

What 0.2.0 adds over 0.1.2:

  • Compiler options from a CBL or PROCESS card: APOST and QUOTE, CURRENCY, NSYMBOL, DISPSIGN, INTDATE (LILIAN included), QUALIFY(EXTEND), INITIAL, VLR, ZWB, INVDATA and ZONEDATA are honoured, and VSAMOPENFS is read. NSYMBOL(DBCS) refuses what it would make DBCS, since ironwork holds no DBCS data.
  • Load modules: ironwork compile writes a source's programs as a load module, and ironwork dump prints one, a fact per line. The ironwork-compile crate is new.
  • Language: every Enterprise COBOL 6.4 intrinsic function; JSON GENERATE and PARSE; XML GENERATE, and XML PARSE reporting z/OS XML System Services' events; CURRENCY SIGN with PICTURE SYMBOL; BLANK WHEN ZERO; MOVE, ADD and SUBTRACT CORRESPONDING; CLOSE REEL, UNIT, NO REWIND and LOCK; EXEC DLI read and checked with the DL/I interface block.
  • Run-time behaviour IBM documents: a variable-length READ gives status 04 where Table 52 does, and DISPLAY of a positive signed binary or packed item no longer overpunches.
  • Jobs: ironwork job runs SORT, MERGE and COPY steps, writes DISP=MOD data sets after what they hold, reads generation data groups and backward references, and with --evidence records each step in a hash-chained journal.
  • Evidence for cobolwork: --trace-marker records whether an input reached each sink, and run --coverage with compare names the changed paragraphs no run reached.
  • cics --screens runs a pseudo-conversation on one scripted terminal.

Summary

IBM’s compiler options from the card, load modules, and job steps that sort.

  • Options: APOST and QUOTE, CURRENCY, NSYMBOL, DISPSIGN, INTDATE, QUALIFY(EXTEND), INITIAL, VLR, ZWB, INVDATA and ZONEDATA are honoured from a CBL or PROCESS card.
  • Compiles: ironwork compile writes a load module and ironwork dump prints one; every intrinsic function of Enterprise COBOL 6.4; JSON and XML GENERATE and PARSE; CORRESPONDING; EXEC DLI checked with the DL/I interface block.
  • Runs: a variable-length READ gives status 04 where IBM’s table does, and DISPLAY of a positive signed binary or packed item no longer overpunches.
  • Jobs: SORT, MERGE and COPY steps, DISP=MOD, generation data groups, and a hash-chained step journal.
  • Evidence: --trace-marker shows whether an input reached each sink, and run --coverage with compare names the changed paragraphs no run reached.