Expand description
The runtime a program compiled by ironwork links, and none of the compiler: it may depend on
numeric and zarch only. It is AGPL-3.0-or-later with the ironwork runtime exception
(RUNTIME-EXCEPTION.md), so a compiled program that links it is not bound by the AGPL.
module reads and writes the load modules such a program is shipped as.
Modules§
- abend
- The code an abend reports, as z/OS, CICS or ironwork names it, and the signals the interpreter passes up as errors to leave a statement early. With them, the I/O statuses FILE STATUS receives, and how a run ends.
- bms
- The mapset model BMS map source describes: each map’s fields with their positions, attributes and initial data, as SEND MAP and RECEIVE MAP use it.
- calendar
- The proleptic Gregorian calendar: day counts, civil fields, Lilian days and the epoch offsets.
- cics
- The CICS region a harness run stands in for: one task, its files, its temporary-storage and transient-data queues, and the time services. The interpreter runs the commands; this holds what they act on.
- cics_
tables - IBM’s CICS tables, vendored from cobolwork’s provenance by tools/sync-cics-tables.sh: each command’s options with the direction their data moves, the numbers DFHRESP names, and the numbers DFHVALUE names.
- codec
- A numeric item’s storage read as generated code reads it. The interpreter and the SQL runtime share it, so a host variable sends exactly the value a COMPUTE would read.
- digest
- SHA-256 (FIPS 180-4) that hashes a stream in blocks, so a data set is digested without being held in memory, and HMAC-SHA-256 (RFC 2104). Written here because the runtime takes no dependencies.
- edit
- Editing: a numeric value laid into a numeric-edited PICTURE, alphanumeric data into an alphanumeric-edited one, and de-editing back to a number.
- evidence
- Run journals in cobolwork’s evidence format (cobolwork
docs/spec/evidence.md§4-6), so one verifier reads both tools: each record is canonical JSON hashed as SHA-256(“cobolwork-evidence/v1\n” || record without “hash”), chained byprevandseq, and each closed run adds its tip toledger.jsonl. Nothing written holds source text or a secret. - files
- Files. ASSIGN names a DD, and only the operator maps a DD to a host file, as JCL does, so a
program reaches no file it was not given. A binary DD holds z/OS records byte for byte:
fixed-length records back to back, or variable-length records each behind a 4-byte RDW. A text
DD holds UTF-8 lines, converted through the program’s code page, and placed as a printer would
place them (
Open::print). Sequential files stream; indexed and relative files are held in memory (seeKeyed). - linage
- LINAGE’s logical page at run time: where the printer is in the page body, and how far each
WRITE moves the paper past the footing area and the margins
(
numeric::assumptions::LINAGE_PAGE_MOVEMENT). - lir
- The LIR of docs/lir.md: a program lowered once, which the VM runs and a load module holds.
- module
- The load module (
.iwm) of docs/load-module.md: its container, encoding rules and codec. - picture
- The symbols of an edited PICTURE.
- reserved_
words - IBM’s reserved words, vendored from cobolwork’s provenance by tools/sync-reserved-words.sh: each word of Enterprise COBOL 6.4’s Reserved words appendix with the column IBM marks it in.
- sql
- The SQL runtime: values at the database boundary, and the host variables they come from and go to. It reaches storage only as a byte range and a host type, so any executor can call it.
- storage
- The storage vocabulary a program’s data shares: how an item is held, where it sits, and the values that move between items.
- strings
- The byte-level work of STRING, UNSTRING and INSPECT, apart from storage and operands.
- terminal
- A 3270 display: its buffer of fields, the outbound data stream that writes it, the inbound Read Modified stream that reports what the operator changed, and a text rendering. The byte values are those of the 3270 Data Stream Programmer’s Reference (GA23-0059).
- tn3270
- A
Terminalover a TCP connection speaking TN3270 (RFC 1576): telnet negotiation of the terminal type, EOR and BINARY, then 3270 data streams as records ended by IAC EOR. - vocab
- The vocabulary the front end, the interpreter and a compiled program share: source positions and the small enums of the data division, INSPECT and OPEN.
Macros§
- codec_
enum EncodeandDecodefrom the variants and their tags:Unit = 0,Named { a } = 1,Tuple(a) = 2.- codec_
struct EncodeandDecodefrom one field list;checknames afn(&T) -> Result<(), String>.