Survey the triples a record took out of the target register, beside the ones in it - #516
Merged
Merged
Conversation
…he ones in it 0512 cut the target register to the triples this runner can build the graph 0243's entry brings, and the cross-toolchain leg reads its subject through that register's own reader. So the leg was left surveying a set the runner serves by construction: one served of one, a control rather than a survey, and no route by which the day the image gains an NDK or a Windows SDK becomes a line anybody sees. That day is 0512's reversal condition for the triple arriving. A probe block now carries an optional fourth field, `left:`, holding the four-digit number of the record that took its triple out of the target register and nothing else on the line. The survey is the two populations together, the run says which of the two each triple is in, and a departed triple that compiles gets its own line saying so and saying what it is not - a probe proves one translation unit, and a triple returns by a build of the real graph on the runner and a record that puts the line back. The six blocks 0512 removed are back under its number, each with the tool its build stopped at. Three ways the two registers can disagree are judged by one function so that each has a fixture rather than only a message: a triple in the target register no block covers, a block outside it declaring no record that took the triple out, and a block declaring a departure for a triple that register still carries. A fourth refusal opens the record the field names and refuses a number `docs/decisions/` does not hold. Each was proven by breaking the register and watching the run go red, and the tree was restored afterwards. 0512 carries a dated note under 0313 where it said nothing takes that reading. The sentence stands for the state between the cut and this change, which is what 0313 is for, and nothing the record decided moves. Closes #514 Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com>
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.
What this changes
A probe block in
.github/cross-toolchain/probesmay carry a fourth field,left:, holding the four-digit number of the record that took its triple out ofthe target register. The survey is then the triples that register names plus the
triples a record took out of it, the run says which of the two populations each
triple is in, and the six blocks 0512 removed are back under its number with the
tool each build stopped at. 0512 carries a dated note under 0313 where it said
nothing takes that reading.
The means
Shell and awk in the file that already holds this leg, and one optional field in
the register beside it. The subject is a set two registers name, the readers are
already awk in this script for the reason
.github/targets/targets.shgivesabout mawk and gawk, and nothing here needs a language, a runtime or a
dependency the tree does not carry. A separate register for the departed triples
was the other shape and is refused below.
Why the guard is one function rather than two loops
The two agreement rules were inline loops inside
check, so neither had afixture and both were carried by their message alone. They are one function now,
agreement_failures, taking the three sets and returning one line perdisagreement, so each of the three ways the registers can disagree has a fixture
that runs it. The selftest's closing sentence says so rather than claiming more
than it proves.
Each refusal, proven by breaking the register
Run at this head, with the tree restored after each one. The output is the first
error line of each run.
Run at this head
The leg's own run on this machine reports the Windows triple served, because
this is a Windows machine carrying
cl. The verdict that matters is therunner's, and the check run on this pull request is where it is read.
The register rather than a second file
A second register naming the departed triples was the other shape. It costs a
third file, a second loader, a second count guard against a reader that stopped
matching, and a rule refusing a triple named in both - and every one of those is
a thing this script already has for the one register it reads. The field is one
optional value on a block that has to exist anyway, because a departed triple
with no probe is not surveyable at all.
What this does not do
It does not decide that any triple comes back. A departed triple reported served
has met one half of 0512's reversal condition for it, on one translation unit,
and the run says so on its own line. The other half is a build of the real graph
on the runner, which is the targets leg, and the return itself is a record.
It does not refuse anything about what the survey finds, which is the property
this leg has had since it landed and which 0291's own argument rests on.
It does not reach a triple nobody put in either register. The run says so in its
own closing disclosure, beside the four it already carried.
The second reader
There is none tonight. What stands in place of one is that each of the four
refusals was executed against a broken register on this machine rather than
argued from the source, and that the three agreement rules are judged by one
function with a fixture apiece. That is weaker than a reading by a second person
and is not a substitute for one.
Closes #514