Accepts the four 0.4.0 Amendments - #165
Merged
Merged
Conversation
Flips the Status line of four Amendments from proposed to accepted in place: on ADR-0004 the statement grammar, the exported decompile result type, and execute and executeValue compiling a source string as a statement program; on ADR-0002 a duration component past the safe integer range. Each shipped in 0.4.0, and every claim was verified at the v0.4.0 commit, fe42eea, with every reference claim run at predicator-ex v9.4.2. Adds one dated foot Note per record naming each flip, the version and the commit verified at. No other line is removed. Refs: pts-e1zw
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.
Flips four Amendments from proposed to accepted under the flip standard of the campaign consent the operator adopted, 2026-10-01: each shipped in
@riddler/predicator0.4.0 (npmdist-tags.latest0.4.0, tagv0.4.0atfe42eea), and every claim was verified against main atfe42eea. The flips are the conductor's under that consent's flip standard. Each Status line moves in place to the file's existing accepted-line shape,accepted (2026-10-01; proposed 2026-10-01), and each record gains one dated foot Note naming the flips, the version and the commit verified at.git diff origin/main...HEAD -- docs/adr/removes only the four Status lines. Docs-only underdocs/adr/, so there is no gate to run (CLAUDE.md, thegit commitrow); no changelog fragment, perchangelog.d/README.md. No claim failed, so no record is held at proposed.Bead: pts-e1zw.
ADR-0004: the statement grammar compiles, through three program entry points (request 157,
ea1d274)Version 0.4.0, verified at
fe42eea. Checked:compileProgram,compileProgramWithPositionsandcompileProgramWithSpansinsrc/compile.ts, exported fromsrc/index.ts, their located result types not exported; the three new members ofParseReasoninsrc/errors.ts;parseProgramanddescendinsrc/parser.ts;visitStatement,visitAssignmentanddeeperinsrc/emitter.ts. The grammar rules (empty source, lone and doubled separator refused, one trailing separator and a statement after a closing brace accepted, the location shapes, a parenthesized location, an unassignable left side refused at the=), each emission shape and the span table were run at the tag and at the reference export of predicator-exv9.4.2, and agreed.conformance/transcript/compile.jsonis unchanged since6149371; the five quoted messages are their rows'. Over everyprogramrow, the reference'scompile_program_with_positions/1andcompileProgramWithPositionsagreed on every point and segment table. The tier-6, tier-8 and tier-9 corpus cases still carry a null source andconformance/registry.jsonis unchanged. Over threeelse ifchains run at the tag, the longest that compiled had 255, 254 and 253 links, and the reference compiled a chain of four hundredelse iflinks. The tests named intest/reference-compile.test.tsandtest/compile-program.test.tspass at the tag.Superseded sentences: the paragraph opening "One sentence nearby is NOT superseded" and the first paragraph of "What this does not decide" no longer hold of
executeandexecuteValue; the later amendment on those two entry points (request 161, below) names both, so this record flips under the superseded-sentence exception and the foot Note cites it.ADR-0004:
decompile's result type is exported, asDecompileResult(request 159,929bcb7)Version 0.4.0, verified at
fe42eea. Checked:DecompileResultinsrc/decompile.tswith the two arms the Typespecs quote, re-exported fromsrc/index.ts, listed intest/export-surface.jsonbesideParseResultandCompileResult;decompiledeclared to answer it; the superseded sentence ends the "What changed" section of the amendment ondecompilepast the source depth bound; the two sentences named as not superseded still hold.ADR-0004:
executeandexecuteValuecompile a source string as a statement program (request 161,8e20280)Version 0.4.0, verified at
fe42eea. Checked:programOfinsrc/index.tstakes the compiler as an argument,evaluatepassescompile,executeandexecuteValuepasscompileProgram; at the reference,evaluate/3parses withParser.parseandexecute_value/3withParser.parse_program, running throughexecute_value_ast. Every row of the table was run: the after column at the tag and throughPredicator.execute_value/3in the export, the before column at5afceb8, the commit the change was cut from. The four program refusal sources answer each row's message, position and span at both, and the reference answers its input context beside each refusal. The tests are under "a source string at execute and executeValue is a statement program" intest/index.test.ts;EvaluationErrorinsrc/errors.tscarries an instruction index;conformance/is unchanged by the change.ADR-0002: a duration component past the safe integer range is refused when a text is read (request 156,
f12d11f)Version 0.4.0, verified at
fe42eea. Checked:readDurationinsrc/cast.tsjudges each summed component against the safe range (a later change,02d4a21, moved the fraction expansion to a shared helper and left the check in place);toDurationinsrc/cast.tsanswers undefined;parseDurationinsrc/index.tsanswersinvalid_duration_format;encodeIntegerinsrc/tagged.tsrefuses such a component;durationinsrc/evaluator.tsrefuses such a magnitude. Every row of the table was run at the tag (cast andparseDuration) and at the reference (cast andPredicator.Duration.parse/1) and answered as stated; a count with leading zeros reads as its value. The named tests are intest/cast.test.tsandtest/parse-duration.test.ts, and no reference transcript row carries a table text. The cast answers undefined under the accepted cast exemption, which the amendment cites.Direction check
Every claim of the four entries was verified on main at
fe42eea, cited by anchor; the two foot Notes add lines only; the diff against the merge base removes the four Status lines and nothing else.