DigitableCourses

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

Что появилось в каждой версии — от 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.
  1. 0.4.7 записей: 8

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

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

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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

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

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

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

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

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

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

  8. 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