Repository navigation
Подмодуль раскладки на стволе, печать в C убрана из git - #4
Merged
Merged
Conversation
…личин
`ui-flang/flang-tui` стоял на `6bb627cc` — последнем отпечатке, где библиотека
была двуязычной. Ствол ушёл на `4117aea`, и уход не рядовой: Go в ней стало 0
строк, `tools/sverka/` и `Makefile` убраны, точка входа теперь `./ярлык`, а
ответы эталона переехали в примеры внутри модулей.
Что это дало здесь, числами:
примеров в модулях 187 → 590 (`make -C ui-flang проверка`, все прошли)
ui-flang/out-go 16 842 → 18 053 строки Go в 18 файлах
изменился ОДИН файл out-go/format/flang/format.go (+2244 −999)
Пять модулей из шести напечатались байт в байт прежними: примеры в код не
печатаются, а тела функций у screen, colour, history, tabs и scroll не
менялись. Изменился только `format`: на стволе он догнал эталон, переехавший
между digitdisk 0.5.0 и 0.8.0 из шести мест `host/internal/{report,ui,sysinfo}`
в один двуязычный `host/internal/lang/format.go`, и обзавёлся русской и
английской редакциями каждой величины.
Печать снята выпущенным `flang 0.7.10` — тем же тегом `FLANG_TAG`, что стоит в
`.github/workflows/check.yml`, поэтому `make -C ui-flang сверка` совпадает с
деревом, а не краснеет от нумерации временных.
Обе реализации раскладки по-прежнему рисуют один и тот же экран:
`tools/sverka-ui.sh` — расхождений 0, снимок 21 835 849 байт, кадры 40×24
3073 Б, 80×24 4045 Б, 120×50 5525 Б, 200×50 6416 Б — все до байта те же, что и
до переезда.
`ui-flang/README.md` обещал читателю прогон `flang-tui/tools/sverka/run.sh` на
494 869 входах. Файла на стволе нет; сказано, чем сверка стала: две сверки
кончились (494 467 входов против 0.5.0 и 1 944 268 против 0.8.0, расхождений
0), а стерегут теперь 590 примеров в самих модулях. Там же и в `Makefile`
исправлено `make печать` у библиотеки на `./ярлык печать`.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012A35w4QRRoanYvErJfwTQA
Довод «чтобы сборка из чистого клона требовала только Go» стоял в четырёх местах (`core/README.md`, `AGENTS.md`, `.gitignore`, `ui-flang/README.md`) и был шире правды: он не называл ни признака, за которым напечатанное вообще нужно, ни каталога, которому не подходит вовсе. Замерено в чистом клоне на `AMD EPYC 7742` — той же машине, на которой сняты замеры раскладки. ЧТО ОКАЗАЛОСЬ НЕПРАВДОЙ. «Только Go» — это не про `go build`. Снесите `core/out-go`, `core/out-c` и `ui-flang/out-go` целиком: `go build ./...`, `go vet ./...` и `go test ./...` в `host/` останутся зелёными — решающий слой стоит за `flangcore`, без признака собирается заглушка. ЧТО ОКАЗАЛОСЬ ПРАВДОЙ, И ПОТОМУ ДОВОД НЕ ОТМЕНЁН. Довод про выпуск. `scripts/build-release.sh` собирает все четыре цели с `-tags flangcore` (стр. 119), падает, если ядра в двоичном не оказалось (стр. 234), и компилятор flang не зовёт ни разу. Без `core/out-go` тот же путь отвечает «replacement directory ../core/out-go does not exist». То же у `tools/sverka-ui.sh`, единственного прогона, доказывающего, что две реализации раскладки рисуют один экран: он собирает дерево дважды и в своей шапке обещает, что компилятор не нужен. ЧЕГО ЭТО СТОИЛО БЫ. «Один двоичный из одного `cc`» — правда, но не «даром»: `make -C bootstrap` на v0.7.10 — 38 МБ C в четырёх единицах трансляции, 5 мин 12 с одним вызовом, 1 мин 54 с при `-j4`, 1 мин 48 с при `-j8`, пик 1,7 ГиБ. Язык обещает «около минуты» с `-j8` — вышло почти вдвое больше. Число растёт, а не падает, и потому 6 304 строки в git остаются дешевле двух минут и полутора гигабайт на каждой машине, которая собирает выпуск. ЧТО УБРАНО. `core/out-c` — 12 130 строк, 6 файлов — доводом не покрыт ничем. Его не читает ни `host/`, ни `scripts/`; зовёт его один `differential.flang` через `out-c/flang_cli`, а цель `сверка` зависит от `печать`, которая начинается с `rm -rf out-go out-c`. То есть закоммиченный C не читал никто и никогда: кому он нужен, тот печатает его заново, и компилятор у него уже есть. Теперь печатается на месте и игнорируется (`core/.gitignore`). напечатанного в git было 29 файлов, 36 487 строк — 46,6 % дерева стало 23 файла, 24 357 строк — 36,7 % для сравнения, весь хозяин на Go 33 467 строк Проверено после правки: `make -C core` — сверка печати 240 входов, расхождений 0, дерево после прогона чистое; `flang io tools/licensing.flang` — бед 0; `go build`/`vet`/`test` во всех трёх сочетаниях признаков; `tools/sverka-ui.sh` — расхождений 0. `tools/licensing.flang` не тронут намеренно: его «Напечатанное» — предикат о ПУТИ, и для `core/out-c/` он остаётся верным; сторож ходит по `git ls-files`, так что нечитаемых веток он не завёл. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012A35w4QRRoanYvErJfwTQA
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Задачи 8148 и остаток 3606.
8148 — подмодуль переехал на ствол
ui-flang/flang-tui:6bb627cc→4117aea. Ствол ушёл дальше, чем сказано в задаче (там617fe0d): влит PR #1 про формат величины в обеих редакциях.out-go/format/flang/format.go(+2 244 −999). Пять модулей вышли байт в байт прежними: примеры в код не печатаются, а телаscreen/colour/history/tabs/scrollна стволе не менялись;format, потому что на стволе он догнал эталон, переехавший между digitdisk 0.5.0 и 0.8.0 из шести мест в один двуязычныйhost/internal/lang/format.go.ui-flang/README.mdобещал прогонflang-tui/tools/sverka/run.shна 494 869 входах — файла на стволе нет. Заменено на то, чем сверка стала: две сверки кончились (494 467 входов против 0.5.0 и 1 944 268 против 0.8.0, расхождений 0), стерегут теперь 590 примеров в самих модулях.3606 — довод про «только Go» переписан по каталогам,
core/out-cубран из gitДовод держится для
core/out-goиui-flang/out-goи не держится ничем дляcore/out-c:go build: со снесёнными каталогами печатиgo build/vet/test ./...остаются зелёными (решающий слой заflangcore).scripts/build-release.shсобирает все четыре цели с-tags flangcoreи компилятор не зовёт ни разу; безcore/out-goтот же путь отвечаетreplacement directory ../core/out-go does not exist.cc» ≠ даром:make -C bootstrapv0.7.10 на EPYC 7742 — 5 мин 12 с одним вызовом, 1 мин 54 с при-j4, пик 1,7 ГиБ. Язык обещает «около минуты» — вдвое больше. Число растёт, и это сегодняшняя причина, по которой довод не отменён целиком.core/out-c— 12 130 строк, которые не читает никто: ниhost/, ниscripts/. Зовёт его одинdifferential.flang, а цельсверказависит отпечать, которая начинается сrm -rf out-go out-c. Любой прогон, которому C нужен, печатает его сам и уже имеет компилятор (это и делает CI шагомmake -C core).Печатного в git: 29 файлов / 34 100 строк → 23 / 24 357. Доля напечатанного в дереве 46,6 % → 36,7 %.
Прогоны (перепроверены при приёмке в свежем клоне)
go build ./...·go build -tags flangcore ./...·go test -tags flangcore ./...— зелёные.tools/sverka-ui.sh— расхождений 0, кадры 40×24 3073 Б, 80×24 4045 Б, 120×50 5525 Б, 200×50 6416 Б: последние два совпадают с числами задачи, то есть переезд подмодуля экран не сдвинул.git ls-files core/out-c— пусто, CI печатает C сам.Заодно исправлено
brew install flang→brew install digitable-lol/tap/flang(без тапа формулы нет).