docs: record what #34 built, and a summed row whose assumption expired
The first entry of Open is resolved. It is the one that was closed by
building what it proposed, and it departed from the proposal in one way
worth keeping: the invalidation is per chunk, not per section. Rebuilding
a single section still means reading that section's block states, and the
reading is what a table costs, so a per-section bound would have bought a
fraction of a rebuild for the price of a second index.
The entry keeps its measurement. That table is still exactly what the
recalculating path pays, because compute() keeps nothing by contract and
was not touched. What is added is the count — a steady 3x3 tick built 50
table sets and now builds 1 — and the workflow run behind the timing,
with the note that its two halves ran on different CPU models and that
full() is the control which makes them readable at all.
Two published tables carried figures the change moved. Both now name the
commit they belong to rather than being overwritten: the numbers are
right for the run they describe, and the runs measured after the change
were taken on shared runners and replace no absolute figure here.
One of them is worth more than a correction. The "one tick pays for both
kinds" row is a sum, and the page had written down the assumption behind
it: that such a pass shares no work between the two kinds. #34 made that
false, because an opacity table is not a kind of light and the sky pass
now reuses what the block pass built. The row is an upper bound now, and
it could only be found to have expired because the assumption was stated
instead of left implicit.
Items 2 and 3 are renumbered to 1 and 2, and the two cross-references
into them are pulled along.
docs: record what #28 moved, and repeat the opacity measurement
Four pages carried 31.41 µs for the propagate stage as if it were current.
It is the after-value of one commit, 69381af, and #28 has since taken the
same stage under the same parameters to 27.3 µs — measured, but written
down nowhere. Each of the four now says which commit its figures belong to.
The opacity share in Project-Status was a single three-fork run. A second
one under the same configuration gives 21.8 / 20.2 / 17.0 % against
19.4 / 20.4 / 15.7 %. The range it establishes is the same, and the repeat
lands on the caveat the page already carried: area 16 moved again, and it
is again the widest interval. Neither run was taken on an idle machine and
the page now says so, which is the part the first provenance line omitted.
One sentence in Project-Status is also corrected rather than extended: the
gap between propagate and the per-section table narrowed, from 3.9x to
3.4x. It does not change the ranking that entry exists to correct.
docs: measure the compression level, and find that neither half was one number
Four TODOs across four pages waited on one run of compressFalcoLevel against
compressMinestomLevel. It has been done at two forks over all five
distinctStates levels, and the answer is that the question was wrong: the
trade has no single value on either side.
Time runs from unresolvable at one distinct state — the intervals overlap
there — to 2.96× at 1024. Size runs from 0.08 % to 40.66 % over the same
sweep. They move together, so the cheap size and the flattering factor are
never the same measurement, and "1.83× faster for about 3 % more bytes" was
never one.
Two of the three competing factors survive. 2.4× at 256 distinct states falls
inside the measured bounds 2.07×-2.53×, and 3.1× at 1024 inside 2.74×-3.20×:
they were readings that had lost their conditions, not contradictions. 1.83×,
the one quoted with no distinctStates attached, falls inside no row's bounds
and has been dropped.
The size figures need no interval and get none. Deflate output length at a
fixed level over fixed input is deterministic, so the table states byte counts
rather than estimates. It runs the benchmark's own setup to compress the same
payload, rather than rebuilding a chunk that would silently be a different
measurement.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QzEdy5fN5JKGxJo8gwtNeu
docs: retire the 112.7 anchor and put the regression on a run that exists
Four pages carried a TODO because "mixed sources cost Falco about a third"
rested on a UNIFORM value of 112.7 µs that appeared in no table. It was never
traceable and is now dropped rather than reconciled. Nothing was substituted
for it: 109.2 is a real number from a different run at different iteration
counts, and putting it in that slot would have invented a measurement.
The claim itself holds and now has a source. The two-fork re-run of 2026-08-02
measures both cells together — 109.88 ± 1.47 against 155.73 ± 8.44 — for a
rise of 41.7 % with conservative bounds of 32.3 % to 51.4 %. The old "about a
third" sat at the bottom of that range rather than at its centre.
What makes the replacement better is not the extra fork. It is that both cells
come from one run at one setting, which is precisely what the old pair could
not offer: its two halves were measured at -wi 5 -i 10 and -wi 3 -i 5, so the
percentage between them was never derivable in the first place.
Light Engine loses its TODO as well, for the same reason: its "roughly 1.3× to
1.06×" had the same untraceable base. The margin does fall, but the MIXED
intervals overlap and no factor may be quoted for it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QzEdy5fN5JKGxJo8gwtNeu
docs: count the two-fork re-run as the fifth repeat
The run published this morning is itself a cross-run repeat of this table, and
the register two hundred lines above it still said "No repeat run of this
table exists" and counted four. Both sentences were made false by the commit
that added the run — the same failure this wiki has now recorded three times:
a change that invalidates a sentence somewhere else, where no tool looks.
There are five. The new one repeats one cell rather than the whole table:
109.88 ± 1.47 against the row's 109.2 ± 1.6, intervals that overlap, so the
row reproduces. The single-fork run beside it is the same control at weaker
settings and is not counted separately — what it establishes is that it should
not have been trusted alone.
The subset that teaches "ratios reproduce" is still two; only the total moved.
Eleven sentences across four pages carried the old total and now carry the new
one.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QzEdy5fN5JKGxJo8gwtNeu
docs: a two-fork run overturns yesterday's single-fork one
The single-fork control run published here earlier today appeared to resolve
the MIXED pair at 64 sources and 0 % solid, at 1.15× faster on disjoint
intervals, and was used to argue that the lead does not fall as brightness
mixes. Repeated at two forks with ten measurement iterations, it does not
resolve at all: Falco 155.73 ± 8.44 against Minestom 161.77 ± 1.60, intervals
that overlap, conservative bounds 0.98× to 1.11× — a range that includes Falco
being the slower of the two. UNIFORM holds at 1.13× faster, bounds 1.09×–1.17×.
The two-fork run agrees with the published row, which also finds this pair
unresolvable, and it is the one whose ± covers more than one JVM launch. No
factor may be quoted for this cell. The direction the withdrawn sentence
claimed — a lead that falls away as brightness mixes — survives after all; the
1.30× and the 1.06× still do not.
Falco's own rise measures 41.7 % at two forks with bounds of 32.3 % to 51.4 %,
so "about a third" sits at the bottom of that range rather than at its centre.
Yesterday's 32.8 % was the single-fork estimate and is superseded.
This is the page's own thesis happening to the page: at one fork the interval
describes dispersion inside a single JVM and is narrower than the true
uncertainty, so a pair can look ordered when it is not. Both runs are kept,
with their settings, because the pair of them is the demonstration.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QzEdy5fN5JKGxJo8gwtNeu
docs: stop claiming every table, and let the research index list all six
Three defects that had been carried as known and open.
Measured Results said it owns every measured table in the wiki, on four pages.
Anvil Chunk Loader refutes that on its own page: it publishes an independent
second run of the loader table and the two-fork four-thread control beside it,
the only published run whose ± covers more than one JVM launch. The claim that
was actually needed is narrower and is now what stands — where a table appears
twice, the copy in Measured Results is the one that is right.
Research listed five documents and omitted Research: Fluent API, which is an
investigation that produced code (#16) rather than a proposal. A group index
that omits one of its own pages misstates its contents, which is the part of
the folding rule that survives now that collapsed sidebar blocks make height a
non-issue. The heading loses its count rather than gaining one, so it cannot
go stale again the way the pull request numbering in CONTRIBUTING.md did.
The #### exception is written down instead of being re-decided every round. It
covers a document that records a completed investigation and no other kind of
page, and it was checked before being granted: no page links a #### anchor on
either of the two, and neither Contents block lists below ##.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QzEdy5fN5JKGxJo8gwtNeu
docs: measure the row the tables could not resolve, and fix the repeat count
Two things a reader could quote against this wiki, and one measurement.
The count of cross-run repeats disagreed with itself. Measured Results is the
register and says four; several sentences said two, including one on that same
page twelve lines from where it counts four correctly, and one that called two
of them "the whole of the project's direct answer to the single-fork
objection" — excluding the two-fork control, the only published run whose ±
covers more than one JVM launch, which is the most direct answer there is.
Three further sentences said three of the four teach that ratios reproduce;
two do, because both loader repeats establish an asymmetry rather than a
ratio, which the register already stated.
The 112.7 µs anchor has been marked TODO on four pages because it appears in
no table. A control run at ed83cad settles part of it. Falco's cost rises
32.8 % from UNIFORM to MIXED on disjoint intervals — the "about a third" that
depended on 112.7 reproduces without it. The lead does not fall from 1.30× to
1.06× as the withdrawn sentence had it: it measures 1.16× and 1.15×, and where
the published MIXED row cannot order the two at all, this one can. Where 112.7
came from is still unknown; this run measures that cell at 107.59 and the
published table says 109.2.
The control run is published beside the table, never inside it, and no digit
above it changed. It is one fork on a machine recorded as not idle, its lower
bound reaches 1.03×, and the page says so where the number is rather than only
in the provenance line.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QzEdy5fN5JKGxJo8gwtNeu
docs: split the working record into status, measurements and contributing
Project Status had grown to 1 783 lines and eighteen sections, from Environment
and Conventions through Measured to Defects and Open. A table of contents above
a page that holds three unrelated things does not make it one thing.
Measured Results now holds every measured table and all eleven provenance
lines. Contributing holds Environment, Working on this, Conventions and
Releasing and snapshots, and is what the repository's new CONTRIBUTING.md
points at. Project Status keeps what its name says: facts, decisions, what is
in the branch, defects, what is open.
The text moved word for word. Heading levels are unchanged, so every
subsection anchor still resolves — only the page in front of it differs. The
old file was checked paragraph by paragraph against the three new ones: 257 of
274 identical, the other 17 differing only in a redirected link or a rewrapped
line. ± appears 94 times before and 94 in the moved text, × 106 times in both.
No figure changed.
The split also broke eighteen sentences that no link checker can catch. They
carry no anchor — "the full tables are in Project Status", "the working
record: benchmark results with their conditions" — so they resolve perfectly
and say something that stopped being true. The worst of them was in
_Footer.md, which renders under all thirty pages. Every one of the twenty-eight
references to Project Status has since been read in context and either
redirected or confirmed.
The Gradle group folds to Build Setup, which already listed all six pages
behind it. Five more long pages gained a table of contents. Home no longer
opens with a greeting.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QzEdy5fN5JKGxJo8gwtNeu