Skip to content

cobolwork 0.3.0

Choose a tag to compare

@Portll Portll released this 30 Sep 15:56
· 159 commits to main since this release

cobolwork 0.3.0: precision, and where data goes.

Install: npm install -g @portll/cobolwork or pip install cobolwork; either gives the command cobolwork. The PyPI package runs the same files with the Node.js on your PATH, which must now be Node 22 or later. The npm package is attached here as cobolwork-0.3.0.tgz to pin, and as cobolwork.tgz.

What 0.3.0 adds over 0.2.x, all measured on 500 random and 500 recently active repositories:

  • Subscript and length findings without the false positives where a loop exit, a constant or a check keeps the index inside its table or field. A backward scan under a not-blank test stops at 1 or more. A reference modification is judged on its last byte. A length that varies beside a varying start is judged together with the start, so X(J:K) with J and K each checked on its own is reported. A bound through another field's interval counts, and so does a counter that a performed paragraph raises only under a test that leaves room.
  • The HIGH rules that block most builds, audited for precision. A COMMAREA length check counts only where EIBCALEN bounds the read. An IF that ends the run before a dynamic CALL stays an allow-list across a loop.
  • Where data goes: a TSO batch step's ALLOCATE, CALL and DSN RUN, FTP GET and SITE, and IDCAMS PRINT and ALTER NEWNAME.
  • ironwork diagnostics read by their codes, IBM's reserved words by column, SLSA build provenance on each release's files, and the GitHub Action proven on GitHub-hosted runners.
  • Since 0.2.150: a directory a drive fails to list is retried, then counted as unread rather than read as absent.

Index findings still open are listed in BACKLOG.md under "Index findings the check model still cannot settle".

The package's lib/revision.json names the commit it was built from, b242a38.

Summary

Fewer false positives on reference modification and loop counters.

  • A reference modification with a varying start and length is judged on the last byte the two name together, so X(J:K) with each part checked on its own is reported, and a length computed as the end less its start is cleared.
  • A counter a performed paragraph raises only under a test that leaves room stays in its table.
  • A directory a drive fails to list is retried, then counted unread.

Limit: Node 22 is now the floor.