flang компилятор доказывает, что программа не зациклится 0.6.2 GitHub

Путь, названный в прозе обратными кавычками, не сверяется с деревом ничем — так контракт категорной поверхности пережил свои файлы на 28 упоминаний

Проверка ссылок (scripts/link-guard.flang) читает ссылки вида [текст](путь). Путь, написанный в предложении обратными кавычками —

проверяет ни она, ни сборка сайта, ни какая-либо другая проверка дерева.

Цена этого измерена на `flang/cat/SPEC.md`. После снятия второй реализации языка
в нём осталось **28 упоминаний тринадцати файлов, которых в дереве нет**, и
почти каждое стоит рядом со словом «сделано»: «естественность — **сделано**
(`flang/src/setoid.mjs`)», «законы монады — **сделано** (`flang/src/monad.mjs`)».
Читатель понимает это как «проверка есть и вот где она лежит». По названному
адресу нет ничего, а сама проверка в двоичный не подключена
([[the-binary-is-silent-about-checks-it-does-not-have]]).

Проверка ссылок при этом **зелёная**: «файлов 495, ссылок 969, битых 0». Она не
солгала — она просто смотрит в другое место.

**Чем подтверждено.** Прогон `flang io scripts/link-guard.flang` на
`u/spec-cat` от `github/main`: 0 битых ссылок при 28 мёртвых путях в одном файле.
Мёртвость каждого — `ls` по пути из обратных кавычек. Снятая реализация —
коммит `fe8e8a37`, 48 файлов, 56 072 строки.

**Чем ограничено.** Это про пути, а не про имена функций и не про коды
диагностик. Ложное имя функции в прозе так же не сверяется ничем, но замера по
нему нет.

**Чему учит — и это правило шире одного файла.** Документ, который называет своё
доказательство ПУТЁМ, тухнет молча вместе с путём. Документ, который называет
своё доказательство КОДОМ ДИАГНОСТИКИ (`FLANG_FUNCTOR_SQUARE`), остаётся
полезным и после снятия того, кто код выдавал: код — это обязательство перед
следующей реализацией, а путь — только адрес нынешней. Поэтому в переписанном
контракте пути сняты, а коды оставлены все до одного.

Связано: [[posle-udaleniya-vtoroy-realizacii-nabor-prob-otdayot-nol]],
[[the-binary-is-silent-about-checks-it-does-not-have]],
[[a-check-moved-to-the-binary-drops-out-of-ci-silently]]