Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .flangrc
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,13 @@ script.proofs:summary = bootstrap/flang run-script seed:freshness --what proofs:
script.word:check = bootstrap/flang run-script seed:freshness --what word:check >&2 && bootstrap/flang io flang/scripts/word-guard.fscript --plan 'Сторож слов' --max-steps 2000000000 --на-веру
script.word:forgery = bootstrap/flang run-script seed:freshness --what word:forgery >&2 && bootstrap/flang io flang/scripts/word-guard.fscript --plan 'Подлог слов' --max-steps 2000000000 --на-веру
script.guard-calls:check = bootstrap/flang io scripts/guards/who-calls-the-guards.fscript --plan Check
script.proved-share-tree:check = bootstrap/flang io scripts/guards/proved-share-vs-tree.fscript --plan Check
script.proved-share-tree:numbers = bootstrap/flang io scripts/guards/proved-share-vs-tree.fscript --plan Numbers
script.proved-share-tree:forgery = bootstrap/flang io scripts/guards/proved-share-vs-tree.fscript --plan Forgery
script.forgery-probe:check = bootstrap/flang io scripts/guards/guards-without-forgery-probe.fscript --plan Check
script.forgery-probe:census = bootstrap/flang io scripts/guards/guards-without-forgery-probe.fscript --plan Census
script.forgery-probe:list = bootstrap/flang io scripts/guards/guards-without-forgery-probe.fscript --plan List
script.forgery-probe:forgery = bootstrap/flang io scripts/guards/guards-without-forgery-probe.fscript --plan Forgery
script.uncalled-checks:check = bootstrap/flang io scripts/guards/checks-nobody-calls.fscript --plan Проверка --max-steps 4000000000
script.closed-length:check = bootstrap/flang io flang/scripts/closed-length-guard.fscript --max-steps 4000000000
script.emptiness:check = bootstrap/flang run-script seed:freshness --what emptiness:check >&2 && bootstrap/flang io flang/scripts/emptiness-guard.fscript --plan 'Пустоты в доказанном нет' --timeout 900000 --max-steps 2000000000
Expand Down
4 changes: 2 additions & 2 deletions .githooks/pre-push.fscript
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
запись «Check» с «name» равным "seed-refresh" и «command» равным "bootstrap/flang io scripts/seed/seed-refresh.fscript --plan Check",
запись «Check» с «name» равным "version-derivations-guard" и «command» равным "bootstrap/flang io scripts/guards/version-derivations-guard.fscript --plan Проверка",
запись «Check» с «name» равным "who-calls-the-guards" и «command» равным "bootstrap/flang io scripts/guards/who-calls-the-guards.fscript --plan Check",
запись «Check» с «name» равным "guards-without-forgery-probe" и «command» равным "sh scripts/guards/guards-without-forgery-probe.sh --check",
запись «Check» с «name» равным "proved-share-vs-tree" и «command» равным "sh scripts/guards/proved-share-vs-tree.sh",
запись «Check» с «name» равным "forgery-probe" и «command» равным "bootstrap/flang run-script forgery-probe:check",
запись «Check» с «name» равным "share-tree" и «command» равным "bootstrap/flang run-script proved-share-tree:check",
запись «Check» с «name» равным "stdlib-proof-guard" и «command» равным "bootstrap/flang io scripts/guards/stdlib-proof-guard.fscript --plan Brackets",
запись «Check» с «name» равным "cyrillic-file-names-guard" и «command» равным "bootstrap/flang io scripts/guards/cyrillic-file-names-guard.fscript --plan Проверка",
запись «Check» с «name» равным "translit-file-names-guard" и «command» равным "bootstrap/flang io scripts/guards/translit-file-names-guard.fscript --plan Проверка",
Expand Down
74 changes: 30 additions & 44 deletions .github/workflows/binary.yml

Large diffs are not rendered by default.

31 changes: 27 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -212,8 +212,8 @@ jobs:
# 31 августа 2026 в дереве нашлось 31 место в 14 файлах, где записанное рукой
# число разошлось с тем, что лежит рядом: `docs/tree-inventory.md` считала
# `seed-parses-sources-guard.sh` в 83 строки при 195, оболочку — в 66 файлов
# при 71 тогдашних — сегодня их 49;
# СНЯТО 2026-10-04 файлов *.sh = 49 (перенос flang/translation/run.sh на план flang/translation/run.fscript снял один файл оболочки; до него 50, снято 2026-10-04) (задача 5821: scripts/guards/version-derivations-guard.sh снят — сверка производных версии стала планом scripts/guards/version-derivations-guard.fscript, приговор доказан ядром (13 из 13), хук зовёт план; до него 51, снято 2026-10-04) (задача 0049: scripts/seed/seed-freshness.sh снят — проверка давно живёт планом scripts/seed/seed-freshness.fscript, а переходник ещё и терял довод (exec без "$@"); до него 52, снято 2026-10-04) (задача 5821: семь скриптов scripts/** переехали с оболочки на flang; до них 101, снято 2026-09-21) `flang/cat/SPEC.md` обещала восемнадцать поручений при 22;
# при 71 тогдашних — сегодня их 47;
# СНЯТО 2026-10-04 файлов *.sh = 47 (перенос scripts/guards/proved-share-vs-tree.sh и guards-without-forgery-probe.sh на планы снял два файла оболочки; до них 49, снято 2026-10-04) (перенос flang/translation/run.sh на план flang/translation/run.fscript снял один файл оболочки; до него 50, снято 2026-10-04) (задача 5821: scripts/guards/version-derivations-guard.sh снят — сверка производных версии стала планом scripts/guards/version-derivations-guard.fscript, приговор доказан ядром (13 из 13), хук зовёт план; до него 51, снято 2026-10-04) (задача 0049: scripts/seed/seed-freshness.sh снят — проверка давно живёт планом scripts/seed/seed-freshness.fscript, а переходник ещё и терял довод (exec без "$@"); до него 52, снято 2026-10-04) (задача 5821: семь скриптов scripts/** переехали с оболочки на flang; до них 101, снято 2026-09-21) `flang/cat/SPEC.md` обещала восемнадцать поручений при 22;
# `flang/PLAN.md` — пять вариантов «Поручение» при 22. Каждое из этих чисел
# было ВЕРНО В ДЕНЬ ЗАПИСИ и солгало назавтра, и сторожа не было ни на одном.
#
Expand Down Expand Up @@ -305,7 +305,7 @@ jobs:
# ПРОБ ДВЕ, И ВТОРАЯ ВАЖНЕЕ ПЕРВОЙ. Первая подкладывает путь в памяти плана
# (`--plan Подлог`). Вторая кладёт НАСТОЯЩУЮ ВРЕМЯНКУ НА ДИСК и требует кода 1:
# в чистой выписке CI сторож зелен всегда, а сторож, зелёный всегда, неотличим
# от выключенного (scripts/guards/guards-without-forgery-probe.sh, та же порода).
# от выключенного (scripts/guards/guards-without-forgery-probe.fscript, та же порода).
vremyanki:
name: stray-temporaries
runs-on: ubuntu-latest
Expand Down Expand Up @@ -1450,6 +1450,29 @@ jobs:
- name: Check uncalled guards
run: bootstrap/flang run-script guard-calls:check

# ПРИБОР, КОТОРЫЙ СТЕРЕЖЁТ НАЛИЧИЕ ПРОБ ПОРЧИ, ОБЯЗАН НЕСТИ ПРОБУ ТЕМ
# БОЛЕЕ. Сосед выше отвечает на вопрос «кого CI зовёт»; этот — на второй,
# без которого первый мало стоит: «а показано ли, что позванный вообще
# способен покраснеть». 4 октября 2026 он перенесён с оболочки
# (scripts/guards/guards-without-forgery-probe.sh, 275 строк с python и
# pyyaml) на план: разбор ключей run: ввезён у соседа
# scripts/guards/who-calls-the-guards.fscript, и разборщик YAML больше не
# нужен. До переноса его звал только хук перед пушем, CI — никто.
#
# КОДЫ ПЕРЕВЁРНУТЫ, а не как у соседа выше: план «Forgery» здесь портит
# перепись и ведомость В ПАМЯТИ и отвечает кодом 1, когда подлог пойман на
# всех пяти сторонах; код 0 значит «сверка промолчала хотя бы на одной»
# либо «порча не собралась». Прогнано на выпотрошенной копии («Troubles
# of», возвращающая пустой список на любом входе): она даёт шагу код 0.
- name: Probe guards without forgery probe
run: |
if bootstrap/flang io scripts/guards/guards-without-forgery-probe.fscript --plan Forgery; then
echo "сверка промолчала на порченой переписи — проверять ею нечего" >&2
exit 1
fi
- name: Check guards without forgery probe
run: bootstrap/flang run-script forgery-probe:check

# ── Ещё двое, прогнанные и снабжённые подлогом задачей 6612 ────────────
#
# Оба числились ЗВАНЫМИ у переписи зова, и оба званы не были: прибор
Expand Down Expand Up @@ -1547,7 +1570,7 @@ jobs:
ln -sf "$put" "$podstavnoy/$programma"
done
# Вызов стоит В УСЛОВИИ `if`, и это не вкусовщина: перепись проб
# (scripts/guards/guards-without-forgery-probe.sh) засчитывает пробу только такой
# (scripts/guards/guards-without-forgery-probe.fscript) засчитывает пробу только такой
# форме. Записанный как `otvet=$(…) && { … }`, тот же шаг работает,
# но прибор его не видит, и сторож числится беспробным.
if otvet=$(PATH="$podstavnoy" bootstrap/flang run-script install-path:check 2>&1); then
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/install-path.yml
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ jobs:
# копии и ОБЯЗАН ответить провалом «подлог пойман». Ответил кодом 0 —
# значит сравнение выпотрошено, и зелёный шаг выше ничего не значит.
# Зовётся файлом, а не командой `asdf-plugin:forgery`: прибор проб порчи
# (scripts/guards/guards-without-forgery-probe.sh) относит пробу к сторожу по файлу.
# (scripts/guards/guards-without-forgery-probe.fscript) относит пробу к сторожу по файлу.
- name: Probe asdf plugin
run: |
set -u
Expand All @@ -247,7 +247,7 @@ jobs:
# покраснел на подложенном. Подлог внутренний — план «Подлог» того же
# файла вычёркивает проводник из прочитанного состава архива и ОБЯЗАН
# ответить провалом «подлог пойман». Зовётся файлом, а не командой:
# прибор проб порчи (scripts/guards/guards-without-forgery-probe.sh) относит пробу к
# прибор проб порчи (scripts/guards/guards-without-forgery-probe.fscript) относит пробу к
# сторожу по файлу.
- name: Probe delivery contents
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ jobs:
# ПОКАЗАНО ПРОГОНОМ, ЧТО СТОРОЖ ВЫШЕ УМЕЕТ КРАСНЕТЬ.
#
# Сторож, у которого не показано, что он краснеет, — это сторож, которому
# верят зря: ровно этот род долга считает `scripts/guards/guards-without-forgery-probe.sh`.
# верят зря: ровно этот род долга считает `scripts/guards/guards-without-forgery-probe.fscript`.
# Проба подставляет версию, заметки о которой в json заведомо нет, и
# требует от плана ОТКАЗА. Прошёл план — красный здесь, а не молчание.
#
Expand Down
4 changes: 2 additions & 2 deletions docs/javascript-inventory.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ JavaScript стало 55, строк 29 733; в трёх каталогах о

Эта опись считает ОДИН язык. Остальные шестнадцать — оболочка, C, C++, Python,
HTML, CSS, awk, Erlang, Java, C#, Elixir, Go, Rust, Lua, vimscript, Ruby —
считает [`tree-inventory.md`](tree-inventory.md) (4 октября 2026: 192 файлов вне flang,
<!-- СНЯТО 2026-10-04 файлов *.sh,*.c,*.h,*.py,*.html,*.css,*.awk,*.erl,*.js,*.mjs,*.java,*.cs,*.ex,*.exs,*.go,*.rs,*.lua,*.vim,*.rb,*.cpp,*.cc,*.hpp,*.hh,ярлык,packaging/asdf/bin/download,packaging/asdf/bin/install,packaging/asdf/bin/list-all,.githooks/pre-push = 192 (перенос flang/translation/run.sh на план flang/translation/run.fscript снял один файл вне flang; до него 193, снято 2026-10-04) (задачи 0049 и 5821: сняты flang/scripts/word-occupancy.mjs, scripts/seed/seed-freshness.sh и scripts/guards/version-derivations-guard.sh — у каждого двойник на flang доказан прогоном; до них 196, снято 2026-10-04) (две честные пары сличителя перевода: отбор по признаку и объявленная мера; до них 194, снято 2026-09-17) (задача 4413: flang/scripts/proof-ledger.mjs и word-guard.mjs сняты — свод корпуса считает двойник на flang; до них 51 файл и 24 386 строк, снято 2026-09-17) (задача 5821: семь скриптов scripts/** переехали с оболочки на flang; до них 256, снято 2026-09-21) -->
считает [`tree-inventory.md`](tree-inventory.md) (4 октября 2026: 190 файлов вне flang,
<!-- СНЯТО 2026-10-04 файлов *.sh,*.c,*.h,*.py,*.html,*.css,*.awk,*.erl,*.js,*.mjs,*.java,*.cs,*.ex,*.exs,*.go,*.rs,*.lua,*.vim,*.rb,*.cpp,*.cc,*.hpp,*.hh,ярлык,packaging/asdf/bin/download,packaging/asdf/bin/install,packaging/asdf/bin/list-all,.githooks/pre-push = 190 (перенос scripts/guards/proved-share-vs-tree.sh и guards-without-forgery-probe.sh на планы снял два файла вне flang; до них 192, снято 2026-10-04) (перенос flang/translation/run.sh на план flang/translation/run.fscript снял один файл вне flang; до него 193, снято 2026-10-04) (задачи 0049 и 5821: сняты flang/scripts/word-occupancy.mjs, scripts/seed/seed-freshness.sh и scripts/guards/version-derivations-guard.sh — у каждого двойник на flang доказан прогоном; до них 196, снято 2026-10-04) (две честные пары сличителя перевода: отбор по признаку и объявленная мера; до них 194, снято 2026-09-17) (задача 4413: flang/scripts/proof-ledger.mjs и word-guard.mjs сняты — свод корпуса считает двойник на flang; до них 51 файл и 24 386 строк, снято 2026-09-17) (задача 5821: семь скриптов scripts/** переехали с оболочки на flang; до них 256, снято 2026-09-21) -->
долг вне JavaScript — **97 файлов, 18 427 строк при потолке 63**: храповик
красен, разбор — задачи 4838 и 7405). Там же названы 569 строк
JavaScript, лежащих ВНУТРИ файлов `.html`: счёт по именам файлов их не видит, и
Expand Down
Loading
Loading