Skip to content

flang 0.4.2 — две ветки сведены, память линейна, шаги считаются

Choose a tag to compare

@the-homeless-god the-homeless-god released this 06 Aug 00:07
· 108 commits to main since this release

Установка без Node — в архиве компилятор, уже напечатанный в C99:

brew install digitable-lol/tap/flang

Полный инструментарий (восемь целей печати, интерпретатор, языковой сервер) — npm install -g @digitable-lol/fts, ему Node нужен.

Что изменилось

Две ветки разработки сведены. Полтора дня две сессии работали по одному контракту в разошедшихся ветках — общего предка не было вовсе. Где решения расходились, выбор делался измерением, а не старшинством: линейное «добавить» было сделано двумя способами, и тот, что не удержал 35 276 токенов в гигабайте, уступил тому, что удержал.

Лимит шагов в напечатанном C. Программа с незавершающейся рекурсией теперь останавливается с FLANG_RECURSION_LIMIT — тем же кодом и тем же текстом, что у интерпретатора, — а не висит. Сам компилятор печатается с пределом, который ему нужен: 40 · 10⁶ шагов против 10⁶ по умолчанию.

Проверка релиза стала настоящей. Раньше она спрашивала собранный бинарник о трёхстрочном модуле. Теперь даёт ему разобрать self/parser.flang — 372 функции, 35 тысяч токенов. Дефект, который трёхстрочный модуль не показывал, был бы виден сразу.

Теоркат, шаг 1. Морфизм как стрелка между объектами, композиция словом после, цепочка в порядке чтения, единица. Стыковка композиции проверяется компилятором и относится к доказанному.

Описание языка целикомdocs/overview.ru.md, с честной границей между «доказано» и «проверено на конечной сетке».

Предыдущий v0.4.1 работоспособен; замены не требует.