The paper states how to prove it wrong
That is unusual enough to be worth foregrounding. Section 10.4 of the architecture paper defines the conditions under which its own strong claim fails. Everything below is measured against those conditions on a Windows host, and reported in both directions.
What holds
Semantic round-trip
D(E(U)) = U byte-exact under every codec and every block size tested.
Anchor integrity
H(decoded) = H(source) on every configuration.
Not masquerading as UTF-8
The container is correctly not decodable as bare UTF-8, as section 8.1 requires.
Package integrity
All 1,788 files in SHA256SUMS.txt verify, with nothing missing or mismatched.
Test collection
211 tests across 21 modules, exactly as the baseline documents.
What does not hold on this host
Only 6 of 21 test modules pass on Windows. Almost all of it is one line.
_fsync_file opens a file "rb" and calls os.fsync. POSIX permits fsync on a read-only descriptor; Windows maps it to _commit(), which requires a writable handle and returns EBADF. Because v0.10 through v0.22 all import that module, one line fails 14 modules and roughly 125 tests.
Fixing it locally exposes the next layer — file and mmap handles still held when the temporary directory is cleaned up. It is a chain of POSIX assumptions rather than a single defect, and it means the project does not currently run to completion on a second machine.
Two measurements the paper requires that do not exist
Section 10.2's baseline comparison has never been run. There is no gzip, brotli or zstd comparison anywhere in the repository. Measured here on the project's own CJK corpus, plain brotli reaches CR 0.0067 against UTF-8X's best of 0.0313 — about 4.7x smaller.
Section 10.3's random-access amplification is never measured either, and that is the axis on which this architecture would actually win. UTF-8X deliberately splits into independently decodable blocks, trading ratio for random access. Without RA numbers the falsifiability test in 10.4 cannot be settled in either direction. This is the single most valuable thing left to measure.
Block size dominates everything
Measured on the repository's own CJK corpus with the auto profile. At small blocks the header and index cost swamps any gain — exactly the condition section 10.4 names.
| block size | CR | |
|---|---|---|
| 512 | 1.7061 | 70% larger than the source |
| 4,096 | 0.2132 | 78.7% saved |
| 65,536 | 0.0323 | 96.8% saved |