История языка
Что появилось в каждой версии — от 0.4.7 и назад до 0.4.0.
Релиз языка — это тег в репозитории, архив формулы Homebrew и публикация в npm. Строки под версией — заголовки коммитов, которые в неё вошли: в репозитории языка заголовок пишется утверждением о том, что теперь правда, поэтому переписывать его для этой страницы нечем и незачем. Правки, от которых язык снаружи не меняется — планы, спецификации, тесты, сборка, — сосчитаны и не перечислены.
Страница не может отстать молча: журнал печатается в репозитории языка из тегов и коммитов, а сюда приезжает файлом. Появился релиз, о котором портал не знает, — падает npm test (npm run flang:changelog:check), а не тихо стареет эта страница.
- Сейчас: 0.4.7 · 7 августа 2026
- монада, отказ значением, полиморфизм в репозитории. Ставится одной командой:
brew install digitable-lol/tap/flangилиnpm install -g @digitable-lol/fts. - Релизов: 8 · записей: 111
- Всё, что здесь перечислено, лежит в истории репозитория и открывается по ссылке рядом с записью — https://github.com/digitable-lol/flang.
-
0.4.7 записей: 8
монада, отказ значением, полиморфизм в репозитории
- Версия 0.4.7: монада, обработка отказа и полиморфизм доезжают до пакета
d9676d2 - Отказ «к числу» стал значением: столбец из строк складывается, не падая
979d82c - Монада получила форму: `в монаде` разворачивается в разбор до конца разбора
1883935 - «тотальная» перестала обещать больше, чем доказано: сторож меры
f1c3ead - Библиотека схлопнулась по типам; второй параметр нашёл дефект в самоприменении
25b6167 - Печать в Go давала вариант и функцию одним именем — и молчала об этом
bedf937 - Слияние меры с закрытым полиморфизмом: числа пересчитаны, а не перенесены
6acdf61 - Число теперь тоже убывает — но только на постоянный шаг и только до проверенного дна
0bee9ac
правок, не меняющих язык снаружи: 2 Примечания к выпуску v0.4.7
- Версия 0.4.7: монада, обработка отказа и полиморфизм доезжают до пакета
-
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
- Версия 0.4.6: то, что ставится из brew, наконец разговаривает с человеком
-
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
- Версия 0.4.5: оболочка наконец доезжает до brew, плюс ввод-вывод и BEAM
-
0.4.4 записей: 11
- Версия 0.4.4: языковой сервер, функтор с законами, конкурентность и Trojan Source
8e4afb5 - Языковой сервер для .flang: та же проверка, что у «flang check», прямо в буфере
8bc0e08 - Trojan Source: закрыта третья и последняя поверхность печати — ftsvm
64c4093 - Два слова контракта конкурентности уже были именами: «начальное» и «порог»
b247c19 - Конкурентность: атомарность по процессу, а не глобальная — и печать в BEAM
5b54c99 - Rosetta Code: семь канонических задач, и граница языка сторожится тестом
1ddb483 - Trojan Source: имя FTS уезжало сырым в комментарии — и во весь ftsc
e9763e9 - Раскладка проекта: REST-пример «библиотека» и выведенные из него правила
c234215 - Trojan Source: java, csharp и elixir печатали двунаправленные управляющие сырыми
fc9ec0f - Плагин asdf рядом с формулой Homebrew: две упаковки одного релиза
c62baa0 - Теоркат, шаг 2: функтор перестал быть словом без гарантии
046a93a
правок, не меняющих язык снаружи: 1 Примечания к выпуску v0.4.4
- Версия 0.4.4: языковой сервер, функтор с законами, конкурентность и Trojan Source
-
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
- Версия 0.4.3: подсветка FTS для Vim в пакете
-
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
- Поправка: v0.4.1 не сломан, а описание пакета отстало на пять целей
-
0.4.1 записей: 1
Команды пакета отвечают после установки
Исправлено: flang, fts и fts-mcp в 0.4.0 после npm i печатали ноль байт и выходили с кодом 0 — страж точки входа сравнивал пути как строки, а npm ставит команды символьными ссылками.
Закреплено регрессией, которая ставит ссылку так же, как npm.
- Команды пакета молчали после установки: страж точки входа не разрешал ссылку
5a4dedd
- Команды пакета молчали после установки: страж точки входа не разрешал ссылку
-
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
- Пакет называется @digitable-lol/fts: scope @digitable нам не принадлежит