Repository navigation
det: INTDATE(LILIAN) modelled in the det port (Part of #4706) - #5413
Merged
Merged
Conversation
…ns count from 1582-10-15 (Part of #4706) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Owner
Author
|
No description provided. |
squid-protocol
marked this pull request as ready for review
October 18, 2026 05:45
Owner
Author
|
No description provided. |
squid-protocol
enabled auto-merge (squash)
October 18, 2026 05:47
Contributor
Owner
Author
|
No description provided. |
2 of 6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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".
Funcs.integerOfDateLilian/dateOfIntegerLilian(day 1 = 15 October 1582; the same date is 6653 higher than ANSI), under the existing ruleRT-FUNC-DATE-INTEGER(catalogue entry extended).program.intdate_lilianreads the option through the one resolver (CBL/PROCESS cards over the PARM over the default ANSI);with_intdate_lilianrewrites the two calls at translation. No run-time switch, so a CALL/LINK into another program is unaffected.COBC_OPTIONSstill 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.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_corporamentions INTDATE (grep -i).det_port.py check: 0/122 unchanged, every port differs only incobolrt/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 --fast6/6;--ratchets8/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 overlayFuncs.javacopies (no port uses the new methods).Lessons for agents
~/.cache/gitgalaxy/ruff-0.16.10/bin/ruff(not.../ruff).🤖 Generated with Claude Code