DigitableCourses
Настройки портала
Показать возможности портала

Локально и без аккаунта. Аккаунта нет, регистрация не нужна: введённое в инструменты остаётся в localStorage браузера и на сервер не уходит.

Свой счётчик считает открытия страниц и дочитывания: уезжает адрес и десятая доля текста. Без cookies и чужих счётчиков, IP не хранится, Do Not Track уважается. Как это проверить

Репозиторий портала не выложен, «открытым кодом» мы его не зовём. Открыто это:

Живёт портал на донатах, платных консультациях и разборах по запросу и покупке Workbench.

Планов делать курсы платными нет.

История языка

Что появилось в каждой версии — от 0.7.3 и назад до 0.4.0.

Релиз языка — это тег в репозитории и архив формулы Homebrew. Строки под версией — заголовки коммитов, которые в неё вошли: в репозитории языка заголовок пишется утверждением о том, что теперь правда, поэтому переписывать его для этой страницы нечем и незачем. Правки, от которых язык снаружи не меняется — планы, спецификации, тесты, сборка, — сосчитаны и не перечислены.

Откуда эти числа. Разбор коммитов приезжает файлом из репозитория языка; выпуски, которые язык ещё не перепечатал в свой журнал, сняты со страницы релизов 2026-09-03 — это 0.7.3 и 0.7.0. У них есть заголовок и дата, но нет списка коммитов, и подменять его пересказом мы не будем.

Последняя версия в журнале: 0.7.3 · 3 сентября 2026
хотфикс версии довыпущен: sha256 взят у самого конвейера. Ставится одной командой: brew install digitable-lol/tap/flang.
Релизов: 16 · записей: 1537
Всё, что здесь перечислено, лежит в истории репозитория и открывается по ссылке рядом с записью — https://github.com/digitable-lol/flang.
  1. 0.7.3 записей: 0

    хотфикс версии довыпущен: sha256 взят у самого конвейера

    хотфикс версии довыпущен: sha256 взят у самого конвейера

    Примечания к выпуску v0.7.3

  2. 0.7.0 записей: 0

    библиотека шире, а главная работа — поиск собственных обманов

    библиотека шире, а главная работа — поиск собственных обманов

    Примечания к выпуску v0.7.0

  3. 0.6.2 записей: 9
    • Формула на 0.6.2 и запись о выпуске: чинится установка через Homebrew 1201f5a
    • Компилятор перепечатан под 0.6.2 32d3c4b
    • Упаковка выпуска чинится буквой X: без неё каталог runtime-c приезжал без права входа и brew install падал у всех 54a5ac4
    • Версия 0.6.2 49bf68b
    • Разведка ввозов разбирает шапку, а не весь файл: память −24 %, время −5 % b7a7b86
    • Принцип свёртки говорит теперь и о пройденном куске списка: доказано 197 → 199, потеряно ноль 17b2c26
    • «https» у поручения «Запросить» работает: шифрование берётся поручением внешнему хозяину, а не своим кодом d44e4c2
    • У строки одна мера и там, где строка — октеты: поиск ходит по границам знаков, счёт сведён с нарезкой, склейка отказывает на слипающемся стыке f11343e
    • Две рукописные копии сличения списков сняты, три устаревшие ссылки на снятый запрет исправлены 2eae04b

    правок, не меняющих язык снаружи: 4 Примечания к выпуску v0.6.2

  4. 0.6.1 записей: 34
    • Формула Homebrew переведена на 0.6.1: sha256 посчитан на архиве выпуска 9683d80
    • Компилятор перепечатан под 0.6.1 после шести веток: дешёвая сверка входов зелёная 643bed2
    • Версия 0.6.1 и запись о выпуске 1b4232b
    • Компилятор перепечатан после четырёх веток: правила «или» и фильтра доехали до собранного, отпечаток входов снят 9efb373
    • Двоичный говорит по протоколу помощника: `flang --mcp-mode`, и три вердикта уходят порознь 15342ea
    • Точка раскрутки перепечатана: тридцать шесть проверок ядра уехали в семя ba2207f
    • Числа сведены с собранным двоичным: 13 894 920 октетов, 31 с, 7,3 ГиБ 24d9bb8
    • Точка раскрутки перепечатана после правки порядка строк записи a9fb259
    • Точка раскрутки перепечатана: словарь на восемнадцать поручений, оба хозяина на C, отказ FLANG_IO_NOT_TEXT 48d6a84
    • Прибавка от обоих правил названа числом в самом ядре: +2 и +2 на шести файлах библиотеки, парным замером 1a95824
    • Прогон подделок спрашивает сверщика о всех программах каталога примеров, а не об одной 7857320
    • Сверщик читает вариант, написанный голым словом, и знает конструкторы встроенного списка f70597f
    • Заголовок случая в записи встал перед своими шагами: «добавить» дописывает в конец 5fa0001
    • Числа замера в ADR-0006, SPEC и примере: три порчи, четыре размера, цена памяти 3fdaa91
    • Нулевой октет вернулся в законный текст: отказ теперь только на неправильном UTF-8 a45e34a
    • Точка раскрутки перепечатана: семя несёт запись доказательства и ключ --записать ca25911
    • Долги записи и сверщика названы прямо: сведение, вторая командная строка, один шаг на строку aaa8a35
    • Из 49 сведённых обещаний ядра остались 36: подмену тела пережили тринадцать 9b64462
    • Точка раскрутки перепечатана под два новых правила ядра; сверка --check совпала байт в байт cb31c94
    • man flang описывает ключ --записать: доказательство кладётся в файл и сверяется отдельной программой a34fbb4
    • Счёт постусловий не считает пояснения: строка, начатая двумя косыми, не объявление 5d96bbc
    • Шапка сверщика перечисляет все девять проверок, а не шесть c335b01
    • Закрытие цели считается по случаям, а не в среднем по теореме 08b78ee
    • Сверщик спрашивает хозяина утверждения и у тех, при которых теоремы нет 25ece3f
    • Имя «Строка шага» разошлось с отчётом о доказательствах: у записи оно своё 0624a87
    • Запись обязана говорить обо всей программе: счёт постусловий сверяется с исходником a2bf55e
    • Сверщик сличает утверждаемое теоремой с обещанным постусловием 6d091d3
    • Сверщик получил закрытый список правил сведения и проверку полноты записи 3c44eb5
    • Доказательство стало предметом: ядро записывает свой терм в файл, сверщик на flang сверяет его с исходником 56488e5
    • «Ответить в соединение» перестало рвать содержимое strlen'ом: длина берётся у значения, нетекст отвергается 9632acf
    • Ядро получило разбор случаев по внутреннему условию цели и правило несовместимых допущений; при обоих стоят подделки a443b7c
    • Ядро доказательства обещает о себе: 49 постусловий, все сведены ядром 21c7180
    • Пример «Двоичный файл туда и обратно», ADR-0006 и словарь в SPEC: восемнадцать поручений 5b62c16
    • Октетная пара у файлов: словарь, оба хозяина на C; текстовая пара на нетексте отказывает вместо молчания bcf4c69

    правок, не меняющих язык снаружи: 16 Примечания к выпуску v0.6.1

  5. 0.6.0 записей: 429
    • Формула Homebrew переведена на 0.6.0: ссылка на тег v0.6.0, sha256 посчитан на архиве выпуска 55292de
    • Перевод компилятора на C перепечатан под 0.6.0: потолок шагов внутри поднят до миллиарда, два захода подряд дали одно и то же a722581
    • Ядро берёт цель «А и притом Б»: половина «условие ложно» есть ложь 4522d7f
    • Ведомость пустоты заведена и сошлась: 93 доказанных по 18 файлам библиотеки разложены по четырём кучам d22c94c
    • Семя перепечатано: ядро в двоичном опровергает границу над числом, и улика задания закрыта 0cfcf7d
    • Пустота закрыта там, где ядру хватило правил: logic ×2, numbers, strings; при стороже заведён показ порчи 32f3979
    • Две ложные границы карты ядра оговорены: К2 и П3 были ложны на «не числе», доказанного при этом не потеряно 71d1d78
    • Перевод компилятора на C пересчитан после слияния двадцати веток: два захода подряд дали одно и то же, 7 файлов, 26 110 965 байт ce6e760
    • Ядро научилось ОПРОВЕРГАТЬ границу над числом: контрпример «не число» называет оно само 0b3db25
    • Точка раскрутки перепечатана: область на виток батута доехала в семя a00ac8d
    • Сторож пустоты: разбор ведомости и чтение исходника на flang; «Знак» перестал говорить о подписи 2a9f350
    • Числа в пояснении к области витка — по парному замеру, а не по прикидке 37f8ad9
    • Область на виток батута: хвостовая рекурсия перестала копить арену 202afd3
    • Старое имя дочищено в контрактах Провода d9e7e3e
    • Столкновение имён разведено: «Цифра числом» Провода зовётся «Цифра провода», у strings.flang имя остаётся своим 033b491
    • Поломки от слияния сведены: вторая копия SASL снята, «Целая часть протокола» объявлена в плане, долг сращивания пересчитан cce8fff
    • Семя возвращено к стволу перед перепечаткой 295522f
    • Семя перепечатано после снятия задвоенной функции и сведения со стволом 9fce394
    • Путь в пояснении примера записан латиницей целиком: половина имени файла была кириллицей и команда из шапки не работала a77ade3
    • Семя перепечатано: ядро в двоичном читает оговорку «пока это число» 5e444b8
    • Точка раскрутки перепечатана: починка цели «js» доехала в семя, и из семени собирается компилятор, который её знает 416618d
    • Оговорка в utf8: тело «Досыпать байты» совпадает с «Соединить списки» с точностью до имён доводов, и счёт копий по телам эту пару не ловит 007bb73
    • Провенанс векторов записан в сами модули: чем и когда сверено 5b01c42
    • Числа в шапке postgres выправлены по замеру: 86 функций, 3 файла замыкания, 18 замечаний на снятой строке ввоза 8017570
    • Пример «библиотечное API» снова собирается: в списке `только` не хватало имён, которые зовёт контракт ввезённой функции aae2d38
    • Вход по scram-sha-256 в настоящую базу СОСТОЯЛСЯ, и журнал прогона записан в шапку a8d6bc2
    • План входа: после запроса вводится состояние «Послали запрос» ddff135
    • Дизъюнкция в допущении разбирается СЛУЧАЯМИ: цель сводится дважды, при левом и при правом дизъюнкте порознь, и принимается только когда сошлись оба 06d117e
    • Библиотека сводится в одну программу: девять вернувшихся столкновений разведены, а мерой стал прогон, а не абзац 80205ee
    • Страница про базы говорит про два файла, а не про один, и числа «Провода» считаются fd7d03a
    • План входа: проверочная роль probnik1 с одним витком, и упор назван памятью, а не временем bf25259
    • Фронтенд поехал: цель «js» научилась печатать план, страница осталась без единой строки JavaScript, стенд написан на flang 56b7d47
    • Ссылка пересылается письмом, и по ней приходит ответ: работник отвечает тому, чьего имени в его коде нет e749515
    • Слой доказательств на JavaScript снят: 4958 строк, живого потребителя не было ec375d8
    • Справка доехала до семени: пересборка положила её туда, куда прямое копирование не легло 2b6e184
    • Шапки драйвера и плана входа приведены к тому, что есть на самом деле fe44f6b
    • Имя с провода, назвавшее процесс другого вида, отказывает ОТПРАВИТЕЛЮ по имени: FLANG_PROCESS_ACCEPTS вместо тихой смерти получателя 1d02aaa
    • Одинокая низкая половина считалась у C# нулём знаков: «длина» и «разложить на символы» расходились ВНУТРИ одной цели, 4 входа из 12 — теперь 0 4508d18
    • Вход по scram: четыре RFC-2202 вектора, груз SASL в вести и октетная труба у плана входа 7587800
    • Ядро читает оговорку «пока это число»: правило и четыре подделки при нём 9f655a5
    • Общая половина драйвера вынута в «Провод»: из 83 функций про PostgreSQL только 39 f603430
    • Смерть соседнего узла пережита на 8 целях из 8, и по дороге найдена дыра у rust и c: подхваченному процессу негде было завести состояние 0157027
    • Модуль зовёт соседа, а сторож смотрит на всё дерево, а не на один вход c456b6b
    • Отказы ядра доказательств названы поимённо: 13 из 13, и у каждого сказано, чинится он теоремой или упирается в предел языка bd0ece0
    • Ввозы узла выровнены под новый ствол e21199e3, и две записи базы знаний о пропаже узла dff71d4
    • Снята вторая копия «Мера склейки», оставленная моим слиянием d2f5379
    • Три написанных вручную сличения сняты, и одно из них было неверным 26b206c
    • Сохранение множества отделено от сохранения меры: на одном теле мера доказывается индукцией, множество остаётся сеткой bf14a43
    • Пропажа узла доезжает до надзора на всех восьми целях, прогоном подтверждена на двух fc8f4ec
    • Карта целей написана: 47 клеток вида цели с вердиктом и дословным отказом ядра, перепись библиотеки считается командой 30f0d4c
    • Сторож подделок сверяет список с каталогом в обе стороны — и нашёл четыре подделки, которые не проверялись ничем ec56299
    • Надзор переживает смерть соседнего узла: работа убитого узла подхвачена, подтверждено 2 против 1 30c6072
    • Последняя копия «Целой части» снята: postgres-plan снова доходит до настоящей базы 809311e
    • Клетки карты целей заведены уликами: 30 видов цели прогнаны ведомостью, отказы ядра сняты дословно 24a8195
    • Улика ДО числом: смерть соседнего узла надзор сегодня не замечает — всего 13, подтверждено 1 25fd27a
    • Равенство в теле функции разрешено: запрет держал не цену, а одну запись, и спека требовала обратного 730210d
    • Надзор узла возвращён в напечатанный узел в четвёртый раз: с ним узел с объявленным деревом надзора вообще не поднимался ed90e27
    • Возвращён надзор узла: третья работа, потерянная слиянием, а не коммитом 7ab1393
    • Возвращён надзор узла: третья работа, потерянная слиянием, а не коммитом f7ce5b1
    • Категорная поверхность переписана по прогону нового судьи, и девять расхождений дорожки новичка закрыты 65fa1b1
    • Веер сведён в одну функцию и справка очищена от внутренних слов 2289c06
    • Семя перепечатано на сведённом дереве: судья категорных законов, 166 утверждений библиотеки и поднятый потолок шагов в одном двоичном 0446d33
    • Потолок шагов вычислителя поднят впятеро: был съеден под ноль — 200 000 001 виток из 200 000 000 d49c9df
    • Пробел назван ключами разбора, а сторож состава правил научен второй стороне долга — семя НЕ перепечатано 3e0d540
    • Возвращено правило доказательства о соседних парах, потерянное при чужом сведении: в ядре снова восемь правил 4469811
    • Судья категорных законов вшит в двоичный: подделка отвергается, отчёт называет размер сетки 8557d80
    • Возвращён разбор SASL, потерянный при чужом сведении: план SCRAM снова зовёт существующие функции c1ff756
    • Семя перепечатано на сведённом дереве: индукция по строке и ствол в одном двоичном, обе подделки правила отвергнуты e98d02e
    • http: оговорка о числе при строчном коде — без неё утверждение ложно на не числе f5d20e8
    • Семя перепечатано: слияние ствола потеряло принцип индукции по строке 8701abb
    • Семя перепечатано после догона ствола и сошлось: 7 файлов, 24 684 403 байта 07dc33e
    • Три факта о длине строки заведены, и они дали три утверждения: узким местом был не факт, а то, что мерой длины пользовались два правила ядра из шести 4649484
    • Оснастка перестала звать удалённый компилятор: 38 зовов node flang/bin/flang.mjs в 28 файлах переведены на bootstrap/flang, три скрипта уведены из запрещённого /tmp 8a15ff2
    • Цена утверждений сбита там, где она была настоящей: снят пересчёт и три даровых с вызовами, http переписан на меньшее число действий eed48b8
    • Слияние поправлено: postgres.flang взят целиком со стороны ветки — ввозы были, а тела остались d46ca1f
    • sha256: пересчёт следующего слова в постусловии раунда снят — 2197 мс из 12763 замерено чередованием 0c5b155
    • Печать больше не отсылает к удалённому: вместо «инструментария на Node» названы setoid.flang и setoid-oracle.flang и сказано, что их не запускает ничто bb81144
    • Числа в SPEC слоя доказательств догнали дерево fa4d9a8
    • Ярлык proof:search снят обратно: его файл удалён намеренно, я вернул строку слиянием по ошибке 5ac835a
    • Точка раскрутки перепечатана под правку справки, второе поколение сошлось: 7 файлов, 24 627 498 байт 4d77236
    • Комментарий у «Досыпать байты» больше не ссылается на мёртвый довод 2da3eb8
    • Ширину знака в байтах называет «UTF-8», а разбор протокола её больше не считает 3852f1f
    • C: приставка внешних имён программы обходит занятое так же, как имя файла 223100e
    • Печать перестала выпускать непосуждённое молча: 41 программа из 951 печаталась кодом 0, теперь код 3 с названным пробелом 9f255bb
    • Третья копия разложения кодовой точки в байты снята — и она давно лгала 75edd9e
    • Три точные меры длины у строки: склейка, разложение, знак — плюс восемь доказанных e15e519
    • Охрана делает утверждение о дереве поиска истинным, а ядро научено брать её фактом: конъюнкт из охраны берётся, дизъюнкт — нет 0c4f9b5
    • Проверка замкнутости цели встала на прямой шаг «по примеру», а не только на ветвь индукции 82312ae
    • занятые слова цели больше не доезжают до напечатанного кода 4efe982
    • Прогон враждебными входами: одно моё утверждение оказалось ложным, восемнадцать чужих границ sha256 тоже; все починены оговоркой 382330c
    • База знаний: три стены постусловия сняты, даровость вырождается на постоянной функции, девять обвалов на частичных формах 51046c5
    • lists.flang восстановлен: моё сведение взяло сторону, не разбиравшуюся вовсе — 72 примера снова проходят 8c7aaf9
    • У строки появился принцип индукции, и он закрыл одно утверждение, а не сотню c14cd74
    • http: тридцать три утверждения о разборе запроса, заголовках, чанках и печати 544dd7a
    • postgres: двадцать пять утверждений о вестях, полях и разборе целых 75315ff
    • Пять немых функций заговорили: разбор суммы в постусловии работает, и стена о проекциях снята 8b29e0b
    • sha256 и json: сорок семь утверждений о ходах, разметке и разборе; липкость беды записана явно 9b8dff6
    • base64: тринадцать утверждений о ходах кодирования и четыре ложных утверждения о шестёрках исправлены оговоркой о конечности 6d18434
    • Утверждения о проекциях, опциях и итогах: поле варианта и сравнение сумм читаются в постусловии d80e070
    • Промежуточный факт лёг в ядро и закрыл ноль; настоящий выигрыш дала стоявшая поверхность, а в стволе найдена живая дыра состоятельности f63cdc1
    • Семя перепечатано после слияний imena и uzel и сошлось на втором поколении 440800a
    • Одно действие, записанное вызовом и встроенной формой, доказывается одинаково a2516ce
    • Драйвер PostgreSQL доехал до живой базы: октетная пара восстановлена у хозяина в C, поток драйвера стал октетным f3ce2d9
    • Корпус HTTP перенесён на flang и снова кого-то проверяет: 55 входов, все сошлись, и шапка stdlib/http.flang опять не врёт 16bb043
    • Число строк библиотеки в спеке ядра догнало дерево: 12049 стало 12146 1946857
    • Числа в комментарии и в заметке приведены к парному замеру: 3053 мс против 2404 933041f
    • «Цифра числом» в библиотеке одна: постгрес берёт её ввозом из «Строк» 5076818
    • Семя перепечатано новым компилятором 82617dd
    • Значение привязки в постгресе называется «Значение с длиной впереди» f01450d
    • Разбор «Результата» называется «Успех или запасное», а не как разбор «Возможно» d1e5e58
    • Обрезка в HTTP названа по тому, что снимает: пробельные знаки, а не только пробел 549e214
    • Пять имён «Высшего порядка» называют то, чем функция сделана, а не только итог 450869b
    • Сортировка вставками доказана: свёртка читает шаг постусловием того, кого зовёт 24c5bd8
    • «Приписать в начало» в библиотеке одна: «Высший порядок» ввозит её из «Списков» 2b9fd24
    • «Чётное» в библиотеке одна: «Высший порядок» ввозит её из «Чисел» ae46dd8
    • «Целая часть» в библиотеке одна, живёт в «Числах», и три модуля ввозят её a3907b6
    • «Досыпать байты» в библиотеке одна: SHA-256 берёт её ввозом из «UTF-8» ba10871
    • Правило соседних не отдаётся правилу ограниченности: цель «длина … не больше 1» принадлежит седьмому 578c54b
    • Рекурсия сортировки отделена от дорогого утверждения, и ещё два утверждения utf8 доказаны d31409b
    • Ядро насыщает допущение о соседях: «Г : Х не убывает» распадается на порядок хвоста и границу головы 482a3b8
    • Удалён scripts/build-stdlib-index.mjs: печатник указателя на удалённом разборе, не грузится 8a85f50
    • Ещё одиннадцать утверждений библиотеки доказаны: вхождение по построению, «не больше» вместо «не меньше», разъятые конъюнкции 522b6ea
    • Квантор по соседним парам занял отвергаемую форму «не убывает», ядро получило седьмое правило 0fa312e
    • Удалён flang/examples/web/shortener/serve.mjs: ввозит удалённую реализацию; тот же сценарий уже есть планом на flang 18efb2f
    • Удалён flang/proof/search.mjs: ввозит удалённое ядро на JavaScript и не грузится 0be8536
    • Снят мёртвый узел связи на Node и починена ссылка на него 89bddf4
    • Снят мёртвый прогон примера-библиотеки 7d95994
    • Снято хранилище примера-библиотеки: единственный звавший ушёл 22cff28
    • Снят мёртвый HTTP-хозяин примера-библиотеки 501327b
    • Снят мёртвый мост примера-библиотеки к языку 8f22928
    • Снят мёртвый сетевой хозяин сокращателя f5490b4
    • Снят мёртвый хозяин сокращателя с журналом 8a14567
    • Удалён flang/src/proofterm-probe.mjs: копия удалённого ядра на JavaScript, которая не грузится 5a4ff76
    • Снята мёртвая сверка распределённых узлов (1445 строк) 20b2294
    • Снят мёртвый замер планировщика (2068 строк) d9cd3dd
    • Снят мёртвый разбор типов стенда 07f5e4d
    • Снят мёртвый замер стенки планировщика 52f04bd
    • Снята мёртвая печать стенда в Elixir 1bcfbb1
    • Снята мёртвая печать стенда в C a7f3095
    • Функции как значения: сортировка по сравнению доказана, порядок вперёд и назад сведены тождеством d3fe2b7
    • Сортировка устойчива и доказана: тело разбором вместо свёртки, «не теряет и не добавляет элементов» доказано индукцией по списку 3791c89
    • надзор поднимает упавший процесс на всех восьми целях 051d579
    • надзор поднимает упавший процесс и на цели rust c5333f3
    • надзор поднимает упавший процесс и на цели java 7ea6603
    • надзор поднимает упавший процесс и на цели csharp 436d43c
    • HMAC-SHA1 сходится и с шестым вектором RFC 2202: ключ длиннее блока хешируется 18c83bf
    • надзор поднимает упавший процесс и на цели elixir 6b05374
    • надзор поднимает упавший процесс и на цели go 7e955f4
    • в шапке вывода ключа убран повтор абзаца о цене витка 0b58168
    • Точка раскрутки перепечатана этим деревом: она снова читает свой слой вычислителя 95f149b
    • надзор поднимает упавший процесс и на цели js f99b7b3
    • у каждого утверждения о длине теперь есть пример: рантайм-сторожей в выводе ключа не осталось fd9d170
    • надзор поднимает упавший процесс на живом узле: цель python, прогоном c4ef71d
    • Двести ввозов дерева написаны именем модуля, через ../ осталось восемь 75e9c16
    • Круг «разобрал и собрал обратно» стал выразим: контракт больше не проверяется, пока считается контракт, и петля постусловия развязана преобразованием программы 2e2a698
    • в шапках драйвера и плана названа настоящая причина: пусковой пакет уходит нулём октетов ba6da4d
    • База знаний пополнена тремя заметками, и число строк библиотеки пересчитано 62a66bf
    • SHA-1, HMAC-SHA1 и PBKDF2-HMAC-SHA1 сходятся с векторами FIPS 180-4, RFC 2202 и первыми двумя RFC 6070 f8d89f0
    • двоичный хозяин пишет строку через strlen: пусковой пакет PostgreSQL уходит нулём октетов 4b8ec2a
    • клиент SCRAM-SHA-256 считает доказательство и проверяет подпись сервера 7bd68b7
    • полный узел работает на всех восьми целях: хозяин node.c, 1617 строк, мира 29 afb42a9
    • Цена утверждений словаря измерена и урезана вдвое: 11,4 раза стало 6,3 90d2654
    • В базе знаний записан измеренный факт: двоичный хозяин обрывает содержимое на первом нулевом октете, и драйвер PostgreSQL по проводу не идёт d6bc2a0
    • Доказанное ядром постусловие в напечатанный код больше не едет: на stdlib снято 62 проверки при работе, цена утверждений на сортировке упала с 3,23× до 2,72× b0f372a
    • полный узел работает на цели java: хозяин node.java, 1063 строки, мира 21 aec9fcd
    • Сторож ссылок считает и ещё не добавленные файлы дерева fd12e22
    • Страницы и указатель говорят: модуль подключается по имени, путь — только для чужой ветки и пакета 307068f
    • Десять чисел прозы, разошедшихся с деревом, приведены к замеру; на странице второго замера цены они стали подстановкой 3b325a9
    • Сверки с удалённой реализацией на JavaScript убраны: 44 файла, 31 394 строки 105943c
    • полный узел работает на цели rust: хозяин node.rs, 1158 строк, мира 17 e5b6e15
    • Подделки ядра проверяются на flang: 3 файла, аксиом ноль, нарушений 0 55214e3
    • Ведомость снова считается: утверждения переписаны так, чтобы ядру хватило сорока миллионов шагов 52e8c7a
    • У строки одна мера — знаки: содержит, начинается с и разделить больше не режут знак пополам, а соединить отказывает там, где два знака слились бы в один 5c4eb60
    • У строки одна мера — знаки: содержит, начинается с и разделить больше не режут знак пополам, а соединить отказывает там, где два знака слились бы в один c015f45
    • драйвер PostgreSQL разбирает три сообщения SASL и собирает оба ответа клиента 81be03c
    • Сторож лицензионной разметки написан на flang: 81 публикуемый исходник, 0 отказов 69b26db
    • Узел по ссылкам прогнан на BEAM: работа доехала до имени с провода, а тот же узел без ссылки хоронит работника при «ok:true» и исходе «покой» c41b08c
    • В package.json осталось три крючка npm, а сорок ярлыков зовутся через ./ярлык 88b565f
    • Сторож ссылок написан на flang и ловит ту же беду: битых ссылок 2 из 880 ef6764d
    • На сайте есть страницы про базы данных, процессы и категорную поверхность, дорога «как учить язык дальше» и четыре схемы f53279b
    • цель js вернулась в счёт вторым хозяином node.js: 575 строк, мира 15 91065c9
    • Ввоз без пути разбирается, ищется по имени модуля и виден сторожу fda57b0
    • HMAC-SHA256 сходится со всеми семью векторами RFC 4231, вывод ключа PBKDF2 — с вектором RFC 7914 5f24e14
    • Узел раздаёт работу по именам с провода: адрес и тип принимаемого едут одним значением «Ссылка» от «Т», и груз чужого типа отвергается проверкой типов 3054a47
    • полный узел работает на цели elixir: хозяин node.ex, 877 строк, мира 12 b0905aa
    • ключ приводится к блоку хеша: длиннее блока — хешируется, короче — дополняется нулями d7906b3
    • Календарь разобран весь: двадцать три функции из двадцати четырёх несут утверждение, переживающее подмену тела 01c2d2f
    • свод выдаётся байтами, списки режутся началом и сливаются исключающим или 9de9dcc
    • список байтов печатается шестнадцатеричным, по два знака на байт b462c11
    • слово из тридцати двух разрядов раскладывается на четыре байта и складывается обратно d50e819
    • Ещё семь функций календаря, и ложное утверждение эталона снято c7db98e
    • Пять функций календаря получили содержательные утверждения, и одно из них нашло ошибку в самом календаре 43960e7
    • UTF-8 закрыт: все 59 функций трёх модулей несут содержательные утверждения e1ddd46
    • Разбор UTF-8 обвешан утверждениями: у четырёх функций хода их не было вовсе, «точек не больше, чем байтов» было даровым fe189f2
    • Разговор с базой: четырнадцать утверждений о чтении ответа 147865b
    • Пять функций UTF-8: три даровых «не больше четырёх на символ» сняты, порядок досыпки и первый байт закреплены 5b34787
    • Двенадцать содержательных о словаре связями, и ловушка на повторяющихся ключах поймана до написания e17b981
    • «Списки строк» закрыты, начат UTF-8: найдено первое НЕВЫРАЗИМОЕ — квантор по списку внутри постусловия 6ce107a
    • Двенадцать содержательных о множестве строк: вложенный отбор даёт квантор, которого у языка вроде бы нет 661e02c
    • Ещё пять «Списков строк»: три даровых сняты, у склейки и хвоста утверждений не было вовсе 9f457c7
    • Пять функций «Списков строк»: три даровых сняты, в том числе единственное в библиотеке, закрытое индукцией 95fe659
    • Восемь содержательных об опциональном значении, и второй ход ядра: «равен да» после вызова переводит цель из сетки в доказанное 235b4df
    • Утверждения удешевлены: то же самое сказано за постоянное время вместо обхода 4aadb0e
    • Разговор с базой: восемь утверждений о полях, беде и потоке 7c1424c
    • Восемь содержательных о результате, и найден ход: цель, зеркалящая дерево условий тела, переезжает из сетки в доказанное 49cd47f
    • «Строки» закрыты: 31 функция, 36 утверждений, даровым осталось одно — и оно оставлено нарочно fb2d786
    • Восемь утверждений переписаны: у строки ДВЕ меры, и сшитое из форм разных мер утверждение ложно на одинокой половине суррогата 606b526
    • Семь содержательных утверждений о дереве чисел: сортировка начинается наименьшим, а вставка растит дерево ровно на одно число 598b419
    • Двадцать содержательных утверждений о числах, и все под сторожем: не число, бесконечность и минус ноль ломают половину очевидного 79f0b0a
    • Все двадцать четыре функции словаря хешем разобраны: у двадцати есть утверждение, переживающее подмену тела, у четырёх — записана причина, почему его нет 9a47d8e
    • Разговор с базой: семь утверждений о разборе вести 1bab435
    • Утверждения высшего порядка, функции 26–34: сжато ровно столько, сколько в коротком списке; наименьшее и наибольшее взяты из самого списка 59c5559
    • Утверждения высшего порядка, функции 21–25: на найденном месте стоит подходящее, состав есть два отображения подряд 61039c1
    • Утверждения высшего порядка, функции 16–20: счёт подходящих есть длина отобранного, все и любой сведены к счёту 1c7a491
    • Три вопроса о знаке и «Только цифры»: утверждений не было вовсе, написаны сверкой двух разных способов 6f34c22
    • Шестнадцать содержательных утверждений о словаре деревом: каждое переживает не заглушку, а враждебную сетку 79bf702
    • Утверждения высшего порядка, функции 11–15: порядок вперёд есть порядок назад с переставленными доводами, свёртка пустого есть основание 4b18462
    • Повтор и три обрезки: одно даровое стояло трижды, вместо него круговой ход плюс отсутствие пробела на краю a67aaae
    • Регистр, разложение, переворот, палиндром: четыре даровых заменены, тавтология у палиндрома не написана 16502b6
    • Ещё пять строковых функций: даровое «позиция неотрицательна» снято, граница кругового хода регистра записана честно 3759c1b
    • Последние два ослабленных заменены полной спецификацией обрезки: ослабленных не осталось ни одного a3fcf01
    • Разговор с базой: восемь утверждений о расширенном протоколе и о дополнении 5f7a422
    • Утверждения о первых пяти строковых функциях: даровое «счёт неотрицателен» снято, круговой ход и длины склейки записаны bba04c1
    • Ещё пять утверждений: печать json и таблица знаков по коду; замер даёт 31 содержательное из 34 550115e
    • Утверждения высшего порядка, функции 6–10: слагаемые и сомножители переставимы, меньшее с большим дают ту же сумму 23ddde5
    • Печать перестала выпускать непроверенное; предел шагов 200 млн по замеру; справка разрезана надвое под предел C99; связанная запись отдаётся выходным параметром 489863d
    • Утверждения высшего порядка, функции 1–5: противоположное складывается в ноль, чётное не меняется вычитанием остатка d6dbc7a
    • Утверждения о списках, функции 26–28: удалено ровно столько, сколько было вхождений; пар ровно столько, сколько в коротком списке 09dabe4
    • Восемь функций словаря хешем получили утверждения, которые подмену тела заглушкой не переживают ff4a4a0
    • Разговор с базой: семь утверждений о сборке сообщений клиента da5cf1a
    • Шесть ослабленных утверждений http.flang заменены пятью содержательными: разбор цифр сказан обратностью таблице, цель — покрытием без остатка 7b36681
    • Утверждения о списках, функции 21–25: вставленное стоит в списке, первый элемент переживает отсев, счёт вхождений не ноль ровно тогда, когда значение в списке b097783
    • Разговор с базой: семь утверждений о печати чисел октетами и о кадре 3151002
    • Утверждения о списках, функции 16–20: наименьшее и наибольшее взяты из самого списка, сумма неотрицательных не меньше наибольшего d7a5419
    • Утверждения о списках, функции 11–15: найденное место держит искомое, поиск и обход согласны 4787e69
    • Ещё пять утверждений о http.flang: путь, схема и годность адреса сказаны через то, что они значат 739284d
    • Разговор с базой: шесть утверждений о резке потока по байтам 6d681f2
    • Утверждения о списках, функции 6–10: взятое считается точно, срез до конца отдаёт весь список, промежуток доходит до предела, обход сходится со встроенной формой a530c52
    • Пять тавтологий json.flang переписаны содержательными, и размен назван: ядро их больше не доказывает 7a2b6ae
    • Пять утверждений о http.flang переписаны содержательными: замер подменой тела даёт 9 вместо 5, даровых не осталось f8280b4
    • Утверждения о списках, первые пять функций: счёт звеньев сходится со встроенной длиной, отброшенное и взятое вместе дают весь список b112be1
    • Разговор с базой: первые девять утверждений о знаках и байтах 65f64c3
    • Предел шагов поднят с 40 до 200 млн по замеру: связывание съедает 59 процентов само, ядро 141; обрыв перестал быть бесшумным — шаг, съевший больше половины, называет себя 47210dd
    • Таблица слов языка достаётся прогонщиком, а не командой: словарь и прогон поверхностей ожили — и нашли понятие, выпавшее из двух таблиц из трёх 41fe41c
    • Точка раскрутки перепечатана: предел 200 млн внутри, проверка перед печатью внутри, 24 155 542 байта 6b1017d
    • Проверка перед печатью восстановлена, и разведено чужое столкновение имён, без которого дерево не связывается ad3d73a
    • Столкновения имён считаются обходом текста за 0,1 с — связывание отвечало за 6 минут 0559b9d
    • Круг обхода дерева разрезается записью-нагрузкой: семья печати литералов вынута и доказана 3991810
    • Двоичный печатает поток токенов: две проверки прозы ожили, и одна из них сразу нашла ложное утверждение суточной давности f189a9c
    • Три столкновения имён разведены суффиксом слоя, точка раскрутки перепечатана: 24 217 343 байта 999662d
    • Литерал починен, цена названа числом, и указана настоящая причина дороговизны ядра 5a40cdb
    • Предел шагов поднят по замеру с 40 до 200 миллионов, и обрыв перестал быть бесшумным 06452ff
    • Сторож прироста от «веса» ожил: словарь типов спрашивается у двоичного 6d28909
    • Ведомость печатает обязательства целиком и спуски завершаемости cafc41f
    • Подделки на оба правила прогоняются двоичным, а не мёртвым тестом 25e5fac
    • Точка раскрутки перепечатана: двоичный из семени печатает partialSites 4c071a5
    • Два правила ядра легли вместе: равенство в утверждении и цель-выбор с истинной ветвью c98f2ca
    • Проза догнала дерево с одним компилятором: README на двух языках и man переписаны по прогону fad6a48
    • Согласие спек проверяется планом на flang: 290 строк JavaScript ушли, в fspec/ их не осталось ни одной d3d3933
    • Двоичный научился печатать места частичных форм: ключ partialSites в строке функции 8f6ebad
    • Полный узел заработал на четвёртой цели: хозяин на C# — 1101 строка, мира 14, решений ноль. Сверка восьми целей и печать переведены на двоичный b8119a1
    • Отозвана собственная ошибка: значение-функция сравнивается верно, потому что дефункционализация делает её вариантом — лишняя проверка формы искомого снята, ложная подделка убрана, довод записан на её месте d2bce78
    • Шестой ход ядра: цель-выбор с истинной ветвью — введение дизъюнкции слева, ведь «или» в языке разбирается в «если». Две подделки в дереве, изъятие проверки ветви «то» краснеет доказанной ложью e5730e9
    • Структурное равенство узлов перенесено в ядро доказательства на JavaScript deccd4b
    • Отказ «правила нет» и доводы про аксиомы выровнены между слоем и свидетелем: сверка ядра снова 29 из 30, единственный красный — сторож постоянного шага, он был красным и на github/main 28f8bc4
    • Второе поколение точки раскрутки: шесть файлов из семи совпали с первым, расходится только compiler_flang.c 59f3b70
    • Круг раскрутки замкнут прогоном без Node: 24 мин 50 с, семь файлов совпали байт в байт, и собранный двоичный тоже f913ae0
    • Из справки убран абзац, ставший неправдой: «печать не проверяет типы и завершаемость» 6056021
    • Числа замера подставлены вместо выдуманных: 59 программ, и почти половина — ложные доказательства 00249ca
    • Числа точки раскрутки в bootstrap/README пересчитаны на нынешнем дереве 6b40f75
    • Разрешение конфликта в рантайме на C было неверным и не собиралось: их блоки звали машинерию, которую моя сторона удалила 8dd40e5
    • Печать модуля связи переехала на двоичный: 105 строк из 1117 разошлись, и обе стороны названы 2e6eda9
    • Шестое решающее правило доехало до слоя на flang: файл 03 закрыт вхождением по построению, стало 10 содержательных из 20; подделка про функцию-значение краснеет при снятии проверки формы 880d783
    • Уборка после удаления JavaScript в стволе: мёртвая печать снята, живое оставлено 5afc272
    • Незаконченная правка сторожей и запусков после удаления JavaScript: зафиксировано на обрыве лимита, продолжение по /srv/flang-rabota/sostoyanie-storozha.md 314e03e
    • Скрипт на JavaScript, печатавший точку раскрутки, удалён; релизный архив берёт её готовой из bootstrap/ 12d9867
    • Шестое решающее правило — вхождение по построению — заведено у свидетеля: подделка про чужой элемент и подделка про функцию-значение отвергнуты (перенос в слой на flang ещё не сделан) b8a9d6d
    • Перепечатка точки раскрутки вернулась на путь сборки: печатает двоичный, сверка байт в байт цела 8c051ee
    • Полный узел заработал на третьей цели: go. Мира у хозяина 12 строк — меньше, чем у Python и у JavaScript 2f2570a
    • Допущение индукции приезжает ПО МЕСТУ ВЫЗОВА, переписка равенствами дошла до правила порядка, замкнутая арифметика считается, а склейка фактов по вызову больше не теряет их: стало 9 содержательных из 20 72fe55e
    • Полный узел заработал на второй цели: узел на Python и узел на JavaScript ведут одну программу через настоящий провод ec55079
    • Планировщик и таблица процессов узла переехали на flang: печатаются во все восемь целей, 67 744 сверки, расхождений 0 41050dd
    • JavaScript удалён: 48 файлов, 56 072 строки. Компилятор один — написан на flang, собирается в двоичный, печатает сам себя и во все восемь целей fe8e8a3
    • Точку раскрутки печатает сам двоичный: Node ушёл с пути сборки, обе печати совпали байт в байт 88b877d
    • Справка двоичного починена: перенос строки в тексте был буквальным, сборка -Werror снова чиста 4ed7c26
    • Восемь целей печати в двоичном: десять столкновений имён в замыкании разведены суффиксом слоя, точка раскрутки перепечатана — 23 903 453 байта 9bc9da6
    • Страница руководства называет, что печать проверяет и чего не проверяет a8954a8
    • Столкновение имён снято переименованием: «Хвост строки» обходчика корпуса и языкового сервера — разные функции, совпало только слово; точка раскрутки перепечатана c3bebbf
    • Печать двоичного спрашивает у проверки: разбор, типы, завершаемость и ядро — примеры названы пробелом 4428bcf
    • Четыре новых имени переименованы, а не помилованы; три отставшие ведомости пересняты пофайльно — и рост оказался стволовым 274d3c1
    • SPEC самоприменения знает про соседа по подкаталогу: прогонщик корпуса 18d328d
    • Компилятор на flang догнал правку: поле суммы из одного варианта и в типах, и в вычислителе 7792358
    • Проза, отрицавшая форму, догнала дерево: сторож утверждений чист f54b527
    • Охват сторожа имён пересчитан: двенадцать подделок — образцы тестов, и решение записано 3a0cc72
    • Шапка прогонщика догнала дело: обходчик стал двумя строками 5f2e7a5
    • Точка раскрутки перепечатана после свода слоя ввода-вывода: 7 файлов, 15 513 900 байт, сверка совпала d44898e
    • Числа прозы догнали дерево: 33 переписаны измерителем, три ложные тревоги сторожа пересказаны так, чтобы проза осталась верной, ловушка записана в базу знаний f0e966f
    • Точка раскрутки перепечатана после свода границы входа: 7 файлов, 15 487 176 байт, сверка совпала d20b8eb
    • Ведомость тоже смотрит разобранный вход: программа с четырьмя свойствами печаталась зелёной cb0e9ad
    • Отказ без довода называет и каталог: команда принимает не только файл 81276bd
    • Подсказка «как запустить напечатанное» проверена прогоном и поправлена у трёх целей из восьми 9fff8d6
    • Обходчик примеров дерева переведён на flang test: 35 строк оснастки заменены одним вызовом 9d3c202
    • Числа сайта и описания пересняты на собранном дереве: тотальных 7899 из 9854, доказано ядром 239 из 409, аксиом ноль 9cc1cff
    • Цена нового отклика предъявлена и уплачена: разбор «Отклика» без запасной ветки обязан дописать ветку e468ed3
    • Отчёт различает три числа примеров: свои прогнанные, чужие прогнанные и потерянные с отказом 8b68b57
    • Поле суммы из одного варианта доехало до печати: восемь рантаймов и точка раскрутки 1fe3126
    • Числа прозы догнали дерево, и заметка про срок назвала своё настоящее место — машину состояний связи 93b0a58
    • Проза догнала свод: справка, страница руководства и сайт больше не обещают одну цель из восьми a9cf1aa
    • Прогонщик считает СВОИ примеры отдельно от ввезённых: девять файлов на 11 683 строки отчитывались чужими 6eea2b4
    • Проза догнала бинарник: справка, страница руководства и страница установки называют весь пробел, а не половину 9f464f8
    • Проверки формы написаны НА FLANG: двоичный считает 68 из 68, и отрицательные — обычным «пример» 8c6d8f0
    • Контракт назвал числа после слияния: 17 472 сверки решения о связи и 3672 сверки провода на восьми целях e4d0343
    • Надзоры из плана сверены дважды: со свидетелем и с разбором; конец связи на Python догнал пятый признак aaa8f98
    • Сторожа имён и счёта возвращены в исходное: ноль новых нарушений от этой работы d978de0
    • Свод догнал числа: описание самоприменения перестало отставать от дерева, новая страница замера встала под запрет жаргона f666033
    • Подделка на каждое объявление и проверка на сам сторож: изъятие обязано краснеть a4b0b0d
    • Бинарник перестал принимать неверное молча: суд по составу правил, а не по трём из четырнадцати 345972e
    • Возврат web/app и web/wasm, снесённых по моей ошибке, и снятие закрытой строки долга 9ce17f3
    • Точка раскрутки перепечатана, и собранный двоичный принимает форму сам 27a78ae
    • Хозяин в C догнал словарь: октеты, ввод потомка, срок ключом — и вывод обоих совпал байт в байт 9682dec
    • «надзорыИзПлана» открыта наружу: сосед просил, и это дешевле, чем оставить 12 строк непроверяемыми b0fb737
    • Браузер заговорил со службой: три кириллических маршрута из трёх, было ноль из трёх 6ed8154
    • Обёртка «потерять» убрана: решать, докладывать ли о разрыве, узлу больше нечем 4b59aea
    • Три дыры выразимости закрыты формами, которые разбор прежде отвергал fa953d6
    • Сторож чисел поправлен: число про distributed.mjs называет день и способ замера b575b1d
    • Ввод потомка и срок хозяина проверены планом на flang, а не мимо языка 1d62340
    • Сверка «Долгов» с деревом стала зелёной: 22 раздела из 22 f2150c4
    • Сторож печати плана переехал из рабочего пути: потолок 29 722 строки JavaScript восстановлен b5979b7
    • Вторая цель заговорила: конец связи на Python пожал руку узлу на JavaScript по настоящему сокету 8b50503
    • Улика и починка октетов под проверкой: 557 октетов настоящего PostgreSQL проезжают байт в байт b48a5a9
    • Цена обнаружения дыры в потоке посчитана в контракте: поле в кадре и два числа на связь 328b50a
    • Словарь ввода-вывода вырос на три поручения и один отклик: октеты списком чисел, ввод потомка, срок хозяина ключом d0678d9
    • Напечатанный модуль связи получил лицензионную разметку: печать её не ставит и ставить не должна 4b3ffcc
    • Развилка «два надзора над одним процессом» названа: из трёх исходов два уже видны, третий стоит пятого кадра b1e58b7
    • Контракт распределённости догнал прогоны: девятнадцать испытаний, шесть строк ведомости из «объявлено» в «сделано» d5dd52b
    • Принятый сокет, который не назвался, закрывается за 704 мс при сроке 700 вместо вечного ожидания 6b4e850
    • Контракт и база знаний догнали замер: строка «мир 459, на flang нет» поправлена разбором, а не стиранием aa930df
    • Четыре ветки без прогонов получили прогоны: обратное давление, «через N», запас витков, «остановить» над представителем f1aa403
    • Часы хозяина на C пошли в миллисекундах: было пять одинаковых замеров подряд, стало три разных 45534aa
    • Проза догнала дерево: спецификация описала печать плана, база знаний поправлена, сторож чисел стал чист 2ff91f9
    • Проза слоёв самоприменения и точка раскрутки догнали пометки 773591c
    • Узел перестал решать сам: жизнь связи ему печатает компилятор, и 13 прогонов по настоящим сокетам зелены 76358b0
    • Восемь близнецов печати на flang догнали форму: 8 из 8 сверок зелены c72e881
    • Проза двух примеров догнала анализ: убывание числа он принимает, и цена этого названа 835369e
    • Прогонщик корпуса: течи на путях отказа закрыты, а руководство узнало про каталог и маску cd5e451
    • Эталон надзоров из плана: перевод сверен с разбором на 9 программах, 11 надзоров, изъятие краснеет на всех 113bd5b
    • Близнец на flang догнал форму: лексер, разборщик, типы, вычислитель, формы, отказы 5c8bc18
    • flang в Vim и Neovim: правила подсветки напечатаны из таблицы языка, а сервер найден четырьмя путями и проверен настоящим редактором 3fd8b4e
    • Срок первого знакомства: сосед, который не поднимется, назван за 803 мс вместо вечного молчания 0ab9213
    • Сокеты и часы стали решением на flang: жизнь связи — чистая машина состояний, 307 строк эталона 0a0dfeb
    • Путь установки проверяется целиком: четыре способа, семь команд на каждом, и шестая поломка ловится прогоном, а не человеком 71c5dee
    • «Пробелы» объявлены натуральным числом, и сторож ушёл: доказательство стало статическим a06d3be
    • Имена в прогонщике корпуса развёрнуты, а числа прозы догнали дерево f931f0a
    • Двести девяносто три функции корпуса были тотальными и без пометки: анализ берёт их как есть f2d60bb
    • Заготовка заявки в linguist перестала ссылаться на четыре каталога, которых нет 35a4343
    • Контракт разбора моделей назван тем, что он делает, и его критерий готовности приведён к дереву 80ad639
    • Руководство, описание языка и спецификация приведены к дереву: старого проекта в них больше нет 2fd8298
    • Сторож жаргона: внутреннее слово больше не имеет права попасть в текст для читателя со стороны 642bab6
    • Найдена ошибка библиотеки: Content-Length считается знаками, а не октетами — и чинится не одной строкой 97e109f
    • Правка рантайма 0.5.1 догнала точку раскрутки: две строки исходника, шесть килобайт печати 3bfe929
    • Слой доказательств получил первые собственные примеры: пять на обязательства и ядро 1c1df90
    • Точка раскрутки догнала исходники: слияние с конфликтом оставило её на день позади da2b7f3
    • Форма напечатана во все восемь целей: рантаймы сошлись знак в знак на 15 входах 8550b98
    • Хозяин вкладки перестал ввозить компилятор, и приложение поехало из напечатанного модуля: 1 768 447 байт стали 102 675 d68bd04
    • Страница руководства называет две цели печати вместо одной: c и elixir, а недостающих шесть 9c78283
    • Сокращатель перестал держать свою копию: 67 строк сняты, числа деревьев пересчитаны прогонами c679a9e
    • Суррогат решено отвергать: 1 112 064 скалярных значения замыкают круг, все до одного dbbf2c8
    • Печать плана написана на flang и сверена побайтово: 108 программ корпуса из 108, включая программу с планом 6464f66
    • Предел раскодирования в http закрыт: круг замыкается на 1 114 112 точках из 1 114 112, было 95 cf2e8de
    • Справка emit перестала врать про обе цели: C# отбрасывает недостижимое, а границы входа у чужой программы нет ни у одной b18a089
    • Числа сверки восьми целей в контракте пересчитаны прогоном: 456 вопросов, 3648 сверок 17bf1df
    • Справка двоичного больше не врёт про Java: целей названо две, и про каждую сказано, чего у неё нет d94c2d7
    • Однобуквенное имя в эталоне переименовано: сторож имён поймал «м» 789a6f7
    • Печать перестала молчать о плане, а JavaScript научился его печатать: восемь целей отвечают, семь отказом e0afec6
    • Двоичный печатает в Java: 7 столкновений имён разведено, долг границы входа закрыт, и напечатанное запускается 0d17aa7
    • Граница входа теперь строится на flang: программа, напечатанная двоичным, больше не берёт -3 на типе «нат» cf67fa3
    • Форма «символ по коду» заведена в рабочем пути: 21-я встроенная, обратная к «код символа» feb12e8
    • Границы кадров переехали в эталон и сверены рваным потоком: 797 знаков, резаных по 7, дают ровно 10 писем c4c2f37
    • flang test берёт каталог и маску: прогонщик корпуса написан на flang bfa9872
    • Перепись переcчитана прогоном: 1 764 байта на процесс не воспроизвелись, вышло 1 948 a00ecb0
    • Из npm теперь ставится тот же двоичный компилятор, что из brew: расхождений было 54 из 59, стало 7 — и все семь названы ed4090a
    • Суффикс цели переведён на CSharp, как у карты разведки и соседних веток: 316 имён из 324 совпали с картой поимённо 891455e
    • Двоичный печатает в Python: долг границы входа закрыт 161 строкой на flang, ключ --target заведён 127 строками C, вне границы расхождений 0 из 102 68d7a82
    • Четыре беды одной команды: каталог заводится, жаргон убран, рантайм едет в архиве, тест называет обе стороны 8beae33
    • Граница входа у печати в JavaScript печатается, а не вычитается: сверка со свидетелем стала 107 из 107 на всех байтах 9ef941f
    • Вход по паролю открытым текстом проверен настоящей базой: поддержаны два способа из шести 104ac38
    • Ведомость отвечает первой строкой: 26 строк на одну функцию стали 14, словарь ушёл за ключ ea5619b
    • Отказы компилятора проверяются на flang: 9 примеров вместо проверок на JavaScript d9d68c7
    • Целое длиннее пятнадцати цифр объявлено неразобранным, и минус ноль проверен примерами 52afcce
    • Контракт распределённости догнал прогоны: вторая цель посчитана числом, кворум назван развилкой 5a0ea6a
    • Убран тип, который никто не может построить, и названо следствие: типов колонок у программы нет adb48d0
    • Двоичный печатает в C# из командной строки, и долг границы входа закрыт: напечатанное собирается dotnet и отвечает {"ok":true} a3a5001
    • База знаний: четыре заметки о том, что выяснилось на драйвере, и охват сторожа имён пересчитан aeb3f07
    • Двоичный печатает в Elixir: ключ --target elixir работает, а долг границы входа закрыт — 108 программ из 108 побайтово без единого вычитания 07040fb
    • Двоичный печатает в JavaScript: 102 программы корпуса из 102 совпали с Node побайтово, кроме одного названного блока cae4c01
    • Закрыты три дыры, найденные замером по настоящим службам дерева a85747e
    • Печать в JavaScript въехала в замыкание двоичного: неподвижная точка сошлась 37 из 37, C вырос на 1 056 833 байта d18e567
    • Драйвер PostgreSQL на flang: настоящая база отвечает, и граница языка названа числом c7690d4
    • Воспроизводимость по семени предъявлена прогоном: 6 семян, 12 прогонов, 6 разных журналов и ни одного расхождения внутри семени bb6f826
    • Предел пробега стал ДОКАЗАННЫМ сроком: 47 витков вместо миллиона у 55 мест из 60 aef7ed3
    • Двоичный печатает в Go: 163 программы корпуса, 159 расходятся со свидетелем только границей входа, 1 — транслитерацией, и оба расхождения есть у цели «c» 2beb35e
    • Проза о границе выправлена: эталон stampFile написан, и правило «файл один — беда его» названо на обеих сторонах 14bb1f7
    • Двоичный печатает в Python: 302 столкновения имён разведены суффиксом, 391 объявление цели переименовано a8f1938
    • Обратная сторона провода приехала в эталон: раскодирование на flang, 402 значения корпуса сходятся оборотом d45c8b8
    • Двоичный отвечает редактору: `flang lsp` — 47 столкновений имён разведено, сессия LSP сверена с Node побайтово 6516ea7
    • Печать в C# втащена в замыкание двоичного: 4261 функция против 3919, ноль столкновений, сборка без единого предупреждения 70bf3c2
    • Печать в Rust втащена в замыкание двоичного: 2 столкновения имён на 234 объявления, и долг границы входа закрыт — 108 из 108 программ побайтово 892780f
    • Печать в Elixir втащена в замыкание двоичного: 262 столкновения имён разведены суффиксом, замыкание выросло до 400 типов и 4294 функций a18bb10
    • Печать в Java втащена в замыкание двоичного: 7 столкновений имён разведено, связанных функций 3919 → 4247 a153b73
    • Имена печати в JavaScript разведены суффиксом: 141 столкновение стало 0, корпус сошёлся 107 из 107 6d86ab1
    • Печать в Go встала в замыкание двоичного: столкновение одно из 197 привезённых имён, и границу входа эталон печатает сам 38b9fb2
    • Печать в C# развела все свои имена: 395 объявлений получили суффикс «шарп», сверка со свидетелем осталась 107 из 107 b2998c6
    • ADR-0003: решение «свою BEAM писать не надо» отменено, своя машина пишется 44070ac
    • Ключ --args и стрелка описаны там, где их ищут: 5 прогонов в страницы, 3 написания стрелки названы 926abf4
    • Ведомость пакета берётся у прошедшей проверки: второе ядро в дереве убрано a444d75
    • Сторож имён считал копии деревьев исполнителей: 809 файлов превратились в 9708 471bbee
    • Свидетель словаря свойств стёрт: 163 строки JavaScript, ни одной проверки не потеряно c937d8b
    • Свидетель сетки нарушений стёрт: 202 строки JavaScript, ни одной проверки не потеряно 1be151e
    • Бюджет ядра свой: 40 млн витков роняли команду там, где свидетель отвечал за 87 мс a2b0986
    • Свидетель равенства морфизмов стёрт: 786 строк JavaScript, одиннадцать проверок названы 6cda817
    • Свидетель законов множеств стёрт: 292 строки JavaScript, одна проверка снята 5a40bea
    • Свидетель квадрата связи стёрт: 363 строки JavaScript, десять проверок названы 2e8bc56
    • Ядро доказательств переключено на слой flang: три файла и 6 442 строки ушли из рабочего пути 1a8fb1d
    • Транслит ушёл из релизного архива: компилятор печатается в compiler_flang.c, и починено это в имени модуля, а не в генераторе ec3806e
    • Служба на flang ходит наружу: «Открыть соединение» открывает сырой сокет, а вся сетевая четвёрка названа одним словом 66b9406
    • Восьмой ход доехал до эталона на flang: постусловие вызванного стало фактом, а круг закрыт неподвижной точкой c5dfbc9
    • Четыре свидетеля ушли с рабочего пути: 27 файлов и 37 081 строка стали 23 и 35 991 0ac93b3
    • Девять программ сошлись побайтово: сторона на flang читает порядок соседей и свёртку, растущую ровно на один 435756a
    • Исход счёта стал суммой из четырёх: отказ называет ЛОЖЬ, и расхождений 14 из 324 0f3d722

    правок, не меняющих язык снаружи: 598 Примечания к выпуску v0.6.0

  6. 0.5.1 записей: 348
    • Выпуск 0.5.1: сборка на Mac починена, и скрипт выпуска перестал искать несуществующий файл 6d845f9
    • Библиотечная дверь напечатанной программы проверяет типы: чужой код получал мусор молча c5b64d4
    • Пакет назван именем языка, и три страницы перестали учить команде, которой нет 80d1288
    • Сборка на macOS чинится вторым макросом: `brew install` не доходил до конца ни у кого на Mac d187ac0
    • Четыре сторожа прозы снова зелёные: 53 числа пересчитаны деревом, а не памятью 1dcf19a
    • Признак у оракула функтора читался печатью и был ложен всегда; четыре заметки базы знаний 18f9de9
    • SHA-256 на flang: 37 функций, все тотальные, сверено на пяти официальных векторах a09bae1
    • Сетка отношений множеств переключена на слой: checkSetLaws больше ничего не решает 87aa8cd
    • Байты UTF-8: перевод текста в байты и байтов в кодовые точки, 16 функций 7277eb9
    • Двоичный собирает пакет: `flang package` — десятая из десяти команд c5c53a3
    • Исход прогона стал замкнутой суммой и у эталона на flang b18aa61
    • Равенство морфизмов переключено на слой: setoid.mjs ушёл из рабочего пути b343fb6
    • Двоичный читает замок: программа собирается из груза, прежняя схема отвергается ee8f60a
    • Граница вычислителя: исход прогона стал замкнутой суммой у свидетеля 8c56ffe
    • Двоичный собирает замок: `flang lock` без Node, 20 сверок байт в байт 2b8deaf
    • Ответ ядра наружу оставлен побайтово прежним: список неоплаченных — связь внутри ядра 892c1b0
    • Ядро: восьмой ход — постусловие вызванного как факт на месте вызова fb0187f
    • Точка раскрутки перепечатана поверх слитого ствола: 3868 функций 3fdb904
    • io: место отказа, имя плана в пределе и код 3 у ненайденного плана 3289026
    • Двоичный умеет io: хозяин с эффектами написан на C, план прогоняется без Node 5318745
    • Точка раскрутки перепечатана: восемь новых функций эталона в bootstrap/ 2002462
    • Правило «не минус ноль» перенесено на сторону flang: поле, два источника и четвёртый проход сужения e050585
    • Точки входа плана на flang: найти, начать, шагнуть 063ac89
    • Точка раскрутки перепечатана поверх слитого ствола: 3847 функций a9a6f31
    • Три коротких имени в точке входа развёрнуты: сторож имён вернулся к прежнему долгу b78af89
    • Правило «свёртка растёт ровно на один» и сличение с точностью до порядка соседей 24291c7
    • Поле «не минус ноль» на числовом типе и дно из неравенства нулю cf33543
    • Двоичный умеет facts: вердикт байт в байт как у свидетеля 69c88a3
    • Замок схемы 2: brotli из формата убран, адрес модуля — sha256 исходника 5b6e0c7
    • Факт-чекинг втащен в замыкание компилятора: 21 столкновение имён разведено 5e597ac
    • Указатель библиотеки пересобран после слияния ствола 6dcfa7d
    • Слияние ствола, перепечатка точки раскрутки и измеренный ноль на именной границе 06e9a93
    • Числа прозы и замеров перемерены под семнадцатый модуль ce8f540
    • Корпус: ещё четыре цепочки номеров переписаны на «нат» целиком ba9abe9
    • Корпус: шесть параметров-номеров объявлены «нат» вместо «число» 84e19e3
    • Точка раскрутки перепечатана: правило случаев доехало до C caa29d7
    • Класс номера: правило целости встало в ПАРУ, плюс два правила границ — 89 из 271 стало 92 e0330da
    • Квадрат связи переключён на слой: рабочий путь 29 файлов -> 28 c60a5ec
    • Двоичный умеет `ast`: дерево разбора байт в байт как у свидетеля 734bfa3
    • Оракул функтора написан на flang и проходит проверку: 320 строк, 0 диагностик 03163f8
    • Шапка failures.flang говорит, откуда файл: две редакции, что взято и почему не склейкой 5989955
    • Сторона на flang: тот же принцип, позванный с пути постусловия df540a7
    • Двенадцать однобуквенных имён взятой редакции переименованы: сторож имён вернулся к прежнему числу a44cf80
    • Запросы и ответы: 17 постусловий там, где их не было ни одного 021842d
    • Страница сокращателя: замер шести нужд службы и раздел про журнал a9d5f31
    • Класс номера: целость номера читается со сторожа «остаток от 1 равен 0» — 86 из 271 стало 89 c3ef865
    • Улика на основание 64: 520 случаев сверки с Buffer, расхождений ноль 0ffdd35
    • Индукция по разбору на пути объявления: ядро само ведёт базу и шаг ccc4ebb
    • Хозяин: allowHalfOpen — служба получила право подумать между запросом и ответом 18a49ba
    • Основание 64 закрыта: кодирование и раскодирование по RFC 4648 60f1ae7
    • Служба связана с журналом упреждающей записи: подтверждение только после записи c909f7f
    • Две редакции failures.flang сведены: взята полная, таблица кодов приехала из второй b59b281
    • Основание 64: азбука, шестёрки и тройка байтов 3aeee7f
    • Свидетель законов выброшен: семь модулей на JavaScript и 207 проверок 3a6c59f
    • Примеры доехали до двоичного и до прозы; долг печати бинарника назван числом ab0f88e
    • Предел сетки моноида и изоморфизма: копия в пути вместо ленивого чтения у слоя 5385822
    • Моноид и изоморфизм переключены на flang: рабочий путь 36 файлов и 37 371 строка → 29 и 36 349 a0e7802
    • Оракул моноида и изоморфизма переехал в дерево: 713 и 6 строк таблиц сошлись знак в знак 454d610
    • Числа прозы о свидетеле поправлены на измеренные: 2140 строк, а не 2141 0b88c4c
    • Утверждений о планировщике стало 15, доказаны ядром все 15; четыре ожидаемых проверены на выразимость поимённо 72ac2a4
    • Сверка планировщика выросла с 264 исполнений до 336, изъятий с 11 до 19, словарь сверяется на 174 программах 78875d4
    • Планировщик процессов на flang: 260 строк стали 2048, сверка на 264 исполнениях сходится 964d0a5
    • Числа прозы догнали дерево после слияния ствола 0a87f260: 13 расхождений d63ec85
    • Ствол влит; три коротких имени выправлены; четыре заметки в базе знаний 9319177
    • Имена файлов и сторожевые списки приведены к новому словарю 3925559
    • Код переведён на новый словарь, точка раскрутки перепечатана 7278119
    • Спецификация самоприменения: состояние шести генераторов кода догнало дерево da35879
    • Проза переведена на новый словарь: эталон — слой на flang, свидетель — JavaScript 7862010
    • Дыра уравнения ветви закрыта проверкой: образец, перевязавший разбираемое имя 5e64b9d
    • SPEC ядра доказательств: раздел о мере списка с числами и списком подделок 8a95ed3
    • Версия набора правил 11: отказ правила порядка называет все случаи меры целиком 6e47681
    • Точка раскрутки перепечатана после правки лексера: 13 304 108 байт 82424e9
    • Порядок таблицы лексера сведён с образцом; раскладка связывания и долг имён переснята 8033924
    • Эталон догнал свидетеля на доказанной непустоте: семь целей печати из восьми e0ce3f4
    • Числа README и flang/self/SPEC.md догнали дерево: сторож раскладки чист a12a847
    • Порядок ключей results восстановлен: свойства зовутся на прежнем месте таблицы, а не после неё 12f6497
    • Тождество читает длину как меру: отказов stdlib 80 -> 77, корпус 111 открытых c66267b
    • Сторож чисел прозы чист: последние пять расхождений выправлены d4cc71a
    • Постусловие границы снято: сторож всего дерева зелен на этом файле 94fea93
    • Обрубок в имени оракула развёрнут: «знач» стал «вычисленное» 370123e
    • Сторож на собранный HTML, оглавление через разбор, замер сборки двоичного перемерен 0042336
    • Девять чисел прозы догнали дерево; в стороже осталось 47 34be51e
    • Постусловие зовёт только местные имена: сторож всего дерева зелен c80884c
    • Пять свойств переключены на flang: рабочий путь 36 файлов и 37 270 строк → 31 и 36 530 98b5310
    • check гоняет примеры: ложный пример больше не печатается в цель 11d2f02
    • Форма диагностики, границы чисел и кодовые точки: 270 новых точек сверки, 0 расхождений 0eb103b
    • Сторона на flang: мера списка перенесена целиком, близнец сошёлся с эталоном 59b927d
    • Учебник, страница руководства и обходчики зовут команду, а не путь в сборку 271de16
    • Одно имя у программы — «flang»: так называет её и сборка из исходников b517cc8
    • Имя вида и описание значения сверены прямо, границы представления названы e8601c9
    • Голая «flang» открывает оболочку; «--help», «-h», «--version» работают 0fd73cf
    • Лицензионный гейт снова зелёный: шесть файлов замера конкурентности несут SPDX ac6acba
    • Числа прозы переписаны измерителем, а не руками: сторож чисел научился чинить a1d4489
    • Равенство значений и порядок процента: 303 пары и 484 пары, 0 расхождений e7481d2
    • Пара догнана после слияния: справка io у близнеца и потолок ствола c742d5a
    • Оракул свойств переехал в дерево: 441 строка на flang, 706 строк таблиц сошлись знак в знак 605cd5c
    • Пакеты: библиотека в одном файле, подключение одной строкой, сборка без сети d1dbff6
    • Побайтовая сверка встроенных форм: 8001 имя, 556 отказов, 320 помощников, 214 программ — 0 расхождений 62048d2
    • Сторона на flang для горячей замены: первая редакция 0d1de88
    • Правило порядка научено мере списка: 91 отказ stdlib стало 80 465d947
    • Словарь встроенных форм собран в один файл на flang: имена, синонимы, арности, частичность 55bac10
    • Витрина Rosetta научилась показывать доказанное: 5 задач из 14 вместо 2 20bf2ec
    • Словарь перевёрнут в шести сторонах и сверке: flang — эталон, JavaScript — свидетель 3801845
    • Версионирование документации: числа подставляются из замера, страница выпусков печатается из тегов f24199c
    • Монотонность считает flang: пятое свойство сверено, все 24 записи корпуса совпали 3fee55d
    • Частичный порядок считает flang: три закона и карта здоровых сверены побайтово 4f187b2
    • Дистрибутивность считает flang: обе стороны закона сверены побайтово, расхождений 0 d13349a
    • Идемпотентность считает flang: обе формы закона сверены побайтово, расхождений 0 958c8eb
    • Коммутативность считает flang: 226 программ корпуса сверены побайтово, расхождений 0 b0c1153
    • `compat.mjs` разделён: перевод модели FTS вышел из рабочего пути, 230 строк вон 0f04207
    • Роадмап и разборы перемерены деревом; спецификация уехала в конец раздела «Язык» 70aa6f2
    • Витрина Rosetta научилась показывать доказанное: 5 задач из 14 вместо 2 565d863
    • `obligations.mjs` вышел из рабочего пути разделением: 252 строки JavaScript вон 51a789a
    • README журнала: числа, границы и честный список того, чего он НЕ гарантирует 6a8c926
    • Постусловия у словаря хешем: ещё 9 утверждений о границах хеша a72d544
    • План дописывания и прогон корпуса: 75 проверок, все зелёные 00a35e0
    • Журнал упреждающей записи написан на flang: 25 функций, все тотальные, сторожей ноль a2e15c9
    • Близнец: убрана мёртвая «Без последней части», тавтология заменена утверждением ebf4318
    • Границы `подстрока` доказываются четырьмя фактами, и именная граница пережила вычитание: 19 мест из 212 стало 52 45d7856
    • DISTRIBUTED.md: ведомость близнеца и честный список невыразимого 3790a83
    • Постусловия у высшего порядка: ещё 12 утверждений о длине результата c5f3450
    • Постусловия у словаря, дерева чисел и дерева-словаря: ещё 12 утверждений 83791df
    • Постусловия у логики, опций, результата и списков строк: ещё 21 утверждение 3a33ad8
    • Близнец распределённости: flang/self/distributed.flang 55587dd
    • Постусловия у списков, строк и множеств: 39 утверждений о длине и знаке d18c1e9
    • Седьмое поручение и код выхода: «Запустить процесс» отвечает двумя откликами, а `flang io` различает «нашёл беду» (1) и «сам сломался» (3) db9a25f
    • Два места, где дерево врало само себе, перемерены прогоном: 57 773 в 57 и зазор ядра 0 из 301 633e411
    • Права на два файла возвращены: их сменил npm, а не правка ff65da0
    • Четыре страницы: установка, операции, пакеты, разборы — всё прогнано dbf2df9
    • Словарь ввода-вывода вырос на «Перечислить каталог»: 1122 проверки дерева перестали упираться в «прочитать можно только названный файл» 120e688
    • Порождённый C перепечатан после языкового сервера 063d2f4
    • Числа прозы перемерены деревом после всех семи слияний, и дубли в своде сняты db97373
    • Порождённый C перепечатан после обхода занятых имён, три числа прозы перемерены 73bee76
    • Порождённый C и рантайм перепечатаны после арены памяти d7c344c
    • Порождённый C перепечатан после встречи со стволом 763c8b8
    • Порождённый C перепечатан после зазора ядра a5be510
    • Точка раскрутки перепечатана после встречи со стволом 7f64a15
    • Ссылка на эталон наборов поправлена: файл переехал, а восемь близнецов не знали 4d372c5
    • Довод «почему счёт не аксиома» написан, а не обойдён: сторож аксиом поймал слово без довода fd48792
    • Правило записано в SPEC: имя модуля и имена, занятые целью cd3844e
    • Точка раскрутки перепечатана на новом стволе: 7 файлов, 12 883 135 байт 9b8a92b
    • Проза догнала закрытый зазор: план выброса эталона и спека ядра говорят 291 из 291 8e9f1a4
    • Два файла вернулись в ведомость: `только` не покрывал того, что ввёз вычислитель 34bf938
    • Четвёртый ход проведён руками: три программы зазора сошлись с эталоном 115ba46
    • Вычислитель ввезён в ядро-близнец: четвёртый ход получил чем считать aef255a
    • Пятнадцать функций «Свободные имена» переехали слоем ниже: решать про замкнутость обязан тот файл, где стоит ход 8025fba
    • Обход стал суффиксом у всех восьми: приставка `flang_` у бэкенда уже занята 0593d2c
    • Числа прозы сведены прогоном: обход занятых имён прибавил строк и функций 705a83b
    • Точка раскрутки перепечатана: обход занятых имён въехал в замыкание edffa79
    • Таблицы занятого переехали из `src/emit`: тот каталог — реестр целей, а не полка 8c0d260
    • Печать обходит имена, занятые целью: восемь бэкендов и восемь близнецов ff1d751
    • Дефект назван и померен: имена, занятые стандартной библиотекой цели 99fff55
    • Сторожа сведены после границ номера: ведомость, потолок, слой types b27d04a
    • `вес` въехал в близнеца: 24 отказа по имени сняты, остались два по ядру 742d251
    • Точный десятичный въехал в двоичный: 27 примеров денег бинарник берёт сам bf2fdf7
    • Масштаб доехал до близнеца: точный десятичный стал типом, а не именем 88b043c
    • Справка близнеца на flang догнала эталон: раздел про замок есть в обоих 50a776e
    • Потолок рабочего пути поднят на 88 строк и разобран пофайлово; замок в путь не входит a800cfc
    • Предел на проверку: зависший файл называет себя, а не молчит до чужого срока e08797d
    • Близнец догнал: `длина` помнит контейнер и на flang, точка раскрутки перепечатана, неподвижная точка сошлась 4cc5703
    • Печать груза считается по тексту, а не по канону: переставленный ключ отвергнут 1f2274d
    • Сторож временных каталогов: прогон, оставивший мусор, называет его числом 5229097
    • Отказ `flang lock` без файла встал до ввоза модуля, а не после aa7bdba
    • Сторож предобработки заведён в npm-скрипты: comparison:check рядом с emit:check e992c28
    • Замок без склада записан числами: 7,6 КБ, цена имён 25 %, обновление целиком 48b6cac
    • Порядок ключей в замке сохранён: печать из замка совпала с печатью из исходников 1be224c
    • `длина X` помнит X: три тавтологии из корпуса убраны, доказанных мест 18 → 19 effdfae
    • Порт отдаётся системе всегда: закрытие слушающего сокета вписано в flang io, и в finally, а не после 99de1d6
    • Точка раскрутки перепечатана после правки близнеца: неподвижная точка сошлась 6171774
    • Замок несёт сами зависимости: программа собирается из него без исходников 9643adf
    • Ведомость точки раскрутки: байты сошлись точно, время сборки перемерено (77 -> ~90 с) 720d35e
    • Свод подстроки измерен и записан: 6 мест из 82, и препятствие названо числом d0cc771
    • Точка раскрутки перепечатана в том же коммите, что и правка близнеца 0f9bc2e
    • Числа прозы сведены с деревом сторожем, а не памятью: восемнадцать расхождений закрыты, счётчик чист 76b8736
    • Числа прозы догнали дерево: три из них сдвинула эта правка, восемнадцать пришли с слиянием 312b6da
    • Числа в прозе догнали дерево: сторож был красный в 7 местах, стал чистым 512551d
    • Красные сверены ИМЕНАМИ: заявленная чистая база занижена, и ни один красный не мой f18656f
    • Цена нового варианта отклика предъявлена компилятором, а не молчанием: разбор, перечислявший «Отклик» целиком, отказался собираться 1966aef
    • Близнец отношения двух имён закрыт: третье поле границы и четыре факта подстроки fac342b
    • Числа словаря догнали дерево: восемь поручений, девятнадцать вариантов, и предсказание в plan.flang сверено с тем, что вышло 6f867e2
    • Приложение живёт и в настоящем браузере: 6 сверок из 6, 111 тактов часами b417faa
    • Служба работает ПО СЕТИ: шестнадцать связей через настоящий сокет, коды сошлись с прогоном через значение все шестнадцать 23110e6
    • Область на накопитель свёртки: 8 МиБ вместо 710 на четырёх тысячах, ценой 1,37 раза по времени 6f3faed
    • Сеть, которой ждут: три поручения, один отклик, и служба сокращателя переехала на сокет без единой правки в самой службе 940fdda
    • Приложение в браузере: 16 тотальных функций на flang, 31 пример, 0 упавших 7595f62
    • Отношение ДВУХ ИМЁН вписано: у `подстроки` не хватало ровно одного факта из четырёх d80cc71
    • Словарь ввода-вывода узнал экран: было 5 поручений и 7 откликов, стало 7 и 10 f7bead5
    • Перемерено на стволе: пять команд на месте, `--proof` печатает, память врала в 410 раз b8011b3
    • Близнец кладёт и вторую отметку: непустота доехала до дерева, 144 программы из 148 размечены как эталон 39266f7
    • Ведомость точки раскрутки перемерена: таблица врала вдвое, а команду `run` не знала 5627441
    • Смешанные письменности сняты нацело: 228 → 0, невидимая беда убрана первой 5bdb9ba
    • Точка раскрутки перепечатана под новый близнец типизатора: 8 017 599 байт, семь файлов 8b9351f
    • Корпус спрошен: 18 мест из 213, и настоящая причина отказа названа — она не сторож, а ТИП 34a6d5d
    • Типизатор близнеца отдаёт доказанное число на узел: отметка была, класть её было некому 4822a42
    • Сторож имён: правило про имя проверяется прогоном, корпус сверяется поимённо 663c570
    • Сторож чисел успокоен: «122 строки» рядом с именем файла читалось как число строк файла aff49d2
    • Ведомость корпуса сведена с деревом: сорок восемь доказанных, четыре новые строки службы, 57 из 57 c774c02
    • Цена четвёртого хода перемерена на трёх оставшихся: препятствие не подготовка, а проводка fa5e4a4
    • JSON вынут из ветки: он требует слова «приписать», которого в этом дереве нет, и ломал 230 проверок библиотеки 8160bb8
    • Каталог службы описан числами: 1 258 строк, 7 утверждений, 5 закрыто ядром, 4 недостачи с ценой 5439c23
    • Служба работает СЕГОДНЯ: запрос из файла, ответ в файл, два поручения, 243 из 243 639ee1c
    • Незавершаемость в планировщике: запас кончился у одного, служба жива — 243 из 243, сетка 200 семян 7cb98c6
    • Ещё пять мест номера доказаны корпусом: 7 из 214 стало 14, и оба узора правки названы 83c781a
    • Верхняя граница номера ВПИСАНА В КОРПУС: два места доказаны, и цена правки названа f5321a6
    • Служба целиком: байты пришли — байты ушли, шестнадцать запросов подряд, четыре из них злонамеренных 532054c
    • Исход службы объявлен типом, и три утверждения о нём закрыты ядром: 4 из 4, ноль на веру bf1731f
    • Хранилище ссылок: 12 тотальных функций, 17 примеров, ни одного места в памяти a09494c
    • Мирская половина HTTP, JSON и время подтянуты в дерево: 2 596 строк библиотеки под настоящую службу ded8e96
    • Три сторожа сведены после пары бинарника 1458c6b
    • Долг столбца снят из «Долгов», а вход с эмодзи заведён и в stdlib: числа свода пересчитаны прогоном, а не перенесены 7d6427b
    • Точка раскрутки перепечатана под столбец в единицах UTF-16: две единицы трансляции, +4853 байта 2b4f503
    • Столбец близнеца лексера переведён в единицы UTF-16: десять расхождений с эталоном закрыты, вход с эмодзи стоит в корпусе сверки e62f07b
    • Четыре следа слияния в проверках закрыты: правил пять, и своды пересчитаны b4fbddf
    • Близнец расходился с эталоном СТОЛБЦОМ отказа — и поймал это краевой случай a909d8c
    • Длинная строка отказа разложена, числа прозы догнали: 4507 → 4511 0bf3f0e
    • Два поколения без Node сошлись: flang₂ печатает ровно то же, что flang₁ 8d5e555
    • Дыра в `flang run` названа: ключ `--index-base` туда не доезжает вовсе 70c93fe
    • Числа прозы про парсер догнали дерево: 4434 → 4507 и 6947 → 6981 8953394
    • Сверка AST всего корпуса нашла ЕДИНСТВЕННОЕ расхождение — и оно в тексте отказа d5a8d38
    • Точка раскрутки перепечатана: близнец парсера тронут — артефакт догнал 59d882d
    • Переходный уклад закрыт: SPEC называет слово, а ключ ставит базу только молчащим e168890
    • Близнец слова на flang, подделки и починка двух изъятий после слияния 8ea6190
    • Слово в языке: `элемент начиная с 0` объявляет базу номера в самом файле 0b1e901
    • Заслон печати у близнеца: сверка заговорила и назвала место, которого я не ждал de27451
    • Оба ключа доведены до близнеца связывания: неподвижная точка 25 из 25 1c9a1f8
    • Близнец границы номера закрыт: читатель и база одним шагом, и сверка получила голос 6956ef5
    • SPEC: дверь договора записана и за близнецами, а не только за эталоном 59defb1
    • Отмена знания при перевязке имени в близнеце: 14 мест связывания, три места сужения нетронуты 3ea18a0
    • Точка раскрутки перепечатана: bootstrap/ снова та печать, что дают исходники 094d0cc
    • Дверь договора доехала до близнецов Java, C#, Elixir и JavaScript: восемь из восьми a581c58
    • Близнец границы номера начат: поле и сбор написаны, и третий замер объёма снова оказался меньше 1440e67
    • Помеха семи целям названа числом: столкновения имён по каждой, 2…309 a226e62
    • Дверь договора доехала до близнецов Rust и Python: четыре цели из восьми c578416
    • «Одно слово на функцию» опровергнуто замером, зато найдена и закрыта настоящая дыра 86c8492
    • Указатель библиотеки перепечатан, а охват ядра дорос до сорока восьми: седьмой доказанной в библиотеке стала «Сколько заголовков» e04e366
    • Дверь договора доехала до близнецов C и Go: две цели из восьми 836d2ca
    • Объём долга близнеца поправлен по дереву: имена границы кладутся в «Вид отрезка», а не в «Вид числа» 743aa1a
    • База номера стала свойством ПРОГРАММЫ: нестрогая граница заработала, 2 места из 214 стали 7 eb5e4bb
    • Кеш убран из рабочего пути за явное согласие: потолок JavaScript не пробит 4f93a6d
    • Форма из справки заработала: `--function «Имя»` принимают обе реализации, а не одна e016093
    • Числа строк в прозе подтянуты за новыми файлами: сторож счёта снова чист 34cde47
    • Указатель перепечатан, числа прозы сведены со сторожем ad47552
    • Заголовок оболочки не расширен: каталог печати заводит человек, а не `emit` e33eaa8
    • Транслит из имени каталога убран: docs/rukovodstvo → docs/guide, 35 ссылок в 10 файлах переписаны b11e7e1
    • Предусловие в библиотеке снято печатью: восемь целей дороже одного утверждения 8f5f6b2
    • Замер выигрыша от кеша записан числом рядом с кешом, и число неприятное 3d7b791
    • Зазор ведомости назван числом в дереве: 33 из 37 знак в знак, 4 — в сторону «сказал меньше» 30ae079
    • Числа README и обзора догнали дерево: библиотека выросла до четырнадцати модулей, корпус восьми целей — до 96 программ f5d4b2a
    • Плагин asdf стало откуда ставить: репозиторий заведён, а расхождение копий стережётся fb53566
    • Числа прозы догнали дерево после правки: 7048 строк `src/types.mjs` вместо 7040 0e1d768
    • Именной верх переносится через числовое сужение: вложенный `если` перестал отнимать доказанное ee87a3d
    • Именная дорога корпусом НЕ проверена, и близнец назван долгом с объёмом 86ff939
    • Класс номера измерен поимённо: свод 279 у 195 не сдвинулся, и причин шесть 2284db8
    • datetime.flang: 24 функции, 77 примеров, ноль сторожей в рантайме 8f0439d
    • Замеры библиотеки пересчитаны прогоном: 259 функций в четырнадцати модулях, индукции доступны 65 — впервые с работы над списками вырос и счёт по суммам dfef247
    • Бинарник получил `check --proof` и `test`; ядро в дороге проверки отвергает подделку тем же кодом 068f4ff
    • Печать в C въехала в двоичный: шесть файлов из семи байт в байт без Node 0d4d9d3
    • Корпус прогнан по модулю: 54 входа сошлись, обрезки целого запроса по одному байту все до единого «неполон» 1320dcd
    • Утверждения json: высказано 8, ядром закрыто 5 df7e9f1
    • Кеш вердиктов ядра лёг под адрес содержимого, и на слово ему не верят ab31126
    • Верх, выраженный ИМЕНЕМ: границы номера доказываются, и заслон печати назван ee0bed6
    • Печать json и корпус зелёный: 91 из 91, и корпус нашёл ошибку 8a04b6d
    • Печать ответа и запроса: Content-Length считается по телу, а не берётся из заголовков — расхождение длины с телом это шов, по которому вставляют чужой запрос b3ff394
    • Разбор запроса целиком: три исхода вместо двух, и «неполон» отдельным вариантом — обрезанный запрос ждут, а не рвут связь f4d16d6
    • json.flang: разметка и разбор стопкой — 31 функция, 60 примеров, всё чисто 7da938c
    • Ядро, примеры и ведомость доехали до точек входа компилятора; граница входа у прогона 9259a2b
    • Процентное кодирование и адрес: кодирование полное, раскодирование доводит до знака только печатные ASCII — обратного моста к «код символа» в языке нет, и предел назван, а не обойдён 39b699c
    • Адрес определения считается от нормализованного разбора: четыре поверхности дают один хеш a29eddb
    • Чистая половина http начата: куски строк, сравнение имён без регистра и целое из десятичной без знака — отрицательная длина тела не число, а нападение 16cfc1f
    • Список asdf состоит из версий, которые ставятся: релиз без архива в него не попадает 1c41ffe
    • json.flang: значение, знаки и число из текста — 15 функций, чисто 2a0b401
    • Точка раскрутки перепечатана: перебазис оставил её на 3431 функции против 3439 в дереве e655a49
    • Команда `npm run build`, которой нет, убрана из обоих README и ещё из шести файлов e5882c1
    • Восемь транслитных имён в fspec переименованы английскими словами 9930d16
    • Перебазис на настоящий ствол: разошлось 3 из 275, ствол пришёл красным на 8 87cafd7
    • Близнец сетки починен после переименований двоичного; ведомость и долги сведены b6b3e78
    • Дерево сведено после двух слияний: раскрутка, ведомость, долги и потолок bfa96b4
    • Откат слияния work/totality-hole отменён: препятствие, из-за которого он был, снято 5dcdace
    • Ядро доказательства въехало: три предела перемерены, рост оказался квадратичным 2e7fe72
    • Цена договора в печати названа числом: «ноль байт» было верно и было дефектом aebc7ec
    • Близнец горячей замены откачен; ведомость переснята, долг и потолок выправлены 5a7a460
    • Договор доехал до двери C# и Elixir: восемь целей из восьми fba8e3b
    • Договор доехал до двери Rust и Java: шесть целей из восьми 6c088c7
    • Договор доехал до двери Go и C: четыре цели из восьми отказывают тем же кодом d15b127
    • Договор доехал до двери Python: вызов по имени проверяет `требует` 00e72c1
    • Договор доехал до границы напечатанной программы: JavaScript отказывает тем же кодом 3c8620e
    • Ядро отцеплено от замыкания: три бюджета не пускают, названы числом; 36 имён остаются 5269b86
    • Слияние work/totality-hole откачено: `требует` не доезжает до печати 574094e
    • Ядро доказательства втащено в двоичный: 36 переименований, стена оказалась в памяти 30b5c69
    • «Состояние» точки входа раскрутки названо в той же форме, что у прочих долгов f013022
    • Третий шаг: корпус честные предусловия НЕ выдержал, и препятствий два 66c39a4
    • Сторож чисел чист: одиннадцать чисел прозы пересчитаны деревом, а не подогнаны 6272b76
    • Проза сведена с деревом прогоном: сторож чисел чист, было 75 расхождений c1267dd
    • `flang run` появился в двоичном: программа считается без Node и без «cc» 15bf721
    • Два честных `требует` в stdlib: свод сдвинулся 279 → 277, и цена измерена e015095
    • Числа «Долгов» и журнал догнали слияние: два сторожа снова зелёные 628bdb2
    • Два числа прозы, разошедшихся от правки, догнали дерево 98db0a0
    • Восьмой близнец доучен форме «приписать»: 101 программа из 101 вместо 94 781e88c
    • Довод про чтение `требует` типизатором записан в SPEC; числа прозы догнали дерево 1d98aba
    • Числа собственных страниц сайта сведены с измерителем: «семь языков» стало восемью, и заведён сторож на 17 чисел ef4568b
    • `требует` читается фактом в типизаторе: сторож у `голова` снят по-настоящему 8074d09
    • Числа страницы поверхностей взяты под сторожа: 16 фраз собираются из прогона и обязаны найтись дословно cbdc412
    • Формула Homebrew перестала врать: ссылка отдаёт 200, а sha256 сверен со скачанным 2a293ce
    • Словарь языка заведён печатью из таблицы поверхностей: 148 понятий, сторож краснеет двумя способами c25d482
    • `flang/src/proof.mjs` стёрт: ведомость доказательства осталась только на flang, 1 300 строк вон 1b2ac67
    • 84 заметки базы знаний переименованы: транслит уступил английским словам 3a6f55b
    • Имена файлов и адреса страниц переведены с транслита на английские слова 5961343
    • Вычислитель втащен в двоичный: помеха названа числом — три столкновения имён 7f95df5
    • Довод про четвёртое правило записан в SPEC, числа прозы догнали измеритель ac0e344
    • Шапка близнеца замены выправлена: долг назван там, где он есть, и красный список сверен именами 8fedd1d
    • Числа корпуса и утверждения догнали форму: свёртки в корпусе больше нет 9fb1491
    • Сверка близнеца замены влита: 57 пар сетки сошлись побайтово, три изъятия краснеют 61e0c72
    • Словарь между спеками встроен в `flang check`: три порчи краснеют своими кодами 2d40dc4
    • Каталог недостач и рантайм Elixir догнали форму: три места, где ветка отстала a03ff94
    • Правило «цель есть допущение» (Γ, A ⊢ A) — на обеих сторонах разом 0d9f3c2
    • Ведомость самоприменения выправлена: строка `io.mjs` больше не «не начат» 39a127b
    • Проверка планов встала на flang: 18 случаев корпуса, 4 порчи из 4 краснеют 2c0583a
    • Близнец горячей замены собран: три условия из четырёх, связывание и типы чисты 1ea0748
    • Сторож четырёх поверхностей покраснел на цитате — цитата снята 3c0b6ae
    • Три рантайма ветки чинены под нынешний main: `приписать` собиралось не тем API c212afc
    • Числа прозы догнали дерево: 21 расхождение, внесённое вливанием, закрыто 891c66d
    • Тень программы перенесена на flang: 204 тени сверены побайтово, 161 Мб 240fe33
    • Семь близнецов доучены форме: зазор между эталоном и близнецом закрыт ed99f5b
    • Требование до кода: `требует` у левого края, ноль новых слов 9e280d1
    • Версия набора правил 9, и число впервые сдвинулось вместе со счётом правил 522444d
    • Сторожа числа правил пересчитаны: правил ЧЕТЫРЕ, и это стоит списком 24e7ba8
    • Близнец догнал: правило 4 написано и на flang, и подделки под него отвергнуты 0b78b6c
    • Четвёртое решающее правило: порядок по построению, граница — ТЕРМ f377d57
    • Подделка на четвёртый ход написана: замкнутая посылка, дающая «нет» 53f9bca
    • Проза о восьмом близнеце пересчитана прогоном: 3268 строк было приговором, 3667 стало делом 0b6de04
    • Сверка восьмого близнеца зелена целиком: 101 из 101, 44 из 44 меры, 10 из 10 процессов c02bc00
    • Числа улики пересчитаны счётом строк, а не длиной разбиения: 1768 и 20 038 01478fa
    • Словарь действий конкурентности считает flang: 162 программы сверены побайтово, расхождений 0 6a05890
    • Четвёртый ход ядра перенесён в близнеца: вычисление замкнутой цели 4912ba4
    • Близнец печати в JS догнал эталон: 101 программа из 101 совпадает побайтово ce77628
    • Пятнадцать помощников рантайма доехали в близнеца: стек под объявленный предел и вид «добавить» 3ecc7fd
    • Множество отказов считает flang: 1358 функций корпуса сверены побайтово, расхождений 0 7bb77ac
    • Черновик близнеца печати в JS снят с неслитой ветки: замер выбрал догон, а не переписывание c6db14b
    • Проза догнала дерево: контракт слоя назвал шаг 8, четырнадцать чисел пересчитаны измерителем 6832cf9
    • Служба на flang и 26 проверок к ней: подделка краснеет на 1724 чередованиях из 6000 0df70ad
    • Хозяин у службы: одна цель печати из восьми исполняет поручение, семь отказывают названным кодом 4b87bf0
    • Седьмое действие процесса: поручение выдаётся, отклик приходит сообщением, а видов отказа как было десять 657f058
    • Числа сторожей сведены до конца: частичных форм 846, непустотой снято 363, «вес» доказывает 45 227dc02
    • Числа корпуса сведены с деревом после прибавки языкового сервера: функций 6 855, утверждений 149 73cbea5
    • Языковой сервер получил близнеца на flang: протокол, документы и диагностика сверены с эталоном знак в знак на 40 сообщениях 70f1ebb
    • Таблица ключевых слов близнеца лексера сведена с образцом порядком: 138 фраз из 625 стояли не на своём месте 564c9be
    • Библиотека и примеры больше не платят длиной списка за приписывание в начало ff0c2d7
    • Список наращивается с двух концов: приписывание в начало стало встроенной формой и напечатано во все восемь целей c486f90

    правок, не меняющих язык снаружи: 360 Примечания к выпуску v0.5.1

  7. 0.5.0 записей: 538
    • Словарь между спеками стал проверяемым: имена отображения сверяются с обеими спеками ee69bb7
    • Причины двенадцати сеток списка и четырёх сеток ВПО измерены попыткой 58883e1
    • Семь мёртвых функций вынуты из близнеца: имя без зова — обещание без исполнения ab00383
    • Числа сверки вписаны в шапку близнеца: 177 вызовов, 160 решает сам ff98b88
    • Названо, чего не хватило «неделимому остатку»: делитель — имя, а не литерал f4b28ab
    • Причина расхождения синонимов названа счётом: спрашивает одна сверка из семи 6a558e4
    • Довод «builtins.mjs не переписывается» проверен прогоном: он устарел, файл уже переписан девятью частями 26386d0
    • Три утверждения «Кратчайшего пути» переехали из сетки в доказанное ядром 461382c
    • Сверка на 177 вызовах зелена: расхождений 0, близнец решает 160 из 177 6451f2a
    • Доказано «удвоенное неотрицательно»: теорема в пять строк, ноль строк ядра dfc4e77
    • «the Fibonacci step is non-negative» — та же теорема на английской поверхности 78e3101
    • «шаг Фибоначчи неотрицателен» переехало из сетки в доказанное ядром 0911f0e
    • Теги программы на flang: список случаев диспетчера перестал держаться на JavaScript f39fef1
    • Близнец командной строки разбирает вызов: тридцать ключей, четыре отказа до работы 6953da3
    • Противоречие двух спек на flang не ловится ничем: прогон дал код выхода 0, и заведён сторож, который краснеет dc98f68
    • Граница чистого и эффектов в командной строке измерена: 258 строк из 700 2589478
    • Вычислитель-близнец расклеен трёхсторонним слиянием: обе стороны целы bcf6044
    • Три сторожа и вычислитель-близнец расклеены: моё слияние сложило все стороны разом e1e73c1
    • Числа прозы сведены с деревом после шести слияний: 63 из 63, правлена проза 4afc76c
    • Точка раскрутки перепечатана после замера стека в wasm 9e253ac
    • Число строк склоняется: 33 921 это «строка», а не «строк» 909aa97
    • Точка раскрутки перепечатана после всех слияний 85d1da7
    • Точка раскрутки перепечатана после слияния монады: печать, а не текстовое слияние 6b78689
    • Заголовок Д1 больше не спорит со своим же абзацем: «три захода» это заказ, «девять» это итог d38dd01
    • В4 переставлен на своё место: раздел В3 больше не разорван посередине 39d067a
    • Цена лишней ветви в горячем цикле вычислителя измерена: знак отрицательный на шести прогонах из шести 24fc942
    • Порог окупаемости пула ИЗМЕРЕН: считали K больше шести, вышло K = 1, а настоящий порог — один готовый процесс на поток c9013c4
    • Очередь готовых стала деревом рангов: 207 с → 13,8 с при миллионе одновременно готовых, журнал побайтово тот же 8705369
    • Потолок задержки есть: снятый пробег доигрывается с места, и самый дорогой падает с 4418 витков до 512 1303e55
    • Объявленный предел глубины в wasm стал пределом: было молчание сторожа и смерть вкладки на глубине 60, стало 7 474 кадра и текст эталона 7bd8800
    • Журнал вливаний вышел на сайт: 138 вливаний, у 105 названо сдвинувшееся число, страниц стало 103 a9e95f7
    • Ограниченность считает flang: 18 893 функции корпуса сверены побайтово, расхождений 0 8423ce6
    • Точка раскрутки перепечатана после слияния седьмого слоя: 8 220 897 байт, сверка 24 из 24 eb6b71b
    • Числа прозы сведены с последним замером: 258 из 263, изъятий 29 2211e1f
    • Сверка связывания названа прогоном: 260 программ, 21 129 объявлений, расхождений 0 d28ea5c
    • Изъятие слоя поверхностей записано числом: снят вызов — красно с первого случая 5beac91
    • Числа корпуса пересчитаны, а не подогнаны: 6484 функции, 364 места непустоты 9351e8d
    • Печать самоприменения перешагнула сторож шагов: доказано, что не перебором, и лимит поднят 3667f02
    • Принцип по свёртке перенесён: три формы тела закрыты, разошлось 5 из 262 9656e5b
    • Цена разбора корпуса названа верно: 26 минут против 2, а не против 40 секунд 1c52ed0
    • Числа прозы пересчитаны после подрезки слоя: 1308 строк, 135 функций, 28 обычных 8049501
    • Точка раскрутки перепечатана, а сверка достижимости получила семь дурных наборов вместо пустого корпуса 0b65388
    • Числа корпуса сведены с деревом после фазы 4: 35 функций близнеца, сторожей ноль 56b5b19
    • Проза сведена с деревом: седьмой слой назван в четырёх документах, четыре числа пересчитаны 9215298
    • Равенство морфизмов и естественность квадрата считает flang: 231 программа сверена побайтово, расхождений 0 bbbe72e
    • Четыре поверхности диагностики закрыты: цитата говорит на языке файла, 0 расхождений из 186 1c2d7bf
    • Сличение по вызову перенесено в близнеца: разошлось 6 из 260 823c40b
    • Связывание вынуто седьмым слоем: сверка выросла с 13 синтетических наборов до 232 программ, расхождений было 23 678eb34
    • Пробел разбора закрыт последним словом: 148 слов из 148, `в монаде` разворачивается f900156
    • Разбор цели по условию перенесён в близнеца: разошлось 7 из 257 4dfe57c
    • Квадрат связи модулей считает flang: 231 программа корпуса сверена побайтово, расхождений 0 f8ee781
    • Цена четвёртого хода переписана прогоном: три программы зазора из четырёх считают замкнутую цель за 875–1395 мс, четвёртая упирается в другой файл 3b876dd
    • Разворачивание монад вынуто отдельным слоем: парсеру оно стоит 90 функций, а не 1154 dfbd5fe
    • Подготовка программы у близнеца-вычислителя удешевлена в 15,5 раза: 1074 функции считаются за 792 мс вместо исчерпанного предела в 40 000 000 витков 6282a6a
    • Захват части аргументов работает обеими сторонами: 47 случаев из 56, которых приставка не брала fb33469
    • Числа дерева сведены с измерителем после трёх переносов: правлена проза и ожидания, сторожа не тронуты 864a34d
    • Долг разборщика, которого нет с 15 августа, снят из четырёх шапок и двух спецификаций: запрещённых слов осталось одно из девяти 94d9c1e
    • Зазор самоприменения сведён прогоном: 236 из 250 и 14 поимённо вместо 237 из 249 и 12, разбирается 147 слов из 148 180f668
    • Порождение процессов есть, а стен осталась одна из трёх: две заметки базы поправлены прогоном, копия в /srv перестала ломать ссылку 7ca513a
    • Каррирование замерено до работы: фаза 4 упирается в одно правило, написанное дважды d67acaa
    • Принцип по отрезку «нат» перенесён: носителей стало два, разошлось 7 из 255 f3cdc08
    • Два долга ведомости в SPEC самоприменения закрыты и заменены обратным утверждением: близнец знает все шесть слов и все девять видов законов 5893037
    • Ведомость доказательства вышла из рабочего пути на JavaScript: `flang check --proof` считает слоем на flang, эталона в пути нет ba78881
    • Теорема держится у библиотечной функции: связанный AST 102 из 102 вместо 101 86bf881
    • Носители обещания сверены побайтово на 234 программах вместо восьми, расхождений 0 cc6f70c
    • Числа прозы сведены с выросшим близнецом ведомости: правлена проза, а не сторож 3104d20
    • Гипотеза «дано» типизируется обеими сторонами: три улики из трёх отвергнуты 5b68cbf
    • Тихий конфликт двух веток найден прогоном: -flto увидел незаполненный итог прогона ccd7248
    • Связывание на flang научилось нести теорему входного файла — как эталон 1a5bfe4
    • Цена четвёртого хода измерена, а не оценена: 12 счётов из 43 зовов, подготовка не кончается на 1074 функциях d8f4e58
    • Точные десятичные и правило остатка перенесены: разошлось 10 из 252 ea9486c
    • Точка раскрутки и проза догнали многоядерный планировщик: правлен пересказ, а не сторож 74ad18a
    • Ведомость на flang печатает утверждения, категорию, связь и пять свойств: 226 программ дерева из 226 сходятся с эталоном побайтово, было 0 78734f7
    • Начальная алгебра встроенного списка перенесена в близнеца: разошлось 11 из 251 deb945d
    • Готовый процесс кладут на СВОЙ склад, а не на склад по остатку от номера 38895bc
    • Числа прозы сведены с деревом после слияния: правлена проза, а не сторож f56409b
    • Изъятие показало дыру в наборе: замок процесса не держал ничего — теперь Р6 cb7054b
    • Стенды замера умеют оба режима: поле «workers» в measure.sh и новый by-cores.sh d9d6f2f
    • Зазор с близнецом назван поимённо, а не расширен: два расхождения из трёх стоят в списке, третье закрыто переносом текста 7e50f41
    • Корпусная сверка шести целей пошла по ветви отметок и нашла там сломанный список Elixir aadfd1f
    • Заметка в каталоге linguist названа точно: заявка на flang уже написана, а не «ещё не приехала» ab0c5da
    • Сверка тега вернулась в напечатанный код: прогон корпуса нашёл, где доказательство опиралось на ложную посылку d31a635
    • Последние четыре места, называвшие уехавшее, приведены к дереву fa14b4b
    • Ломоть пробегов отвязан от пачки: потолок был в общем замке, и это измерено ac13526
    • Три заметки в базу знаний и поправка к четвёртой: как разнимать проекты, не потеряв проверку 5debace
    • flang-lsp перестал молчать на непонятом доводе: команда, отвечающая кодом 0 и ноль байт, неотличима от сломанной ee9ea8a
    • Старый проект FTS вынесен из репозитория: 357 файлов, 180 755 строк — и всё, что его называло, приведено к дереву fdfb0aa
    • Найдено зависание на тридцати двух потоках, и оно было не в скорости aea6649
    • Зависимость сличения по вызову названа заранее, чтобы её нельзя было сломать молча c006085
    • Отметка анализа перестала считаться частью написанного: ведомость вернула 60 утверждений из 138 35e0509
    • Две поправки честности: сличение по вызову не берёт допущение индукции, а разбор по условию не берётся за связыватель 5d564c6
    • Чтение .fts стало внятным отказом, а не падением: свой код, указание, где взять убранное, и закрытая дыра рядом 10aacac
    • Побайтовая сверка с близнецом сохранена: пятый ход включается доводом, как четвёртый 1ccc24c
    • Проверка типа не печатается там, где тип доказан: арифметика быстрее в 4,9 раза, всё вместе — в 1,6 2854d2b
    • Ядро научилось цепляться за три формы тела: условие, свёртку и вызов 43e61f2
    • Близнец обязательств стал истиной, а эталон — вторым мнением: отношение перевёрнуто там, где оно уже настоящее c7b2ae1
    • ThreadSanitizer нашёл гонку на признаке остановки — признак ушёл под замок eace078
    • Рабочий режим планировщика: потоки берут процессы, а не пробеги e771cff
    • Обязательства в рабочем пути считает flang, а не JavaScript: мост переехал в дерево e5c4be2
    • Шесть файлов, от которых зависят все восемь целей печати, переехали в flang: не копия, а перенос 4114962
    • Межмодульная оптимизация включена по умолчанию: напечатанный C стал быстрее в 1,14 раза c903983
    • Языковая полоса GitHub: сырьё замеров исключено, а про .flang сказана правда a6761f4
    • Сайт документации собирается из docs одной командой, без единой зависимости ab948f3
    • Документация разложена по назначению: руководство в docs/rukovodstvo/, у docs/ появился указатель 74a4832
    • Ведомость пересчитана на собранном дереве, и проза догнала её числами: 6429 функций, 4893 тотальных 17d6853
    • Близнец ядра доказательства догнал эталон на 242 программах из 249, а остаток зазора назван поимённо 7cc5804
    • Сырьё замера отсечено от корпусов одной строкой: 41 красная проверка была не про язык d9ff37c
    • Ведомость пересчитана ОДИН раз на собранном дереве: 6383 функции, 4868 тотальных, 138 утверждений 676c662
    • Спецификация назвала четвёртый ход, его три условия и долг: у вычисления близнеца на flang нет 7e931a2
    • Замкнутая цель стала вычисляться: тот же ход, каким закрывает случай «по примеру», позван из «свести» 4011dae
    • Три леммы об алфавите: регистры не пересекаются, обе половины начинают имя 14cf309
    • Две леммы о чужих знаках в имени: один символ и объявленный пробел 4de7a81
    • Ещё одна цена переезда, и снова измеренная: связывание на flang теряет теорему 94a45e8
    • Пять лемм об алфавите идентификатора C и о приставке помощников b3eaae4
    • Долг переезда закрыт наполовину, и вторая половина оказалась платной ae711fc
    • Дерево догнало правки: точка раскрутки пересобрана, восемь чисел прозы пересчитаны, сверка ведомости узнала пятый источник законов 92aa3b1
    • Числа корпуса догнали близнеца: 5775 функций, 4406 тотальных, 4200 без проверок ac79f62
    • Монада перестала пропадать при связывании: латентная дыра того же класса закрыта, пока её никто не открыл 8e956f4
    • Проверка предела запроса переехала под ifdef: без процессов она никому не нужна bdc54c3
    • Контракт теорката получил главу про связь модулей — вместе со списком того, чего этот слой не проверяет и не будет 1581aa4
    • Третий отказ порождения записан в контракт и в карту, счётчик строк пересчитан e38555f
    • Вычитка планировщика нашла пять мест: одно портило доставку, четыре были заряжены 6409d9d
    • Вердикт нарушенного закона назван словом эталона: «violated», а не второе слово о том же a530d59
    • Три модуля с тремя взглядами на один заказ легли в дерево: связь между ними стала проверяемой, и три обычные ошибки её ломают 7ff6895
    • Спецификация назвала починку близнеца и цену слепой сверки 6e96787
    • Близнец начальной алгебры догнал починку захвата, и сверка перестала быть слепой к ней 7c6c5f7
    • Две леммы, закрывшие две записанные недостачи: длина списка и глубина дерева bd711f1
    • Разборщик на flang догнал эталон: перевод данных на объекте функтора разбирается обоими побайтово 7aaf7f7
    • Слияние с main прошло, и слияние показало три вещи 9ed03d8
    • Спецификация назвала шесть дыр за сутки, захват подстановки и новый охват сторожа a988c07
    • Третья стенка измерена, а не оценена: порождение открыло дверь, которой не было 713a82d
    • Сортировка вставками досчитывает там, где раньше отказывала: 1500 элементов под пределом 8 ГиБ 37b5639
    • Сторож смотрит на ВСЕ утверждения корпуса, и первым делом нашёл два ложных в витрине 12bfe59
    • Двойники стендов собираются скриптом: «а что было бы» стало повторяемым d477ccd
    • Близнец ядра догнал правило умножения: слитая ветка писалась под эталон, который с тех пор уехал 8d7fc6b
    • Подстановка перестала захватывать чужое имя: «доказано индукцией» о лжи закрыто 9689a37
    • Связь модулей перестала быть сличением имён: у объекта функтора появился перевод данных, и квадрат считается на сетке cbbd42e
    • Округление названо своим именем, а минимум и максимум взяты как честный носитель — находка соседней ветки, проверенная своими законами e568ce0
    • Незаконченное сохранено на обрыве лимита: работа прервана посреди шага, проверок не было b535718
    • Незаконченное сохранено на обрыве лимита: работа прервана посреди шага, проверок не было 05207a1
    • Незаконченное сохранено на обрыве лимита: работа прервана посреди шага, проверок не было 1241a67
    • Четвёртый прогон примера: занятое имя роняет сервер, и это сверяется побайтово 4f1bcab
    • Две леммы об ограде таблицы ключевых слов: разрез попал на границу пары 5905ea0
    • Сторож длины дерева пересчитал строки: 24 379 → 24 673 27341fc
    • Сторож проводом узнал шестое действие: «породить» на проводе такой же вариант 1ee68f7
    • Число строк компилятора в self/SPEC.md догнало дерево: 24379 стало 24745 ce5cdc3
    • Спецификация назвала четвёртый связыватель у сторожа захвата и общее у четырёх дыр 4f1da99
    • Три леммы о ширине символа в UTF-8, и одна выдуманная ложь по дороге 20f8bca
    • Замер ПОСЛЕ теми же стендами: три таблицы, два двойника и один опровергнутый довод 5f5626b
    • Найдена своя дыра того же класса: сторож захвата имени отстал от языка на связыватель 28e9ca1
    • Монотонность: разрешение кешировать — и первое место, где сломанное свойство останавливает зависящее от него 2f0f878
    • Контракт и карта догнали порождение: Б1 и Б2 закрыты, «породить нет» вычеркнуто f451412
    • Частичный порядок: три закона порознь, и антисимметрия — та, без которой расхождение реплик становится законным 9f05f49
    • Спецификация слоя назвала сторожа на класс и то, чего он не покрывает 1e2d77c
    • Дистрибутивность: одну строку заказа можно разбить на две, и это теперь разрешение, а не обещание f6bc341
    • Точка раскрутки перепечатана: близнец лексера узнал девятое слово 171880d
    • Две леммы о регистре латиницы: поднятие и правда обращает опускание dd65d62
    • Коммутативность: моноид впервые называет третий закон, и недостача из cat/SPEC.md закрыта 5f5bbdb
    • Две леммы о списке русских окончаний: длинные впереди, пустых нет c209cae
    • Отказ и вывод типа перестали расходиться: деление конечного положительного на вес законно в обоих 7cb887e
    • Две леммы о синонимах встроенных форм: цель есть и разрешение в один шаг d111f81
    • Идемпотентность: язык впервые умеет сказать «повторить безопасно», и это разрешение выдаётся, а не подразумевается 01cc4d4
    • Числа сверок в спецификациях догнали дерево: 195 и 201 программа, изъятий двадцать пять becea64
    • Лемма о знаках полной ширины: двойники стоят парами 626e3ef
    • Четыре леммы об алфавите лексера: парность регистра и граница ID_Start aa2062b
    • Цена типа названа числом: 21 функция корпуса из 139 становится доказуемо неотрицательной 120f1fa
    • Две леммы о транслитерации имён для C: на выходе только буквы идентификатора f147801
    • Куча процесса покупается полукилобайтом, а не 64 КиБ: вторая стена замера cc2cebe
    • Две леммы о таблицах встроенных форм для C: помощник без арности не спрячется d0f3fd2
    • Три леммы об экранировании JSON: обратная косая и правда стоит первой 5e605a8
    • Счёт строк эталона в self/SPEC.md догнал дерево: 25044 вместо 24379 818416e
    • Зазор близнеца до эталона на main измерен прогоном: решение расходится на четырёх программах, текст ещё на шести 4fc24a3
    • Отрезок [0,+∞] стал типом «вес»: три действия разрешены, четыре отказывают с предъявленной парой 8f90221
    • Пример: сервер заводит обработчика на каждый запрос и переживает его смерть 7cfb69d
    • Рантайм C: указатель имён вместо перебора, и таблица процессов, которая растёт 60fafee
    • Порождение в эталоне: имя даёт родитель, потому что вернуть его нечем bacbb23
    • Английская поверхность «Фибоначчи шагом» догнала русскую, и сверка пар научилась именам утверждений a83440c
    • Две леммы о списке длин ключевых фраз: порядок и дно жадной склейки b8f21e6
    • Три леммы о таблицах типов FTS: цепочка из двух переводов не рвётся 954d646
    • Носитель моноида читается по имени уточнения: до этой строки не собирался ни один моноид над «нат» f47a535
    • Охват ядра вырос на две функции, и обе получили утверждения там же, где стоят: 33 высказано, 31 доказано 9aaf00c
    • Три леммы о знаках лексера FTS: одиночный знак и правда один символ 15e82fb
    • Три леммы о метках связывания: знак вопроса и несовпадение 753a6b4
    • Три леммы об ограде перечня точных имён: без неё крайние имена не находятся f615d8a
    • Числа корпуса и проза догнали предусловие 03908f1
    • Точка раскрутки перепечатана: 447 обёрток компилятора получили область на вызов 12f81cd
    • Арена в цели C научилась откатываться: сортировка слиянием 4000 чисел берёт 3,5 МиБ вместо 1655 e342156
    • Три леммы о точной сетке double: потолок пришпилен сверху, дно ему симметрично 24bc46a
    • Две леммы о носителе обещания: код без пробела, слово и код пустеют вместе 78fa12e
    • Обстановка шага перестала пересобираться на каждом звене: та же запись едет дальше как есть 5f93120
    • Лемма о трёхзначной логике парсера: найденная скобка — решённый исход 103cf5a
    • Две леммы о печати JSON: оператор сравнения всегда в кавычках be5be26
    • Замер досягаемости: сколько функций корпуса стало высказываемо 6ca55a6
    • Две леммы стали высказываемыми, две теоремы — доказанными 25b1ec2
    • Спецификации назвали связку перенесённой: вместо «ещё 1281 строка JavaScript» стоит таблица двух близнецов с числами da22f39
    • Вторая половина связки на flang: ядро само сворачивает терм, и на 199 программах вердикт совпал с эталоном знак в знак 0ea3df8
    • Предусловие доехало до ядра: вызывающий снимает, тело допускает, граница проверяет baddb7a
    • Скрипты замера стали переносимыми, и границу печати пришлось назвать честнее 52533d5
    • Свод корпуса пересчитан один раз в конце сборки: 5761 функция, 4403 тотальных, 663 места частичных форм 134c7e8
    • Проверка типов вписана в цену заведения процесса, и стенд доехал целиком aeb3917
    • Слово «требует» заведено: лексер, разборщик, типизатор 0f17050
    • Замер планировщика: десятки тысяч работающих процессов, не миллионы — и три причины, все три в реализации db62198
    • Первая половина связки уехала на flang: обязательства строит близнец, и на 193 программах он не разошёлся с эталоном ни на знак a3b7b07
    • Пустой квадрат больше не считается проверенным: отчёт называет посчитанное, а не осмотренное c1521b6
    • Цена перевода в «Долгах» пересчитана после дописанного утверждения: 1926 строк, ×1.72 c762c1c
    • Числа прозы догнали дерево: двадцать расхождений сторожа чисел закрыты правкой прозы, а не сторожа ca459a1
    • Точка раскрутки догнала близнеца, а сверка ведомости — пятый источник законов 3277c4b
    • Охват ядра догнал дерево: две новые функции не просто вписаны в список, а получили утверждения 007e170
    • Захват имени в «отобразить» закрыт: подстановка узнала четвёртый связыватель 7935192
    • Естественное преобразование: квадрат коммутирует, и это первый закон, который краснеет на честной программе d9d54b7
    • Дыра, позволявшая ядру доказать ложь, закрыта одним словом: поле записи перестало отмывать значение 2cbcba8
    • Стенд дорос до пяти видов: цепь и «пинг с конца» ловят то, что остальные прячут 6e7b404
    • Принцип целиком сошёлся с эталоном: близнец назвал лишние случаи и прочтение f1cd98f
    • Близнец научился считать свободные имена заключения: посылка везёт free и facts afaeeeb
    • Запрет на «к числу или беда» в stdlib сняли рано: парсер форму знает, а типы и печать в C на flang — нет, и это показала побайтовая сверка c8dd762
    • Ядро дотянулось до новой функции оболочки — утверждение написано, а охват пересчитан 6ed8c0a
    • Цена пересчитана парным прогоном на законченном вычислителе: +27 % по часам, +56 % по процессору 22fd258
    • Три красных слияния индукции закрыты: близнец узнал носителя и метку, а сверки — новый текст отказа 83ec42b
    • Долг переноса теорем назван точнее: файлов пять, а у пятого запрет ДРУГОЙ c5e4006
    • Спецификация слоя догнала измерение: девять посылок вместо двух, шесть функций из шести 08f3b8b
    • Спецификация ядра догнала оба правила, и заказ на свёртку вычеркнут наполовину 21f3b49
    • Посылка шага читает свой «если», и «Факториал» корпуса доказан индукцией 96f7ba9
    • Долги самоприменения знают про оболочку, а цена языкового сервера замерена, а не угадана 07fad83
    • Разбор строки в число дошёл до библиотеки: было «ровно одна цифра», стало любая строка — и минус ноль поймали границей, а не глазом 2b45709
    • У умножения появился второй случай: ограничен один сомножитель, второму хватает дна 562664a
    • Оболочка на flang отвечает эталону знак в знак: 91 ввод сверен побайтово, изъятие красит все шесть порч 0ee758b
    • На копейках моноид ЕСТЬ, на «число» его НЕТ — и язык различает это отказом сборки 610cf67
    • Ассоциативность композиции проверена на сетке, и сила проверки названа без прикрас c6433ca
    • Стенд для замера планировщика: генератор программ с N процессами, печать в C, снятие памяти и времени 9de7638
    • Работа возвращена на место: улика ДО снята на голом дереве, 30 красных, и все тридцать старые 78c9bdc
    • Границы `остаток от` сняты прогоном: посылок у правила дна ДВЕ, а у потолка ТРИ — и ни одна не окупается d831b9c
    • Дробное дно больше не доказывает ложь: «если н меньше 2.5» ядро отвергает, а не принимает efc61c6
    • Найдена своя же дыра: импорт инструмента ЗАПУСКАЛ обход корпуса — семь секунд и чужой вывод в каждом прогоне теста ed7cb57
    • Граница печати названа, но не измерена: поиск пишет русскими словами, и в английском файле скелет разъедется с утверждением 1781128
    • Незаконченное сохранено на обрыве лимита: работа прервана посреди шага, проверок не было 6c522e7
    • Незаконченное сохранено на обрыве лимита: работа прервана посреди шага, проверок не было a643243
    • Незаконченное сохранено на обрыве лимита: работа прервана посреди шага, проверок не было 749ed4c
    • Незаконченное сохранено на обрыве лимита: работа прервана посреди шага, проверок не было 7dd28a9
    • Незаконченное сохранено на обрыве лимита: работа прервана посреди шага, проверок не было 1a3ee75
    • План ядра считает и вторую сторону: усиление правила сразу превращается в найденные цепочки 51967b4
    • Оболочка flang заговорила на flang: слой связывается, типизируется и проходит анализ завершаемости 72222e9
    • Имя параметра догнало устройство: ядро спрашивают честной цепочкой, портится она позже 94e8450
    • Число сломанных программ в прозе сверено с деревом: 68, а не 67 7b6b26c
    • Отказ называет предел, действовавший в этом прогоне, а не записанный в модуле c663b72
    • Проза догнала язык: точное десятичное в SPEC, третий факт подписи в SPEC доказательства 6e64c89
    • Список строк стал значением библиотеки: 33 функции корпуса писали руками то, чего в двенадцати модулях не было ни одной a3d7c66
    • Ядро узнало два новых факта: длина не меньше нуля и свёртка держит знак — охват 17 → 43 b822361
    • Спецификация назвала оба числа и обе границы: нового 0 из 20, перевывода 11 из 11, пределы 256 и 8 51f6464
    • Деньги считаются точно и доказуемо: программа корпуса, 24 примера, два доказанных утверждения 225539a
    • Близнец компилятора узнал форму «к числу или беда»: обе головы её не знали вовсе fdb590f
    • Проза догнала дерево: восемь чисел строк, два «Состояния» и раздел про непустоту e9568db
    • Остаток пути назван числом: между поверхностью и ядром на flang стоят ещё 1281 строка JavaScript 8024bf0
    • Инструмент поиска считает по корпусу два числа: нового 0, перевывода 11 из 11 9d3fd77
    • Число функций, несущих состояние, названо замером: двадцать девять, а не пятнадцать по памяти 56f30a9
    • Категория объявляет своё равенство: эквивалентность и согласованность с композицией проверены на сетке 65a6d0e
    • Цена замкнутого круга померена парным прогоном: +22 % по часам, +31 % по процессору f6c48e9
    • Охват ядра вырос на три функции, и все три получили утверждения там же, где стоят: 31 высказано, 29 доказано 9ad4d48
    • Близнец ядра на flang называет покрытие тем, чем оно стало: сказано ли о каждой посылке 4ff886a
    • Оракул поиска доказательства отделён от ядра: предлагает цепочку словами языка, принимает по-прежнему ядро 4bd66c4
    • Ядро читает из подписи третий факт — целость, и на нём стоит правило остатка 580e12f
    • Спецификация слоя названа двумя принципами: долг базы вычеркнут, отрезок описан, ловушка 2⁵³ стоит таблицей 2bb6fa8
    • Точный десятичный тип есть: сотые и тысячные — уточнение числа, а не новый вид значения 233f46c
    • Число сверенного названо точно: 15 828 утверждений вместо 15 812 — круг на flang добавил свои шестнадцать 83c3832
    • Спецификация самоприменения записала замкнутый круг числами: 4014 ответов из 4480 считает сам flang aba91a2
    • Таблица переписываемых слоёв назвала обе половины ядра доказательства, и сторож чисел их теперь стережёт f4f1a48
    • Четыре слоя перестали утверждать, что вычислителя на flang нет: он есть, и таблица остаётся по другой причине 2434a20
    • Сверка нашла дыру, которой не было в задании: близнец начальной алгебры не отдавал ядру объявленных типов — четыре суммы из шести расходились 485de0c
    • Сторож объявленной меры стоит и в вычислителе на flang: 44 стережённые программы корпуса 484441d
    • Спецификация слоя доказательства догнала свод: 32 утверждения, и названо, чем упёрлась индукция 69a8bc2
    • Свод и проза догнали дерево: 4025 функций, близнец ядра вырос с 77 до 141, сторожей по-прежнему сто 3899207
    • Строка заказа «Глубина» вычеркнута тестом, а не человеком: перенос стал дословным на обеих функциях корпуса c0ab2f2
    • Близнец проверки типов научился доказывать непустоту: 240 мест из 240 совпали с эталоном 1a0a3e7
    • Отрицание в logic.flang доказано импликацией в ложь, а де Морган рядом — назван как то, чего ядро не берёт 4356f84
    • Первое доказательство индукцией по числу лежит в дереве, и свод считает носители порознь fd8cf94
    • Срез вычислителя на flang закрыт целиком: сверено 2318 примеров из 2318, вне среза 0 cec6b35
    • Согласие специальной функции с общей в higher-order.flang стало доказанным, а не проверенным на примерах 96402ed
    • Ядро на flang догнало эталон целиком: третье правило и развёртка определений донесены, зазор с 450 и 27 расхождений упал до нуля 2fbd12a
    • Спецификация ядра догнала правило умножения и назвала дыру в поле записи 71862ef
    • У библиотеки появились первые два утверждения о поведении: «Знак» и «Чётное» из numbers.flang 910ee10
    • Ядро сворачивает принцип по отрезку той же свёрткой, что и принцип по сумме, а ведомость называет носитель 55fed90
    • Посылку, которая сводится без единого допущения, ядро закрывает само — база больше не требует примера, которого у функции нет d686b60
    • Вычислитель на flang научился функциям первого класса: сверено 2273 примера из 2317 aec022f
    • Потолок римской цифры сказан на обеих поверхностях: тысяча и не больше 6a84b91
    • У римской цифры появился потолок: значение не больше тысячи, и это доказано вторым правилом 2851c00
    • Разность натуральных не выходит за точный потолок — утверждение стоит у функции, а не в копии ff4e218
    • Принцип индукции по отрезку «нат» порождается термом — из двух границ типа, а не из аксиомы 121ed64
    • Ядро берёт умножение: два `нат` дают неотрицательное произведение 7971a66
    • Посылка принципа несёт свободные имена своего заключения — их считает подстановка, а не второй список связывателей ea95c19
    • Разобрано, что случится с близнецом при слиянии соседних веток Go: рантайм не страшен, граница входа — задевает a1c457f
    • Раздел SPEC перестал подразумевать число: сторож меры доезжает до одной программы из трёх, и это печатает тест 48cdea0
    • Зазор до трёх веток эталона измерен числом: 0, 0-при-условии и 158 из 5520 ecf5daa
    • Шапка близнеца назвала тотальность числом: 128 из 203, и причина у остатка одна, а не три 937e8c4
    • Два случая, которых в дереве нет: кольцо отскоков и тело, не трогающее контекст — оба печатаются побайтово 9ac504f
    • Мёртвый посимвольный сниматель шума снят: 74 строки, которые больше никто не звал, и свод пересчитан 0a62159
    • Свод корпуса пересчитан: 2949 функций, и сторожей не прибавилось ни одного 474b2b4
    • Изъятие показало цену обоих новых правил числом: снимите алгебру — доказано падает с 9 до 6, снимите закрытость — ядро печатает «доказано» о лжи f8dd313
    • Шапка близнеца называет, чего в нём нет: рантайм параметром и непокрытый порченый AST f7b6928
    • Остаток непустоты назван числами и образцами: 30 мест из 45 упираются в одну развилку — тип в подписи 075d22f
    • Разбор строки и «символы» знают длину: снято ещё 6 мест, и форма «код символа» закрыта целиком — 0 сторожей из 6 eeb67be
    • Печать в Rust вошла в список переписанных слоёв: девятый слой самоприменения назван числами, а не обещанием 2e1f518
    • Испорченный AST отвергается тем же текстом: двенадцать отказов подготовки из тринадцати eb8e646
    • Проза догнала ядро: индукции доступны 50 функций stdlib из 185, было 28, и весь прирост списочный 56f70ff
    • Печать в Rust на flang совпала с эталоном побайтово на всём корпусе: 101 из 101, 44 из 44 со сторожем меры, 19 из 19 моделей 84e25df
    • Отказ сверяется наравне с печатью, и самоприменение знает про восьмой слой 19be75e
    • Числа раздела SPEC подогнаны под прогон: 44 программы со сторожем меры, 13 отказов 837ee5e
    • Граница близнеца на порченом AST измерена и держится числом: совпадает 1 случай из 14 c7a9297
    • Отношение объёма названо числом, а не округлением: 3223 строки против 1619, ×2.0 c778d97
    • Принцип индукции целиком собирается на flang и совпал с эталоном побайтово e46d472
    • Отношение объёма названо числом, а не на глаз: ×1.13, а не «вдвое короче» 282d502
    • У встроенного списка есть начальная алгебра: доказано ядром было 6, стало 9, и три новых — первые утверждения о списке 891da06
    • Проза догнала свод: «случая (а) в корпусе НОЛЬ» перестало быть правдой, и обе половины этого утверждения названы новыми числами 8a2bf5f
    • Свод пересчитан под новый слой: 3111 функций, 2415 тотальных, сторожей по-прежнему 100 eb962f8
    • Слоёв самоприменения стало девять: SPEC догнал печать в Go 79759a6
    • Печать в Rust на flang сошлась с эталоном побайтово на 99 программах из 101 и на всех 19 моделях FTS 4fb3eb0
    • Порождение принципа индукции переехало на flang: 410 входов сверены побайтово ba9f456
    • Близнец печати в C читает отметку доказанной непустоты: на помеченной программе 65 вызовов без сторожа совпали с эталоном побайтово 2517e87
    • Девятый слой записан в flang/self/SPEC.md: 323 функции, 228 тотальных, побайтово на 100 программах e71895e
    • Девятый слой самоприменения записан в flang/self/SPEC.md вместе со своим долгом: границы входа у близнеца C# нет 2800742
    • Печать в Java на самом flang совпала с эталоном побайтово: 101 программа из 101 aa8be99
    • Печать в Elixir на самом flang совпала с эталоном побайтово на 101 программе из 101 2bd7fc5
    • Печать в Python на самом flang совпала с эталоном побайтово: 100 программ из 100, 400 файлов из 400 2bbb94c
    • Третий источник фактов унесён на flang: вердикты сошлись на 8700 утверждениях e338960
    • Печать в C# на самом flang совпала с эталоном побайтово на всех 100 программах репозитория, включая собственный исходник 3082e05
    • Вердикты близнеца и эталона сошлись на 7902 утверждениях, подделки отвергнуты обе 86127fa
    • Печать flang → Go на самом flang: 100 программ из 101 и 19 моделей совпали побайтово 7a7f271
    • Печать в Rust на flang начата с измеряющего теста: сверка меряет, а не только падает a804ce5
    • Таблица цены шага пересчитана по помеченному корпусу: разрыв C и Go — 639 раз 0d56375
    • Дифференциальный тест печати в Elixir заведён и мерит; близнец на flang начат d8463f9
    • Близнец печати в C# начат: основания, разбор программы, граф вызовов и печать выражений — 2769 строк 00bd7e7
    • Близнец печати в Python разбирается: 282 функции, все слои кроме файлов и точки входа ddb7479
    • Слой сведения ядра переехал на flang: 69 функций, 39 тотальных, сверки пока нет 0af4c51
    • Близнец печати в Java начат: 3037 строк, шесть слоёв из семи (сверки ещё нет) 52e8859
    • Доказанная непустота снимает сторожа у всех восьми целей, а не у одной: правило выбора помощника одно на всех 57fa225
    • Заказ от библиотеки лежит в SPEC ядра таблицей: шесть пунктов, у каждого улика настоящей функцией и код отказа 18f78e9
    • Индукции доступны 28 функций stdlib из 185, и это измерено: второй модуль сказал о себе, доказано по-прежнему ноль 6d02caa
    • lists.flang доведён до числа: 14 функций из 28 говорят о себе, утверждений 15, доказано ядром по-прежнему ноль 89e11c3
    • Библиотека впервые говорит о себе: восемь утверждений о lists.flang, все восемь сеткой, и причина названа кодом отказа d6ece88
    • Один пример больше не доказывает утверждения обо всех входах: ядро отвергло ложное «в соединении ровно три» 31226ff
    • Непустота стала уточнением типа: 77 мест частичных форм из 280 перестали проверяться во время работы acf4e5a
    • Близнецы законов догнали эталон: три красных противоречия сборки закрыты b7973f2
    • Восемь целей считают шаги одинаково: C больше не берёт лишний шаг на входе в цикл 330060b
    • «Не проверяет ничего» спрошено до конца: своё тело чисто у 2013 функций, а вместе с вызванными — у 1737 a1da777
    • Свод считает обе проверки рантайма: мест не 100, а 380, и без единой проверки не 2096 функций, а 2013 9b76283
    • Свод второй волны пересчитан ОДИН раз: 3809 функций, 3036 тотальных, 26 утверждений cc8e8e8
    • Постоянная шага Elixir измерена: словарь процесса стоит 50 нс из 1700, обвинение с него снято a43fe18
    • Дождались: на 022 напечатанный JS не зависает, а стоит 21 минуту 30 секунд — и отказ у него знак в знак эталонный a5180c9
    • Контракт называет измеренное: сторож меры сверен с эталоном у ВОСЬМИ целей из восьми, а причина застревания на 022 измерена числом 029d42d
    • Контракт записал: сторожей меры два, проверен был тот, у которого два места из ста, и назвал 278 мест, которых свод не считает 700fc64
    • Журнал вычислителя не приписывает сверке того, чего она не находила 2293917
    • Подготовка программы отказывает теми же словами, что эталон: пять проверок, которых не было 0d9312c
    • Контракт записал: сторож меры сверен с эталоном у семи целей из восьми, и назвал программу, на которой четыре сверки не досчитываются 120a25a
    • Прогонщик Elixir читает и пишет байты: кривая локаль хозяина больше не корёжит кириллицу e92a38e
    • Шапка вычислителя называет счёт функций числом, а не «шестьюдесятью с лишним» 422a43c
    • Журнал долгов вычислителя называет и то, чего сверка не нашла f982e4d
    • Отсутствующий подузел доезжает до ряда отсутствующим: «получено undefined» перестало превращаться в «null» 2f39ba4
    • Вычистил из собственной прозы сторожей то, за что они краснеют у других d76a3a4
    • Глубина вызовов возвращается на место: два места, где машина расходилась с эталоном, и проба на каждое 01850f4
    • Спецификация самоприменения знает про девятый слой и честно называет, чего в срезе вычислителя нет a75dd06
    • Вычислитель на flang сверен с эталоном на 2012 примерах корпуса: значения и витки совпали все 9ffcceb
    • Размер компилятора на JavaScript в шапке самоприменения отстал на 61 строку: 24440, а не 24379 e329fb6
    • Своим счётом измерено, насколько врёт сторож пробелов: одиннадцать слов держатся на литерале 98ce046
    • Самоприменённый парсер читает «план» со словарём ввода-вывода: пробел остался один из 147 a0db3eb
    • Сторож утверждений поймал мою же прозу: «инфиксного и в языке нет» — неправда, слово «и» лексер знает ключевым 7eef13f
    • Самоприменённый парсер читает «прогон»: разбор конкурентности закрыт, пробелов 2 из 147 020ef27
    • Проза догнала код: «объявленную меру близнец только разбирает» перестало быть правдой в четырёх местах 87b56ad
    • Красноты сборки закрыты: рантаймы Rust и Elixir снова знают свой список, а сторожа догнали дерево 4e3af02
    • Самоприменённый парсер читает «надзор»: пробелов 4 из 147, а не 7 a590c58
    • Третий поиск описания на каждое ребро был квадратом поверх квадрата: один поиск вместо трёх, анализ types.flang снова влезает в лимит 0f38346
    • Точка раскрутки догнала близнеца: правка «Собрать новое поле» доехала до bootstrap/ f8e2e26
    • Самоприменённый парсер читает «процесс» вместе со словарём действий: пробелов 7 из 147 34c865e
    • Самоприменённый парсер читает моноид и монаду: пробелов 11 из 147, а не 18 40b68a3
    • Слово по номеру в парсере ядра берётся формой: девятнадцать мест перестали стоить длину строки 78fc9eb
    • Самоприменённый парсер читает «к числу или беда» и сам приписывает тип исхода 4090e22
    • Заказ на ядро в записках стал пятью строками из шести, и число названо на месте b9155a6
    • Размер компилятора на JavaScript в flang/self/SPEC.md догнал дерево: 24645 строк вместо 24379 5574363
    • Долги, свод и точка раскрутки догнали третьего носителя: 2938 функций корпуса, 2302 тотальных, 636 обычных a208381
    • Записки догнали четвёртую переписку: «вызов не разворачивается никогда» было решением, а довод при нём был шире решения d0f4a81
    • Обещания о печати и о стоимости форм сверяются с прогоном: Go брал `хвост` срезом, а таблица говорила «копия» f3d38ea
    • Свод собранного дерева пересчитан ОДИН раз: 3329 функций, 2678 тотальных, 25 утверждений 2897521
    • Строка заказа вычеркнута: «глубина дерева неотрицательна» доказана индукцией через развёртку «Глубже» d74c28b
    • Код, названный прозой, обязан существовать или стоять в списке необещанного: сторож на 52 файла .md вместо одного 24abcd3
    • Печать в C перестала стоить квадрат: шесть взятий по индексу внутри свёрток стали постоянными f2ee965
    • Печать близнеца ставит сторожа объявленной меры: 94 спуска в 41 программе корпуса совпали с эталоном побайтово aee6e25
    • «Иногда является» доезжает до сверки значения: необязательное поле записи перестало требоваться как обязательное 026f244
    • Вычислитель flang написан на flang: у самоприменения появился девятый слой, первый исполняющий a3f46b7
    • Улика владельца закрыта: «высота копии равна высоте оригинала» доказана индукцией, а не посчитана на одном значении 8981852
    • FLANG_LAW_LIMIT перестал быть обещанием: не досчитанный закон отличим от нарушенного b5f9be9
    • Код отказа, названный любой прозой, обязан существовать: двое выдуманных названы dce59d9
    • Напечатанная программа на JavaScript отвергает значение вне объявленного типа до вычисления: четыре лжи из четырёх, восемь целей из восьми ad47106
    • Ядро научилось разворачивать определение функции: четвёртая переписка нормализации с четырьмя названными ограничителями 2648f46
    • Контракт конкурентности записал, где замкнутость набора отказов проверена, а где нет b7c9083
    • Число строк компилятора в self/SPEC.md досчитано до конца работы: 25034 4a653c4
    • Числа в прозе сверяются с измерителем: сторож нашёл 26 расхождений, все закрыты a5569d7
    • sha256 формулы посчитан по архиву, который можно собрать заново и получить те же байты b41ff09
    • Близнец объявленную меру теперь ПРОВЕРЯЕТ, а не только разбирает: вердикт сошёлся на всех 106 файлах корпуса 5104eea
    • Нарушение приписывается своему утверждению даже при совпавших именах e7227a0
    • Размер эталона в «Самоприменении» сведён с деревом: 24596 строк, а не 24379 ba3f026
    • Запрет слова «провер…» перестал смотреть половину ведомости — и слово нашлось d1ed8d6
    • Точка раскрутки перепечатана скриптом: в неё вошли пять утверждений и проверка постусловия 374d724
    • Долг «у восьми слов нет продукции в самоприменённом парсере» записан закрытым и с ценой a7c5ddd
    • Близнец-типизатор читает постусловие — дыру показала порча, а не рассуждение becdd2f
    • Ведомость на flang высказывает утверждение о своём номере формата 44a894c
    • Разборщик на flang высказывает два утверждения о себе: размер пачки и наименьшая основа 761ad24
    • Печать в C на flang высказывает утверждение о себе: «байтов у символа неотрицательно» c615b11
    • Отставание близнеца ведомости названо числом: два слова, и второе ждёт вычислителя 7d658d6
    • Утверждение «сумма пары неотрицательна» стоит у самой «Суммы пары», а не только в перенесённой копии 66d9870
    • Счёт нарушений моноида берётся один раз, а не дважды в одной записи 06bf3d4
    • Долг из SPEC переписан в замер: закрыт первым из двух названных путей, цена в шуме c382ab1
    • Та же болезнь у законов вылечена: «нарушений не найдено» перестало печататься об оборванном обходе 49e6be7
    • Полиморфный параметр перестал отвергаться чужими словами, и сверка целей получила свой эталон 94fc42f
    • «Нарушений не найдено» стало означать «искали и не нашли»: сетка примеров прогоняется 0c9d22f
    • Утверждение «значение цифры неотрицательно» стоит у самой функции в leetcode 013, а не в перенесённой копии b524edd
    • Граница входа напечатанной программы записана в спецификацию: у библиотечного входа её нет, у прогонщика она есть 1f1d474
    • Напечатанная программа на Elixir отвергает значение вне объявленного типа до вычисления: четыре лжи из четырёх, семь целей из восьми закрыты 6522098
    • Напечатанная программа на C# отвергает значение вне объявленного типа до вычисления: четыре лжи из четырёх 9acf560
    • Напечатанная программа на Java отвергает значение вне объявленного типа до вычисления: четыре лжи из четырёх 4546d33
    • Напечатанная программа на Python отвергает значение вне объявленного типа до вычисления: четыре лжи из четырёх 3ad7fff
    • Напечатанная программа на Go отвергает значение вне объявленного типа до вычисления: четыре лжи из четырёх e32e7be
    • Напечатанная программа на Rust отвергает значение вне объявленного типа до вычисления: четыре лжи из четырёх 8e670b4
    • Напечатанная программа на C отвергает значение вне объявленного типа до вычисления: четыре лжи из четырёх ae4f41f
    • Скобка итога про утверждения без теоремы стала функцией, а не двумя тройными знаками abd62da
    • Раскладка охвата по каталогам исправлена и стала исполняемой: пять, одна и одна 1117048
    • Число целей в шапке снято: сказано «у целей печати», потому что счёт я не мерил 0557c12
    • Ведомость перестала называть источником факт, которым не пользовалась 4162f2a
    • Обход свёртки и «отобразить» снимает границы один раз: цена соседних форм вернулась к прежней 87ec06f
    • Оболочка отвергает ложь про тип до вычисления, и теперь это сторожат: дверь была закрыта, но ничем не удержана 94c7cae
    • Единственное отличие вида от массива названо и закреплено: запись отвергается d8d1fad
    • Цикл поручений сверяет вход шага с объявленным типом: «мс: вчера» перестало быть ответом плана 4bf1ca8
    • «Добавить» в эталонном вычислителе за постоянное время: 200 000 элементов — 272 мс вместо 229 634 9824f27
    • Факт-чекинг сверяет факты с объявленным типом до вычисления: «подтверждено» на значении вне типа больше не выдаётся 6c64911
    • Записки догнали третье правило, и одна из них была ЛОЖНА: «аксиомы появятся вместе с `нат`» bf45901
    • Потолок объявленного `нат` стал вторым фактом ядра: утверждение о разности пары доказано без теоремы ffad566
    • Охват ядра по корпусу стал измерением: 10 функций из 2800, и семь из них писать нельзя edec2e1
    • Числа в шапке js.mjs — свои, а не соседские: 919 мс эталона и 133 мс на 200 000 a8abb8a
    • Самоприменённый парсер читает членство в категории: долг соседней ветки закрыт 8e4b264
    • Напечатанный модуль объясняет свой вид сам: довод переехал внутрь $view 169bb09
    • Два утверждения корпуса уехали из «сетки примеров» в «доказано ядром»: 7 → 9 0319cde
    • Каталог и SPEC пересчитаны после JS: цена «добавить» постоянна у четырёх целей, дыра осталась у четырёх 2777b2c
    • Сличение таблиц нашло два слова, на которых близнец расходился с эталоном da33be7
    • «Добавить» в напечатанном JavaScript за постоянное время: 90 с без ответа стали 0,8 с 7c513ad
    • Параметр печати ответа больше не затеняет саму функцию ответа c6b1384
    • Слой доказательства закрыт: индукция разбирается, пробелов 19 из 147 вместо 20 1bed171
    • Счёт расхождений бэкенда Elixir сошёлся: их пять, а не четыре 7df8a51
    • Шапка бэкенда Elixir договаривает про «хвост» и называет, что ветвление «добавить» тут даром 3d4f46b
    • Документация догнала прогонщика: у JavaScript больше не «один файл», а модуль и прогонщик рядом 10475dc
    • Разворот конца списка идёт через Enum.reverse: сторож «ни от чего не зависит» остаётся строгим 1e02f10
    • Самоприменённый парсер читает шаг доказательства: пробелов 20 из 147, а не 23 f25ad02
    • Самоприменённый парсер строит теорему новой формы: пробелов 23 из 147, а не 25 d94dbbb
    • У JavaScript появился прогонщик: было 1 378 кадров и не тот отказ, стало 10 001 и текст эталона 0508384
    • «Добавить» в напечатанном Elixir за постоянное время: 90 с стали 8,3 с 0dc9814
    • «Добавить» в напечатанном Python за постоянное время: тест цели снова досчитывается c1468cb
    • Самоприменённый парсер читает постусловие функции: пробелов 25 из 147, а не 27 be2aab5
    • «Добавить» в напечатанном C# за постоянное время: 273 с стали 2,1 с ccc2bd4
    • Контракт теорката признал категорию сущностью, а обещание о полноте — бывшим пустым 0bdb79c
    • «Добавить» в напечатанной Java за постоянное время: 63,7 с стали 0,8 с 037aaa0
    • Новый ключ встал в справке после ведомости: сосед покраснел правильным красным, и правился код, а не тест d08e4c2
    • Цена новой ошибки сборки названа числами: 3 отказа и 4 решения надзора против 1 и 0 20d5105
    • Печать отбрасывает недостижимое: у import-check из 29 функций едут 2, C похудел с 74 394 байт до 6 284 871d185
    • Корпус сверки вырос вслед за продукциями, и слой поверхностей назван долгом e5adf77
    • Слой доказательства записал третий источник фактов и долг, который он сделал нагруженным f8f4d2a
    • «Добавить» в напечатанном Go за постоянное время: тест цели снова завершается 1388cfa
    • Самоприменённый парсер читает «бифунктор»: пробелов 27 из 147, теоркат закрыт 950c26d
    • Самоприменённый парсер читает «изоморфизм» с обеими стрелками: пробелов 30 из 147 fa9117e
    • Взятие по номеру в примере меры и в самоприменённом компиляторе стало постоянным 4218514
    • Стрелка-морфизм и её композиция разбираются самоприменённым: пробелов 33 из 147 99286ad
    • Самоприменённый парсер разворачивает «цепочку» в композиции: пробелов 35 из 147 9be1f09
    • Расхождение с самоприменением названо в SPEC, а не оставлено молчать f61f36a
    • Ловушки достижимости названы и закрыты: функция-значение, обработчик процесса, мера, текст сторожа e5a4d27
    • Самоприменённый парсер читает «единица «Заказ»»: пробелов 38 из 147 5531f19
    • Самоприменённый парсер читает «вложение» вместе с «даёт»: пробелов 39 из 147 e11674c
    • Двоичный поиск библиотеки перестал быть линейным: середина берётся встроенной формой 1b25870
    • Объявленные 10 000 кадров у JavaScript стали настоящими: было 1 379 и не тот отказ, стало 10 001 и текст эталона 28d92e9
    • Код отказа печати зовётся FLANG_CONC_UNSUPPORTED: имя одно на все 16 мест, и два сторожа не дают им разойтись 588593a
    • Самоприменённый парсер читает «пересечение»: пробелов разбора 41 из 147, а не 42 9c951ef
    • Три контракта догнали седьмой вид: видов отказа семь, и самый крупный долг распределённости вычеркнут fbd5f5b
    • Восемь прогонов на седьмой вид и десятое испытание распределённости: мимо анализа теперь не поднимешься c4d8e22
    • Достижимость от точки входа считается: 27 из 29 функций import-check не вызываются никогда ab52036
    • Две аксиомы категории доказываются, и обещание о полноте функтора перестало быть пустым b71daf0
    • Седьмой вид отказа: FLANG_LINK_DOWN вошёл в анализ, и забытый надзор над представителем стал ошибкой сборки 11410fa
    • «Добавить» в напечатанном Rust за постоянное время: 20 минут стали 1,9 с 6f36d31
    • Категория называет свои стрелки: форма разбирается, а AST сорока моделей не сдвинулся ни на байт 9354587
    • Объявленный тип аргумента стал фактом ядра: одно утверждение уехало из «сетки» в «доказано» 2cbea8c
    • Граница входа сверяет --args с объявленным типом: четыре лжи из четырёх отвергнуты до вычисления 032d6f1
    • Уведомление доехало до всех восьми целей: рантаймов оказалось 28, а не 8 cc872b6
    • Печатаемые рантаймы C и Rust уезжают к пользователю с уведомлением: восемь файлов из восьми 75a9d59
    • Пять красных закрыты, и все пять — последствия сегодняшней работы, а не старые долги 8203f39
    • Лексер на flang узнал иероглиф 自: работа над «нат» завела 自然数 и сломала сверку 1762682
    • Отношения множеств и монада сверены с эталоном побайтово: два слоя не проверялись ничем f6cb89f
    • Законы категорий считаются на flang: сетка моноида и изоморфизма перенесена, а её числа сверяются побайтово 945c230
    • sha256 формулы пересчитан по настоящему архиву 0.5.0, точка раскрутки стала видима журналу cb80317
    • Факт-чекинг сверен с эталоном побайтово: того, ради чего язык создан, на flang не было 55b1c71
    • Версия поднята до 0.5.0 во всех четырёх местах d24494b
    • Гейт лицензий снова зелёный: печатаемый планировщик JS остался без SPDX d5be996
    • Журнал изменений перепечатан: он разошёлся с историей ветки ещё до этой работы eba4594
    • Объявленный предел глубины в C стал пределом: было 1518 кадров и SIGSEGV, стало 10 001 и текст эталона 468d165
    • То же в близнеце: self/types.flang научен неотрицательному без потолка, сторожей ноль 39dc718
    • Неотрицательность переживает выход за точную сетку: терялась вся, остаётся знак 5c7e12a
    • Распределённость: два узла говорят по имени процесса, а разрыв связи испытан разрывом 439f164
    • Числа корпуса догнали хеш-таблицу: 2795 функций, библиотека 12 модулей и 185 функций 316d9a3
    • Словарь перестал зависеть от числа ключей: спуск идёт по цифрам хеша, а не по связям 97f136d
    • Индукция: ядро доказывает утверждения о БЕСКОНЕЧНЫХ типах, и подделку отвергает aeaf75b
    • Индукция: принцип порождается начальной алгеброй и проверяется как терм 76236bb
    • Постусловие отвечает за своё завершение, а «дано» теоремы — за свой тип: обе улики больше не valid: true 7ff80d8
    • Близнец проверки типов знает точное натуральное: свод корпуса сошёлся, точка раскрутки перепечатана 8b497db
    • Утверждение постусловия типизируется: «результат плюс "строка"» больше не valid: true 5ab2ee3
    • flang test проверяет программу перед прогоном примеров: зелень на программе с ошибкой типов больше не выдаётся 0c6ae17
    • Печать в JavaScript называет уточнённое число числом, а не «неизвестно» d3f3627
    • Самоприменённый анализ завершаемости знает точный шаг: цепочка без Node называет тот же носитель, что эталон c76f8a0
    • Ведомость называет пятый носитель обещания: «точным шагом», и он единственный без сторожа c6925df
    • Точный натуральный тип «нат» снимает сторожа с постоянного шага: 100 мест вместо 115 06e8dd6
    • Занятость слова в корпусе меряется командой тем же токенизатором, что у языка fee632e
    • Ведомость доказательства печатается самим flang: 1376 строк против 519 на JavaScript, текст знак в знак и JSON байт в байт 4351f44
    • Оболочка починена: обёртка выражения говорит явно, что сказать нечего a2ecffa
    • Компилятор flang собирается из клона без Node: «make -C bootstrap», нужны только cc и make ae973f8
    • Напечатанный JavaScript сам считает глубину и витки: вместо RangeError и зависания — объявленный FLANG_RECURSION_LIMIT 51986c4
    • Из ядра убрано мёртвое: карта вариантов, которую никто не читал, и два перевывоза 67ce68c
    • Указатель библиотеки называет зависимости каждой функции, и `только` перестал быть догадкой e59bcdc
    • Семь функций «Списков» приняли список любых значений, и в библиотеке появились промежуток, двоичный поиск, равенство списков, дерево чисел и последний элемент dab10b8
    • Числа самоприменённого парсера вернулись на место после моей ошибки в слиянии 296c02b
    • Восемь диагностик называют лекарство, а не только болезнь 6b21b3c
    • Названа недостача, которую открыло слово «обеспечивает»: выражение постусловия не проверяет типизатор 0a0711c
    • Доказательство стало объектом: обязательства лежат данными, ядро проверяет терм и само доказано тотальным без сторожа b554e37
    • Пять дыр статической проверки закрыты: пропущенное «возвращает» больше не выключает типизацию, джокеры плана сверяются с объявлениями, а повтор имени и ложное имя модуля при импорте перестали быть молчаливыми dca5cb7
    • Решений LeetCode 82: восемь задач из списка невыразимых решены, недостачи языка переписаны с уликами be14e2c
    • Программа с процессами печатается и в JavaScript: планировщик в модуле, журнал сходится с эталоном побайтово d2005eb
    • Пробелы разбора у самоприменённого парсера перечислены сторожем: 34 слова лексера без продукции названы поимённо, и список краснеет в обе стороны 3ddbb84
    • Объявленная мера «убывает» разбирается самоприменённым компилятором: AST сошёлся с эталоном побайтово на всём корпусе, неподвижная точка не двинулась bdd05ef
    • Утверждение о поведении можно высказать: обычная функция пишет постусловие словом «обеспечивает», теорема — доказательство в духе Isar 4ae7b92
    • Напечатанный TypeScript отвечает то же, что ядро: коды и тексты отказов сошлись на 966 входах из 966 2480cad
    • Двоичный поиск снова двоичный: взятие по номеру встроенной формой, а не обходом 4073199
    • Ключ, поднимающий предел шагов, у команды run перестал быть украшением f4646ef
    • FLANG_MEASURE вошёл в закрытое множество отказов процесса шестым видом, а сторож множества перестал быть слепым по построению 38e8dd3
    • Шесть целей больше не теряют процессы молча: печать конкурентной программы в цель без планировщика отказывает 26ec179
    • Печать больше не обходит проверку: emit отказывается печатать программу, которую check отвергает 4c6b51a
    • «Проверено на двенадцати значениях» больше не читается как «доказано»: flang check --proof печатает ведомость доказательства ca16678
    • Сетка из одного семени больше не сходит за сетку: «любое из» на ней отвергается до прогона fe39642
    • Числа самораскрутки снова можно перепроверить: скрипт, который их печатает, доехал до main 0d56c04
    • Знак нуля переживает компилятор BEAM: −0 в печати Elixir приезжает вызовом, а не литералом 144f03f

    правок, не меняющих язык снаружи: 380 Примечания к выпуску v0.5.0

  8. 0.4.8 записей: 69

    вложение и пересечение: у множеств появились слова

    • Версия 0.4.8: слова множеств — вложение и пересечение — доезжают до пакета 5a7e23a
    • Исчерпание своей кучи стало отказом ПРОЦЕССА, а не смертью программы 2dcae4c
    • Утверждение о недостаче в комментарии стало проверяться прогоном 9bf853c
    • Ящик ограничен объявляемым размером: переполнение стало отказом отправителя 3e6c5e5
    • Множество отказов процесса замкнуто на деле, а барьер замены держит целым пробег, а не сообщение d06111b
    • Множества получили слова: вложение и общая часть — и по причине, а не по списку 0f529ba
    • Логика пишется инфиксом — «не», «и притом», «или», — а «Ф» от а и б по-прежнему два аргумента f8588f2
    • Процесс живёт неограниченно: своя куча у процесса, сообщение уезжает в неё копией 5907532
    • Горячая замена живёт под работающим планировщиком, а состояние переезжает проверенной функцией 2c22f26
    • Стек на процесс: наклон устойчив, свободный член гуляет — сказано врозь 6f0ef9c
    • Спуск ограничивает глубину рекурсии, но не цену тела: вторая ложь оценки da4102c
    • Оценка витков считала длину цикла размером входа — это была ложь в опасную сторону 7cd9c3a
    • Страница Rosetta называла доказанной обычную функцию, а обычной доказанную 623f277
    • Числа В1 и правки контракта: цена вытеснения, ограниченность, счёт строк 5aa4e18
    • Ветка «В» карты отказоустойчивости: вытеснение измерено, ограниченность сделана 5bb25e1
    • Счёт строк компилятора в self/SPEC.md отстал на пять строк 3c8836e
    • Анализ отказов не знал про «код символа», приехавшую соседней веткой d02816c
    • Иероглиф 码 стоял в таблице слов и отсутствовал в алфавите dcc5f36
    • Число строк компилятора в self/SPEC.md отстало от дерева c0883b8
    • Анализ отказов обходил одну и ту же функцию по разу на каждый процесс 285230e
    • Слияние хеш-дерева развело грамматику: поля конструктора остались с запятыми fa0af93
    • Наблюдение текло в рабочем режиме: журнал доставок писался всегда 9fca07f
    • Контракт называл отказом деление на ноль, которого не бывает 52ed938
    • Процесс мог упасть, а решать о его отказе было некому — и это молчало a86e396
    • Эмодзи в исходнике .flang разводил два лексера, и это был известный долг c6253b9
    • Словарь стал логарифмическим: дерево поиска с приоритетом по хешу ключа 683ec9d
    • «Код символа» печатается во все восемь целей и понимается самоприменением 50be733
    • Четыре программы объясняли себя запретом, которого в языке уже нет 1afa107
    • Размер компилятора на JS пересчитан, а сторож числа научился склонять слово dddfda9
    • Напечатанный разборщик развёл запятую и «и» так же, как эталон 691d08c
    • Запятая принадлежит списку, а не полям конструктора: литерал перестал быть двояким 96bffe6
    • Мера — тоже код, и анализ теперь её обходит d4966db
    • Прогон объявляет, что проверит по-настоящему, и умеет идти туда, где всё есть fadc8d9
    • Каталог недостач и SPEC говорят про меру то, что стало правдой 1cbbc8c
    • Евклид и двоичный поиск пишутся на языке, а не обходятся топливом 9af1a70
    • Сторож объявленной меры проверяет убывание, дно и целость 72d1c47
    • Цикл доказывается объявленной мерой, когда двух даровых порядков не хватило d0f03ad
    • Мера проверяется на число и на то, что в ней одни параметры 9d1fd96
    • У функции есть объявленная мера: «убывает <выражение>» 4f03bce
    • Слово «убывает» стало ключевым: объявить меру было негде 807b993
    • Вечного процесса нет и в рантайме: fl_conc_run сам ограничен пределом пробегов 2c31a2a
    • Заголовок контракта и открытые вопросы узнали про время жизни 4481910
    • Контракт сверен с тем, что измерено: 256 ядер, время жизни и два противоречия afb22c8
    • Карта до отказоустойчивости: тотальность процессам не мешает, а память — стена 984fc79
    • Кодовая точка символа стала числом: у строк появилось всё, чего им не хватало 3be8782
    • Мерка научилась спрашивать, сколько живёт процесс, а не только как быстро бегает 7cfebc9
    • Синтаксис в SPEC говорил о двух поверхностях, а их четыре 57b29f1
    • Полноширинные :,( — те же знаки, что :,( — иначе китайский исходник набирался в двух раскладках b0ef815
    • Диагностика цитирует слово той поверхности, на которой написан файл, а не русское 7e022c2
    • Поверхностей у языка четыре: эсперанто говорит 127 понятиями из 131, китайский — 129 684ad72
    • Алфавит лексера на flang дорос до четырёх поверхностей: на «ĉ» он расходился с образцом f4627ce
    • Напечатанный компилятор не ставил сторож меры и крутился там, где эталон отказывал 37cd2b9
    • Двум функциям библиотеки разрешалось жить без примера по неверной причине c32b09f
    • Обоснование самоприменения опиралось на число, разошедшееся втрое e27f963
    • Английский модуль назывался «in English» — на вики это читалось как часть языка 69ad275
    • Каждая задача Rosetta Code говорит на обоих языках, и это сверено деревьями c03a6a8
    • Выкладка на Rosetta Code делается скриптом, а пароль остаётся у владельца 28473eb
    • Пример полиморфной функции перестал сверяться без подстановки 3044589
    • Стрелка получила закон: обещание, которое проверяется примерами и умеет упасть 9ddacdc
    • Счёт функций в «Долгах» пересчитан по исходникам, а не выбран из двух версий 8cdf5c1
    • Элемент списка берётся по номеру — и доказательство завершения от этого окрепло f12a0d1
    • Порог «потоки против кооперации» оказался разным вчетверо на двух машинах 99481fe
    • Печать в C молча выбрасывала процессы; теперь у неё свой планировщик bb68a1a
    • Отметку меры кладёт и копия на flang, и кладёт её в те же места a76ae85
    • Мера научилась шагу-параметру: «н минус ш» доказывается, когда ш не меняется 777d2a3
    • Инфиксная логика не заводится, и причина названа точнее: арность 7337a10
    • Образцы разбирают строку: посимвольный проход больше не меняет сигнатуру 3a6470b
    • Список из двух конструкторов пишется: разделитель полей смотрит вперёд 584c3da
    • Журнал изменений печатается из тегов и коммитов, а не пишется про них 656e097

    правок, не меняющих язык снаружи: 42 Примечания к выпуску v0.4.8

  9. 0.4.7 записей: 8

    монада, отказ значением, полиморфизм в репозитории

    • Версия 0.4.7: монада, обработка отказа и полиморфизм доезжают до пакета d9676d2
    • Отказ «к числу» стал значением: столбец из строк складывается, не падая 979d82c
    • Монада получила форму: `в монаде` разворачивается в разбор до конца разбора 1883935
    • «тотальная» перестала обещать больше, чем доказано: сторож меры f1c3ead
    • Библиотека схлопнулась по типам; второй параметр нашёл дефект в самоприменении 25b6167
    • Печать в Go давала вариант и функцию одним именем — и молчала об этом bedf937
    • Слияние меры с закрытым полиморфизмом: числа пересчитаны, а не перенесены 6acdf61
    • Число теперь тоже убывает — но только на постоянный шаг и только до проверенного дна 0bee9ac

    правок, не меняющих язык снаружи: 2 Примечания к выпуску v0.4.7

  10. 0.4.6 записей: 20

    бинарник разговаривает с человеком: check, repl, справка, man

    • Версия 0.4.6: то, что ставится из brew, наконец разговаривает с человеком 0633e72
    • Три документа догнали закрытые недостачи, четвёртый нашёл мою ошибку слияния 1b1e3a5
    • Самоприменение понимает полиморфизм и высший порядок; библиотека переехала c21a8d5
    • Парсер на flang понимает полиморфизм и функции-значения 9afa0e2
    • Бинарник из brew стал инструментом для человека: check, справка, версия, man febf795
    • Прогон проверял одно чередование из тысячи — теперь сетку семян, и модель измерена 86397d1
    • Теоркат переезжает границу файла целиком: пять видов, а не четыре c0a2428
    • Материалы к выходу наружу: проверено каждое внешнее обстоятельство, а не вспомнено 9105c86
    • Витрина Rosetta Code выросла вдвое и научилась говорить, чего язык не умеет ea7c621
    • Три числа файлов в документах считали разное, и нигде не было сказано что e705bc2
    • Запись о полиморфизме утверждала шире, чем проверяла её улика 6672800
    • Указатель библиотеки печатается из модулей, а не пишется про них 3736eb9
    • Множество, служба REST — и три ловушки языка, найденные при попытке им пользоваться a56e1da
    • Словарь в языке появился — и вместе с ним недостача, которой никто не знал 9a4700c
    • Логические операции в языке есть — функциями, потому что слово «и» занято 51b76ce
    • Связывание больше не теряет теоркат: доказательство переживало границу файла 5e390a5
    • Поправка к плану: «печатается» не значит «можно писать библиотеку» b1ecbff
    • Библиотека на функциях-значениях написана — и не там, где должна d5f830c
    • Функция-значение доехала до восьми целей: понижение легло одним проходом 2614a3b
    • Функция стала значением: дефункционализация оставила граф вызовов конечным d754261

    правок, не меняющих язык снаружи: 6 Примечания к выпуску v0.4.6

  11. 0.4.5 записей: 16
    • Версия 0.4.5: оболочка наконец доезжает до brew, плюс ввод-вывод и BEAM b49f64d
    • Обрезка пробелов стала тотальной: шапка модуля утверждала невозможное c021778
    • Слои самоприменения перестали ходить по строке позицией — лексер стал тотальным целиком 0b0ca36
    • Процессы flang поехали на настоящей BEAM: печать в Elixir и сверка по набору исходов 2f110f4
    • Язык научился читать файл и ходить в сеть, не перестав быть чистым 5bfdce0
    • Теоркат: изоморфизм и бифунктор — и честная строка о том, чего в изоморфизме не проверяется 39f832f
    • Монада была невыразима: типы стали параметрическими, и печать этого не заметила 716d19b
    • Список недостач языка врал наполовину: восемь записей из пятнадцати неправда e65a533
    • Тринадцать функций stdlib стояли без примеров по причине, которой нет bb7faf0
    • Надзор перестал быть объявлением: упавший процесс поднимается к тому же началу 746d4f4
    • Теоркат, шаг 3: моноид и группа — граница «доказано / проверено» внутри одной конструкции 1a864e3
    • Оболочка в бинарнике из brew: язык можно потрогать сразу после установки ced8665
    • Восемь из двадцати модулей библиотеки уезжали в пакет без SPDX: tsc уносил шапку вместе с import type c94f283
    • Восемь файлов, приехавших за последние сутки, не несли SPDX — гейт их и поймал 497b195
    • SPDX-заголовки во всём, что уезжает в пакет, и лицензионный гейт в CI 0eeaeab
    • Самая дорогая недостача языка закрыта: четыре задачи и stdlib стали тотальными 47e94fa

    правок, не меняющих язык снаружи: 4 Примечания к выпуску v0.4.5

  12. 0.4.4 записей: 10
    • Версия 0.4.4: языковой сервер, функтор с законами, конкурентность и Trojan Source 8e4afb5
    • Языковой сервер для .flang: та же проверка, что у «flang check», прямо в буфере 8bc0e08
    • Два слова контракта конкурентности уже были именами: «начальное» и «порог» b247c19
    • Конкурентность: атомарность по процессу, а не глобальная — и печать в BEAM 5b54c99
    • Rosetta Code: семь канонических задач, и граница языка сторожится тестом 1ddb483
    • Trojan Source: имя FTS уезжало сырым в комментарии — и во весь ftsc e9763e9
    • Раскладка проекта: REST-пример «библиотека» и выведенные из него правила c234215
    • Trojan Source: java, csharp и elixir печатали двунаправленные управляющие сырыми fc9ec0f
    • Плагин asdf рядом с формулой Homebrew: две упаковки одного релиза c62baa0
    • Теоркат, шаг 2: функтор перестал быть словом без гарантии 046a93a

    правок, не меняющих язык снаружи: 2 Примечания к выпуску v0.4.4

  13. 0.4.3 записей: 7

    подсветка FTS для Vim едет в пакете

    • Версия 0.4.3: подсветка FTS для Vim в пакете 43a89f6
    • Подсветка FTS едет в npm-пакет; тема Workbench из репозитория убрана 6ff44b4
    • Пример: правило жи-ши как исполняемая спецификация с морфизмами и теоремой bbfdc8d
    • Оболочка flang repl: язык можно потрогать, а не только запустить файл 26e1835
    • Встроенная форма «разложить … на символы»: посимвольный проход стал доказуемым dfe98e0
    • Контракт модели конкурентности: что можно взять у BEAM, а что придётся отдать 1621cd6
    • Подсветка FTS для Vim: 154 слова языка и проверка, что роли различимы d63bd4e

    правок, не меняющих язык снаружи: 2 Примечания к выпуску v0.4.3

  14. 0.4.2 записей: 10
    • Поправка: v0.4.1 не сломан, а описание пакета отстало на пять целей 6cba8e0
    • Слияние двух веток: лимит шагов и запас ёмкости сведены, релиз чинится 021cc13
    • Релиз v0.4.1 выпущен: формула знает хеш, а печать в C — четвёртый случай молчания 88aaec0
    • Компилятор ставится без Node: релизный C, формула Homebrew, честный README 37b8ad7
    • Теоркат, шаг 1: стрелка, композиция, цепочка, единица b50f540
    • Разбор суждений попал в основную проверку, и пакет получил существующий scope c369294
    • Самоприменение завершено: неподвижная точка сошлась 0cd0e90
    • flang: печать в Java, C# и Elixir — целей стало восемь 6a59a75
    • Самоприменение: flang₁ собран и работает; неподвижная точка упирается в память f2070a7
    • Корпус сверки перестал зависеть от чужого домашнего каталога 567bf61

    правок, не меняющих язык снаружи: 2 Примечания к выпуску v0.4.2

  15. 0.4.1 записей: 1

    Команды пакета отвечают после установки

    Исправлено: flang, fts и fts-mcp в 0.4.0 после npm i печатали ноль байт и выходили с кодом 0 — страж точки входа сравнивал пути как строки, а npm ставит команды символьными ссылками.

    Закреплено регрессией, которая ставит ссылку так же, как npm.

    • Команды пакета молчали после установки: страж точки входа не разрешал ссылку 5a4dedd

    Примечания к выпуску v0.4.1

  16. 0.4.0 записей: 38

    Первая публикация @digitable-lol/fts

    Пакет несёт FTS и flang одним набором: fts, fts-mcp, ftsc, ftsvm, ftspec и flang. 327 файлов, 1,1 МБ в архиве, 8,3 МБ распакованный.

    Проверено до выпуска: 1738 тестов на Node 20, 22 и 24 без падений, сборка, состав пакета без тестовых файлов, запуск flang из распакованного архива.

    • Пакет называется @digitable-lol/fts: scope @digitable нам не принадлежит f28500e
    • Печать в C: двунаправленные символы, лимит шагов и линейное «добавить» 61b37d8
    • Самоприменение: анализ тотальности на flang — пятый слой, все на месте a257d50
    • Самоприменение: проверка типов, написанная на flang 38d0ca7
    • flang: тот же дефект печати в C — для прямой рекурсии ff50af5
    • Самоприменение: парсер flang, написанный на flang 51d1ff1
    • Публикация в npm: пакет открыт, flang входит, публикует тег 92db56c
    • Самоприменение: печать в C, написанная на flang — и найденный ею дефект эталона cc944fe
    • Самоприменение: лексер flang, написанный на flang 92a0337
    • Ядро FTS на flang: скобочная запись — 56 моделей из 56 побайтово 9164aa3
    • flang: Go печатал литерал варианта записью — расхождение с интерпретатором c952e3d
    • flang: печать в Python — пятый целевой язык 7e31eea
    • flang: печать в Rust — четвёртый целевой язык fda937d
    • README: репозиторий называется flang — README теперь описывает flang 124c3d1
    • flang: команда emit — печать в целевой язык из CLI ec89e78
    • flang: бэкенд C печатал некомпилируемый код, когда вариант одноимён функции b33b801
    • Ядро FTS на flang: все четыре слоя связались в одну программу 2dd75df
    • Ядро FTS на flang: парсер — цепочка замкнулась a018496
    • flang: печать в Go — третий целевой язык a0b40c6
    • Ядро FTS на flang: вычислитель утилит f87e776
    • Ядро FTS на flang: лексер и печать JSON eee1f66
    • flang: выборочный импорт «только» — чтобы не дублировать чужой код 328580d
    • flang: связывание модулей — «использует» начинает действовать af52ac4
    • flang: восемь расхождений между слоями, печать в C, stdlib и LeetCode cd5d3d7
    • Включить тесты flang в npm test 67213ba
    • feat: flang, языковой сервер, карта покрытия, грамматики и веб-компонент 867d86e
    • Лицензия: BSD 2-Clause вместо унаследованной Apache-2.0 6dceb8d
    • Убрать research/ из публичного репозитория и починить установку из git 2cac0b1
    • ci: проверять кодогенерацию восемью тулчейнами, запретить молчаливый пропуск 23b0ef6
    • feat: перенести инструменты ftsc, ftsvm и ftspec в репозиторий языка 5957c72
    • feat: add natural English FTS surface 7401559
    • feat: add runtime integrations and benchmarks d8204a1
    • feat: generate utilities and tests from FTS 83798af
    • feat: add syllogistic Russian FTS surface dc46125
    • feat: add natural Russian syntax and integrations 3e57b58
    • feat: add Russian real-world FTS examples 73e5d41
    • feat: add strict FTS proof certificates 18b4a3b
    • feat: extract FTS language toolkit acbf340

    правок, не меняющих язык снаружи: 8 Примечания к выпуску v0.4.0