You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
the judge is a bracketed token, and the brackets are part of the match (#446)
`compat.py` recorded a member as correctly "refused" when its output matched
the bare word `interface-not-provided`, under a comment claiming the judge was
"the engine's own refusal code and NOT a string in the diagnostic". It was a
string in the diagnostic. What the comment was reaching for is true but was
not what the code did: mcpp prints `[interface-not-provided]` in brackets, the
way it prints `E0006`, and the token is an entry in docs/50's table -- a
machine interface this index may read rather than a sentence that may be
rewritten. The brackets are what make it one.
Read as a bare word it is a hyphenated phrase an ordinary compile error can
contain: an upstream message quoting a manifest key, or a member's own
diagnostic naming the condition. A member that merely failed would then be
published as correctly refused, which moves the figure in the direction that
flatters the engine.
`classify_failure` is split out of `measure` so the rule has a criterion that
runs without a toolchain, a network or a member, and `compat.py selftest`
states five: a bracketed token is a refusal, the same token as prose is a
failure, an ordinary compile error is a failure, a member that ran and failed
its tests still built, and the same output without a runner is not evidence it
built. Restoring the previous matcher fails the second and only the second.
The step runs in `lint` rather than in openkal-compat.yml: its cases are about
the rule, not about any member, and the measurement it guards takes four hours
to reach.
0 commit comments