Skip to content

det: JSON PARSE stores JSON-STATUS after a successful parse (Part of #7524, #7709) - #7946

Open
squid-protocol wants to merge 1 commit into
mainfrom
churn/7709-20261106T2045Z
Open

squid-protocol wants to merge 1 commit into
mainfrom
churn/7709-20261106T2045Z

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Part of #7524, #7709. Checklist: partial [c:9bd1fd57] -- elementary source/receiver, CONVERTING, COMP-1/2 floats, PARSE into tables, JSON-STATUS after an exception (frontier: IBM's text is silent or the oracle cannot back them); NAME OMITTED is #7938.

What

A JSON PARSE program that names JSON-STATUS was refused (stat = False in gen.py). It now gets a hidden register of IBM's declared shape (PICTURE S9(9) USAGE BINARY VALUE 0) and, after a parse with no exception, stores the runtime's Table 108 bits (1: an item had no pair, 2: a pair matched no item; 0 when neither). The runtime already computed them. Oracle-unbacked, as X77 states (no L2+ claim).

Class / Sibling gaps

Class: special registers a JSON statement sets and a program may read (JSON-CODE, JSON-STATUS), translated from IBM's text. Members: JSON-CODE after GENERATE (#7897, #7930, handled), after PARSE (#7928, handled), JSON-STATUS after a PARSE success (this PR, same mechanism as JSON-CODE's hidden item: tests cover status alone, with ON/NOT ON EXCEPTION, with WITH DETAIL, with JSON-CODE, a program-declared item kept, no JSON PARSE / not named gives no register). Siblings not done: JSON-STATUS after an exception (IBM: "conditions prior to the exception"; not enough to model, stays a runtime Hole); JSON-STATUS after JSON GENERATE (IBM does not say it sets it, name stays refused); status bits 4-512 (duplicate names, tables, null: constructs the model refuses); elementary source/receiver and CONVERTING (IBM pages silent / outside the item); COMP-1/2 floats; PARSE tables. None is used by a burned program.

Facts checked

  • IBM Enterprise COBOL 6.3, JSON-STATUS page: "01 JSON-STATUS PICTURE S9(9) USAGE BINARY VALUE 0"; Table 1 reason codes 1..512 as above; the reset rule at the start of a PARSE is not stated (assumed reset per statement, recorded in X77).
  • Burned estates / fixtures only; no census source read.
  • Local: pr_gates --fast 9/9, --ratchets 9 pass 0 skipped, tree-wide guard tests + test_det_json_parse.py 301 passed, time ratchet clean. Golden masters untouched (det-port only).

Lessons for agents

None.

Cross-repo: none.

🤖 Generated with Claude Code

…parse (Part of #7524, #7709)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@squid-protocol squid-protocol added the shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md label Nov 6, 2026
@squid-shepherd

squid-shepherd Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@squid-shepherd
squid-shepherd Bot marked this pull request as ready for review November 6, 2026 20:58
@squid-shepherd

squid-shepherd Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@squid-shepherd
squid-shepherd Bot enabled auto-merge (squash) November 6, 2026 20:58
@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant