Skip to content

det: INTDATE(LILIAN) modelled in the det port (Part of #4706) - #5413

Merged
squid-protocol merged 1 commit into
mainfrom
churn/4706-20261018T0532Z
Oct 18, 2026
Merged

squid-protocol merged 1 commit into
mainfrom
churn/4706-20261018T0532Z

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Part of #4706.

What

Next open row of the option table with an IBM-pinned semantic: INTDATE(LILIAN) goes from "refused by name" to "modelled in the det port; the oracle still refuses it".

  • Runtime: Funcs.integerOfDateLilian / dateOfIntegerLilian (day 1 = 15 October 1582; the same date is 6653 higher than ANSI), under the existing rule RT-FUNC-DATE-INTEGER (catalogue entry extended).
  • Translator: program.intdate_lilian reads the option through the one resolver (CBL/PROCESS cards over the PARM over the default ANSI); with_intdate_lilian rewrites the two calls at translation. No run-time switch, so a CALL/LINK into another program is unaffected.
  • Oracle: unchanged. GnuCOBOL has no INTDATE, so COBC_OPTIONS still refuses LILIAN; a LILIAN program is not compared with cobc. Residual risk: the port is checked against IBM's documented day numbers, not against an executable reference.
  • Docs: C5 status/title, the INTDATE bullet and table row.
  • Tests: new tests/cobol_mainframe/test_intdate_lilian.py: documented anchors, resolver precedence (default, PARM, CBL, PROCESS, card over PARM), translator rewrite (both functions only, idempotent), JDK run under LILIAN and ANSI (untyped and typed) over the epochs, 1600/1700 century years, a leap day and today, with DATE-OF-INTEGER inverting each.

Class

Result-changing compile options still refused or declared in the #4706 table. This PR covers INTDATE(LILIAN) (+ INTEGER-OF-DATE and DATE-OF-INTEGER). INTEGER-OF-DAY / DAY-OF-INTEGER are not in the det translator at all, so there is nothing to swap.

Burned-estate reach

None: no corpus under .mainframe_corpora mentions INTDATE (grep -i). det_port.py check: 0/122 unchanged, every port differs only in cobolrt/Funcs.java (+17 lines, the shared runtime); no service changed, so no re-proof of the ports was run.

Sibling gaps (no burned program needs any)

ZONEDATA(NOPFD/MIG) and INVDATA (owner decision on sub-option semantics), NSYMBOL(DBCS), DISPSIGN(SEP), FLOAT(NATIVE): refused by name. SSRANGE/NUMCHECK and CODEPAGE other than 1140/37 (GenApp's 285): declared differences awaiting the owner decisions in the #4706 comment. ARITH(EXTEND) floats and intrinsic-mode + - * under EXTEND. TRUNC(OPT) and ARITH(EXTEND) are already done (#4746, #5340).

Gates

pr_gates --fast 6/6; --ratchets 8/8; test_intdate_lilian, test_regional_options, test_option_table, test_arith_extend, test_cobolrt_rules, test_source_reads, test_proof_reach: 171 passed, 1 skipped. Golden masters not touched (no parsing logic). Not run: Docker oracle comparison, estate re-proofs, the CICS crucible overlay Funcs.java copies (no port uses the new methods).

Lessons for agents

  • The CI ruff is at ~/.cache/gitgalaxy/ruff-0.16.10/bin/ruff (not .../ruff).

🤖 Generated with Claude Code

…ns count from 1582-10-15 (Part of #4706)

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 Oct 18, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol marked this pull request as ready for review October 18, 2026 05:45
@squid-protocol squid-protocol added shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md and removed shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md labels Oct 18, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol enabled auto-merge (squash) October 18, 2026 05:47
@github-actions

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol merged commit fc11bd8 into main Oct 18, 2026
85 checks passed
@squid-protocol
squid-protocol deleted the churn/4706-20261018T0532Z branch October 18, 2026 06:48
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