Каталог примеров
Все примеры-программы на flang лежат в одном каталоге — examples/: 190 файлов в двадцати одном наборе и одном полноразмерном проекте. Второго каталога с примерами в репозитории нет: до 24 августа 2026 полторы сотни программ стояли этажом ниже, и найти их с первого взгляда было нельзя.
Число пересчитывается одной командой: git ls-files examples | grep -c '\.flang$' → 190 (замер 29 августа 2026).
Наборы
| Каталог | Файлов .flang | Про что |
|---|---|---|
leetcode/ | 82 | решения задач LeetCode; каждый файл самодостаточен нарочно — почему, сказано в index.json. Разбор этого набора — 82 задачи |
rosetta/ | 28 | канонические задачи Rosetta Code |
cat/ | 12 | теория категорий на прикладных задачах: стрелки со своими обещаниями, законы, слияние CRDT |
web/ | 13 | HTTP: служба заказов, сокращатель ссылок и API маркетплейса из трёх служб — каталог, корзина, заказы |
io/ | 8 | поручения ввода-вывода: двоичный файл туда и обратно, октеты по проводу, потомок, запрос по HTTPS, временный каталог, разбор пакета |
crypto/ | 8 | AES, ECDSA, X25519, X.509, список отзыва, привет TLS — на настоящих контрольных векторах, которые лежат рядом |
library-api/ | 7 | предметная половина REST-сервиса библиотеки: выдача книг, каталог, штрафы. Единственный набор, показывающий раскладку проекта целиком |
db/ | 4 | разговор с PostgreSQL (в том числе SCRAM), с Redis и чтение файла SQLite |
service-on-processes/ | 4 | служба на процессах, а не пример на три функции: заявление о своей замене OTP, проверенное в полный рост |
https/ | 3 | TLS: записи RFC 8448, системное хранилище доверия, привет настоящему узлу |
proof-probes/ | 3 | пробы самого ядра доказательств: дверь к типизированному дереву, отказ от общего спуска, вариант с полями |
driver/ | 2 | драйверы железа там, где каждая функция обязана доказано завершаться: UART и MSI |
measure/ | 3 | завершаемость по объявленной мере: Евклид, двоичный поиск, натуральные числа |
errors/ | 2 | отказ значением, а не падением: итог столбца пришедших строками чисел, разбор чисел |
surfaces/ | 2 | факториал на китайской и эсперанто-поверхности языка |
wal/ | 2 | журнал упреждающей записи: разбор, печать, восстановление после обрыва |
monad/ | 1 | итог заказа на форме в монаде |
money/ | 1 | деньги на точном десятичном типе сотых |
paths/ | 1 | кратчайший путь по сети с недостижимыми узлами |
allocator/ | 1 | распределитель памяти как чистый автомат: можно ли написать malloc на flang и что про него возьмёт ядро |
host-boundary/ | 1 | стык: flang считает решение, хозяин на C исполняет — напечатано в C, собрано системным cc, прогнано целиком |
service/ | 1 | обращение к службе |
import-check.flang | 1 | проба связывания модулей по имени |
Как прогонять
Примеры объявлены внутри функций, а не в отдельных файлах проверок, и прогоняются двоичным:
bootstrap/flang test examples/rosetta/ # один набор
bootstrap/flang test examples/ # весь каталог, 190 файлов
Наборы считаются очень по-разному, и это стоит знать до запуска. Прогон 24 августа 2026: leetcode — 82 файла, 804 примера, 12 секунд (сегодня в этом наборе 806 примеров); crypto — 8 файлов, 1223 примера, 39 минут, потому что считает настоящие контрольные векторы AES и ECDSA. Файл, который двоичный не взял, он называет вместе с кодом отказа, а не пропускает молча.
Про library-api
library-api стоит в этом ряду особняком, и это единственное, чем наборы здесь друг от друга отличаются. Остальные двадцать один — программы: файл, а в нём объявления со своими примерами. library-api — проект: семь модулей на flang, из них один свой, со своей раскладкой каталогов. Пример показывает не HTTP, а границу: что уезжает в язык, где у куска логики есть выполняемый пример, и что остаётся хозяину. Хозяин здесь был на Node и снят 20 августа 2026 вместе с остальной оснасткой на JavaScript; половина на flang осталась и проверяется командой. Правила, выведенные из этой раскладки, собраны в Раскладке репозитория.
Куда идти дальше
- Как учить язык дальше — порядок чтения, в котором примеры стоят четвёртым шагом;
- Разбор: 82 задачи с leetcode — что доказалось на живом коде, а что нет;
- Сокращатель ссылок и приложение в браузере — две программы, разобранные целиком.