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

Переименование файла не краснеет, а тихо выключает проверку чисел в прозе

flang/scripts/count-guard.mjs сверяет каждое утверждение прозы вида «N строк в путь» с деревом. Если пути в дереве нет, измеритель возвращает null, а проверка делает continue. То есть утверждение о пропавшем файле перестаёт сравниваться и остаётся зелёным: сторож молчит ровно там, где проза соврала.

Отсюда правило: перенос или переименование файла в этом дереве — правка не одного места, а всех, кто называет его по пути. Найти их можно только grep-ом по всему дереву; красный список этого не покажет, потому что красных не станет больше.

Особенно дорого это в docs/: на пять отчётов замеров ссылаются заметки самой базы знаний, и там путь стоит в одном ряду с числом строк — «docs/benchmark-speed.md, 997 строк». Перенеси файл — и число перестанет проверяться, а путь станет враньём, которое ничем не ловится.

Это тот же класс, что checks-that-stopped-comparing: проверка, переставшая сравнивать, продолжает зеленеть. Здесь её выключает не правка проверки, а безобидная на вид перекладка файлов.

Чем подтверждено. Ветка work/struktura от origin/main = 17d6853, 2026-08-16. Улика — сам код: в проверить() стоит const измерено = строкПод(путь, корень, основыДля(отн)); if (измерено === null) continue, и так в обеих ветвях — и для абзацев, и для таблиц. При разборе docs/ девять страниц руководства перенесены в docs/guide/ (тогда каталог звался иначе), и после переноса count-guard.mjs сказал «чисто» — он и не мог сказать иначе.

Чем ограничено. Про пути в прозе .md. Ссылки в коде (import, readFile) краснеют честно — там путь исполняется. Ссылки-[текст](путь) в markdown не проверяются ничем: сплошной обход всех ссылок дерева пришлось написать отдельно, в дереве такой проверки нет.

Связано: checks-that-stopped-comparing, two-projects-tied-by-generators