The user-facing finite claim is summarized in
doc/en_US/ball_float/conformance.md;
this page owns the pinned corpus, phase planner, and operational workflow.
smoke.itl is the committed minimal suite. The complete corpus is fetched from
nehmeier/ITF1788 at the revision and SHA-256 recorded in corpora.json.
The upstream corpus is Apache-2.0 licensed and remains ignored after download.
just conformance smoke interval
just conformance fetch interval itf1788
just conformance plan interval --phase sets --phase relations
just conformance run interval --phase sets --phase relations --strict-supported
just gate interval 8smoke never downloads data. fetch verifies the manifest before installing the
ignored corpus. plan prints the selected phase/task partition. run executes
the selected phases. --strict-supported makes unsupported or diagnostic cases
fail the command rather than merely reporting them.
The staged runner treats supported operations strictly and reports all other
operations as unsupported. Phases that share an ITL file select disjoint
operations, so an unfiltered run evaluates every ITL instruction exactly once;
the runner rejects any overlapping configuration. The strict baseline also includes
arithmetic, numeric observations,
cancellation, elementary-core, exponentials/logarithms, FMA, integer powers,
and extrema. General power, trigonometric functions, and both pinned upstream
atan2 sources are included as strict
phases; reverse operations remain unsupported.
just gate interval is the strict baseline (and accepts an optional worker count): 20 set cases, 567 relation cases,
124 numeric observation cases, 242 cancellation cases, 539 add/sub/mul/div
cases, 107 elementary-core cases, 131 exponential/logarithmic cases, 1,428
general-power cases, 176 trigonometric cases, 567 FMA cases, and 174
integer-power cases.
The hyperbolic and inverse-trigonometric phases add 107 and 61 cases,
respectively. The atan2 phase adds 375 cases and the extrema phase adds 38
min/max cases, for an official aggregate of 4,656 cases. Every selected case must be executable;
unsupported and diagnostic classifications fail the gate.
The phase planner is part of the contract. A phase declares its operation set, input files, and strictness; the runner rejects overlapping operation sets and does not silently execute a case twice. This keeps per-phase counts additive and makes sharded summaries comparable with an unfiltered run.
The general-power phase contains 1,428 pow cases and passes all cases on
the native strict run. The trigonometric phase contains 176 sin, cos, and
tan cases; the disjoint atan2 phase contains 375 cases from the same pinned
archive. Both pass the strict baseline. Reverse operations remain
unsupported.
An executable failure means the parsed operation was in the declared support set but the enclosure, relation, or status did not match the expected row. An unsupported result means the grammar was understood but the implementation has not claimed that operation. A diagnostic result means the row itself could not be treated as a valid scalar ITL case. These categories must not be merged when reporting a conformance claim.
The ITL backend compares interval behavior through set relations and certified containment, not scalar string equality. A wider interval can be valid when the operation contract permits a conservative fallback; strict phase support still requires every selected row to execute.
The manifest records the upstream revision and checksum. The published strict claim covers only the listed phases and endpoint precision used by the runner. It does not claim reverse interval operations, every IEEE 1788 decoration rule, arbitrary endpoint formats, or unpinned upstream revisions.
For a failure, record the ITL file, case ID, phase, operation, endpoint values, expected relation, actual relation, target, and manifest revision before changing the support table or fixture.