Блог
Каждая статья выходит на этом домене раньше, чем где-либо ещё — вместе с пруфами и с прямо названным в тексте тем, чего она не решает.

[измерено на arm64 Mac, тёплый кэш, медиана трёх запусков] Одна спека — specs/t27os/heartbeat_monitor.t27, три теста, шесть чистых функций — пятью путями наружу: t27b build в arm64-объект 608 B за ~1.0 мс (компиляция в 70-100 раз быстрее clang, артефакт в 28 раз меньше), вердикт t27b test за ~5.3 мс и t27b verilog в ~311 строк RTL. Время выполнения в пределах 2.4% от clang -O2; ручное разворачивание исходника измерено и сделало компиляцию медленнее.

[каждый виджет исполняет тела функций спеки gHashTag/t27 specs/queen или specs/automation, собранные в wasm; ни один виджет не читает живую Королеву; игровые виджеты — плоские наброски] Курс 11 открывает правила, по которым Королева ведёт улей: оформление задачи и её границу, приоритет, старение и сначала ревью, автомат состояний задачи, корабль в игре, деплой на лету, число ревью сразу и паузы ревьюера, ворота слияния, затор ревью и унаследованный красный, отклонённые ключи и следующий ключ, заслуги и цены в токенах, ботов агентов в одной группе, ночной дозор, публичную доску и соты.

[каждый виджет исполняет тела функций спеки gHashTag/t27 specs/ml, собранные в wasm; урок 10 это усредняющий пулинг, пока не слита t27#10612; фикстуры взяты из самих спек, на настоящих данных ничего не обучалось] Курс 10 открывает части, которыми думают агенты проекта: ReLU, GELU и softmax, эмбеддинги и dropout, пулинг и пакетную нормализацию, MSE, перекрёстную энтропию и функцию Хьюбера, SGD, RMSProp, Adam и LAMB, обратное распространение, сеть 2-8-1, которая учит XOR в браузере, рекуррентную ячейку, вентили LSTM, внимание, позиционное кодирование, блок энкодера и PPO.

[программы лежат в ROM, собранном из спеки; по проводу ходят запросы, а не .wasm-бинарники; одна плата, одна ночь, шесть прогонов] Спека t27 в gHashTag/t27 (ветка wasm-board, 351e3cdf4) стала Verilog-ядром через t27c gen-verilog, прошла через openXC7 на ALINX AX7203 и ответила на 134 из 134 запросов точно -- шесть прогонов подряд, 804 из 804. 21 опкод из набора WASM MVP, ROM на 14 программ и 101 байт, i32.mul как 32-тактовая микропоследовательность; тайминг вырос с 18,57 до 70,41 МГц при планке 68,7 на одном проценте LUT -- каждая частота здесь оценка nextpnr, а не подписанный тайминг. Самотест конформансного стенда поймал баг со смещениями в проводе, который завалил бы 76 проверок на полностью исправной плате.

[каждый виджет исполняет тела функций спеки t27, собранные в wasm; задержки в уроках 1 и 26 — входные данные читателя, а не тайминг устройства] Курс 9 учит той арифметике, на которую FPGA тратит площадь, от цепи переноса до фильтра: сумматоры, умножители Бута и слайс DSP48E1, фиксированная точка, CORDIC, дискретизация, фильтры FIR и CIC, БПФ и итоговый фильтр, посчитанный бит в бит. Пять новых спек в gHashTag/t27 несут логику 26 виджетов, с 43 тестами и 33 отрицательными контролями; 27-й исполняет коррелятор существующей спеки модема.

[виджеты работают в браузере; модули TRI-27 следуют закреплённой версии эмулятора, остальное учит на небольших числах] Курс 8 на t27.ai: 27 уроков от того, почему основание 3 самое дешёвое (39 против 40 для любого числа до 999999), через сбалансированную троичную, логику Клини, сумматоры, умножение без умножителя, пять тритов в байте, командное слово TRI-27 и троичную машину до нейронов с весами -1, 0, +1.

[логика каждого виджета — спека t27, собранная в wasm; линия без потерь, канал с одним полюсом, значения введены руками, с платы ничего не читалось] Ступенька 1 В от драйвера 25 Ом в открытую линию 50 Ом приходит на дальний конец как 1,333, 0,889, 1,037, 0,988 В и только потом устанавливается на 1 В; один RC-полюс оставляет четверть глаза при T = TAU и закрывает его при TAU ln 2; 13-битное слово SECDED исправляет любую одиночную ошибку и ловит любые две. Три новых виджета показывают это, каждый исполняет тела функций своей спеки t27; за ними 20 тестов спек и 15 отрицательных контролей.

[замеры на одном 8-ядерном Mac, нагрузка на котором менялась за ночь; пары сняты при одинаковой нагрузке] Один ночной цикл замерил все места, где t27 собирает и ждёт, и исправил то, на что указали цифры. Тёплый t27c frontier ускорился с 55-68 с примерно до 0,9 с, неизменный битстрим находится за 0,22-0,39 с вместо 4,3-8,9 с, запуск на плате после одобрения больше не собирает сначала, а прогон корпуса, который CI делает на каждом pull request, сократился с 221-257 с до 108-140 с. Почти всё прежнее время уходило на пересчёт того, что не менялось, и на поочерёдное выполнение независимой работы. Что осталось: около 2 с на спеку в перелинковке zig, 27 с nextpnr на правку логики, около 14 с загрузки платы и гейт C-заголовков на 72 с. Каждое ускорение теперь одна команда `tri hot`, записанная до и после и поставленная против восьми инструментов сборки в TOP.

Подписи на изображении — на английском.
[замер на общей Railway-лаборатории; время выполнения — эмуляция qemu, счёт инструкций точный; код t27b уровня -O0] t27b 0.2.0 вышел с подписанной квитанцией на тот самый бинарник, что лежит в релизе. Как нативный кросс-компилятор на x86_64 он компилирует спеку t27 вместе с тестами примерно за 4,8 мс — в 8,8 раза быстрее, чем gen-c и gcc -O0, и примерно в 640 раз быстрее zig Debug на спеку, — занимая 5,3 МиБ памяти, одним бинарником примерно в 3 МБ, и сходится с эталоном на всех 8344 тестах, которые прогнали обе стороны. Прорывом в сгенерированном коде это не назовёшь: он выполняет в 3,4 раза больше инструкций, чем gcc -O2, и в 4,5 раза больше, чем zig ReleaseFast, его код до 2 раз больше, а на Linux это JIT для тестов, который пока не умеет писать ELF. За неделю его доля среди спек, которые проходит эталон, выросла с 8,6% до 98,9%.

[только программные вердикты; 570 спек из 1811 ещё требуют собственных исправлений] t27c теперь хранит печать рядом с каждой проверенной спекой и повторно использует её вердикт, пока не изменились сама спека, её импорты, сгенерированный код, инструменты тестов и конфигурация. На master t27c frontier повторно использует 1241 спеку из 1811 — 9 октября было 2; аудит за раунд перепроверяет одну такую спеку из 16, и четыре раунда расхождений не нашли.

[симуляция: ревьюер, параллелизм, остановка ходов, диспетчер; замер: хаос связи узлов и ожидания на PostgreSQL 16, повтор решений, шлюз симуляции; ПЛИС: только синтез; в production ничего нет] На одном входе с фиксированным зерном рантайм акторов Queen сокращает худшее восстановление с 1181 с до 27 с и при перегрузке завершает на 18.7% больше рецензий, но выигрывает не везде. 2026-10-09 за флагами легли семь изменений по итогам изучения конкурентов, у каждого спецификация на t27 и бенчмарк против кода, который оно заменяет: журнал, повторяющий 73 435 решений с 0 расхождений, ходы, которые действительно останавливаются, ожидания как строки Postgres (чтений GitHub 24 вместо 180), связь узлов с фенсингом (потерянных писем 0 вместо 21) и шлюз симуляции с зерном, который проходит за 33.5 с и первым нашёл настоящую ошибку рантайма. Большую часть выигрыша диспетчера дала 60-минутная граница хода, а не акторы, а адаптивный параллелизм проигрывает при 3 полосах. На XC7A200T карта как она написана стоит 26 737 LUT, и 13 функций не синтезируются; предел около 37 000 акторов на плату ставит память, а не логика.

[два ключа и две машины у одного оператора; правило 3 из 4 пока есть только в модели MVP] Две лаборатории t27b прогнали один и тот же коммит t27, a16231329d13, и подписали его разными зарегистрированными Ed25519-ключами. Корни входов, вердиктов и выходов двух квитанций совпадают байт в байт, и t27c corpus-receipt compare признал пару равнозначной: EQUIVALENT, код выхода 0. До сегодняшнего дня все квитанции подписывала одна лаборатория, то есть по сути она была главным валидатором; это первое настоящее совпадение 2 из 2.

[одно правило из IEEE 1149.1; значение IR в записи введено руками, а не прочитано с кабеля] Наш декодер JTAG называл BYPASS любое чётное слово данных, что бы ни происходило на проводе. Способ различить уже был в стандарте: при Capture-IR каждая совместимая микросхема загружает 01 в две младшие ячейки регистра инструкций. Теперь tdo_verdict.t27 проверяет эти два бита раньше, чем смотрит на бит 0 слова данных, — 8 тестов и мутант, проваливающий 6 из них. Новый виджет выполняет те же пять проверок на любом введённом чтении.

[пока одна спецификация; две квитанции из трёх у одного оператора; CI ещё не пропускает проверку на кремнии по квитанции] Одна спецификация t27, ternary_link, проверена на трёх разных кристаллах ПЛИС на трёх машинах, одной из них управляли за 410 мс, и ответы совпали. Каждый кристалл назван своим DNA и подписал ответ на один запрос; run-record признаёт прогон пригодным для ссылок (INDEP_DIES). Второй кристалл нашёл ошибку, которую первый найти не мог. Главное: когда на вердикт на железе можно сослаться, правило из reuse.t27 позволяет прогнать проверку один раз на версию спецификации и инструментов, а остальным проверить квитанции за секунды.

[одна плата на одном столе; приём по Wi-Fi; маячок только передаёт, ARP и ping пока нет] Теперь за нашим стендом с ПЛИС следит USB-камера. На первом же кадре на плате читалось «ALINX», хотя наши записи несколько месяцев называли её QMTech Wukong: тот же кристалл в другом корпусе, так что все выводы, которые мы проверяли, были не те. Пересобранный под ALINX AX7203 маячок на t27 вывел плату в сеть. Mac за семь минут принял 2929 из 3168 её UDP-кадров, по 7.45 в секунду, как и предсказывает тайминг спецификации, а светодиоды платы, которыми управляет спецификация, показали линк, гигабит и пульс.

Курс 7 из каталога: UART покадрово, SPI по режимам, рукопожатие APB, пять каналов AXI4, карты памяти, пакетный мост, кадры Ethernet и тайминг RGMII, дисциплина IO на стенде -- в каждом уроке открывается один виджет и одна спека t27, а 31 виджет -- новые записи нативного t27c на настоящей машине.

Курс о тактах учит деревьям тактового сигнала, стратегии сбросов и пересечениям тактовых доменов в 27 уроках, и каждый урок открывает виджет, который не открывает ни один другой урок; три из них отчеканены для этого курса. Тело поста лежало в дереве незарегистрированным со времён PR курса; эта запись его подключает.

[исполнитель в браузере пока не исполняет тест-блоки тестбенчей (trinity#1477); три spec урока заменены чистыми соседями; specs/fpga/coverage.t27 попадает в gHashTag/t27 отдельным PR] Четвёртый курс t27 отвечает на вопрос, который три предыдущих оставили открытым: откуда вы знаете, что дизайн работает? 27 уроков в 9 модулях по 3 -- тестбенчи, временные диаграммы, векторы, косимуляция, покрытие, формальные методы, мутации, приёмка -- в каждом открывается один работающий виджет и один spec t27, а каждое число на странице измерено виджетом, рядом с которым оно стоит.

[браузерный компилятор выполняет постоянные проверки спеки, а не тесты её функций; правки 7 спек уроков ждут gHashTag/t27 PR 7496; ни один урок не заявляет скорости или результата на железе] Новый курс о семействе GoldenFloat: одно правило, E = round((N - 1) / phi^2), делит каждую ширину от GF4 до GF1024. 27 уроков в 9 модулях по 3, каждый открывает таблицу из одной спеки и саму спеку.

7 октября 2026 года курсы t27 по ошибке сплющили до 27 модулей по одному уроку. Теперь они снова 9 модулей по 3 урока: курсы 1 и 2 получили прежние модули слово в слово, курс 0 — 9 новых, а тест каталога держит форму.

[исполнитель в браузере пропускает блоки invariant и bench; спек уроков пока нет в gHashTag/t27] Перед курсами по FPGA и ИИ-числам появился новый курс: 27 уроков о языке t27, в каждом чёрно-белая таблица или схема из своей спеки и спека урока, которая собирается всеми 7 бэкендами.

[t27#7400 открыт и не влит; демонстрация — одна спека на лаборатории t27c; t27c test-report всё ещё возвращает 0 при упавшем тесте (t27#7370); инструмент MCP tri.test по-прежнему пустой] До сих пор tri test только перечислял тесты спеки и печатал, что они прошли, поэтому посаженная ошибка оставалась зелёной. t27#7400 заставляет его запускать их, читать отчёт и возвращать ненулевой код при падении, при спеке BLOCKED или когда не прошёл ни один тест. Ещё он добавляет tri mutate plant: один записанный мутант на копии, сначала чистый прогон, названные упавшие тесты, проверка хеша оригинала. Девять уроков курса AI numbers ждут этих двух команд для своих записей.

[ни один урок не обучает сеть; тесты 15 новых уроков идут в записях нативного t27c, а не в браузере; 35 из 127 мутантов выживают и не разобраны; только программа, без платы] Курс t27 теперь — два курса по 27 уроков, 9 модулей по 3 урока (записи уроков с 13 по 21 ждут t27#7400): «С нуля до чипа» о программировании FPGA и «ИИ-числа на t27», который начинается с 6 переехавших уроков и добавляет ещё 21, до маленькой тернарной сети. Каждый из последних 15 уроков подкладывает в спеку ошибку в одну строку и показывает единственный названный тест, который падает. По 14 их функциям tri mutate spec сделала 127 мутантов, и тесты убили 92.

[PR открыт и не влит; действует только на PR, открытые или обновлённые после слияния; проверяет, что файл поста изменился, а не что в нём написано] Проверка T27 work report теперь отклоняет PR в trinity, который меняет курс и не добавляет и не правит тело поста в блоге в том же PR. Слова правила живут только в спеке t27, specs/policy/course_post.t27, которую проверка читает и при сбое закрывается. Переименованные уроки считаются по старому и новому пути, переименованные посты не считаются, а неполный список файлов даёт «не решено». Семь посаженных мутантов уронили каждый свой тест.

[один блок из 32, выбранный, чтобы показать обнуление, без модели и без числа точности; ocp_mx.t27 влит в t27, но ещё не на сайте; урок 33 — запись, а не плеер в браузере; только программа] В курсе t27 три новых урока о форматах Microscaling (MX) от Open Compute Project, где 32 веса делят один байт масштаба. Один вес 3,3 среди 31 маленького задаёт этот масштаб, и в MXFP4 23 из 30 ненулевых маленьких становятся нулём; MXFP6 E2M3 теряет 4, MXINT8 2, MXFP6 E3M2 и MXFP8 E4M3 — ни одного. Числа взяты из спеки с 49 тестами, и замена одного смещения экспоненты с 15 на 16 роняет ровно один из них.

[одна спека, hello_world; в браузере работает только JavaScript; нативные результаты получены на одной машине с macOS в один день; в X ничего не опубликовано] В плеере t27 теперь есть терминал: компилятор, работающий в странице как WebAssembly, печатает то, что выдаёт каждый из семи его бэкендов, и запускает тесты спеки. У каждого бэкенда своя страница для ссылок. Каждое слово терминала живёт в спеке. При нативной сборке hello_world в нынешнем виде собирается на двух языках из семи, и пост объясняет почему.

[один M1 Pro, одна синтетическая программа; цифры t27b сняты при load average 83–165 на 8 ядрах; t27b понимает 37 из 1174 спек, а его JIT работает только на arm64 macOS; три из четырёх найденных им ошибок ещё не исправлены] t27c проверяет типы одной функции за 29,9 мкс, в 5,2 раза быстрее rustc check, но машинного кода не выдаёт, поэтому его полный путь до объектного файла в 2,1 раза медленнее clang на той же программе, написанной на C. Чистая release-сборка самого t27c сократилась со 142,7 с до 66,0 с после трёх влитых PR, убравших неиспользуемые библиотеки машинного обучения и сборку aws-lc-sys. t27b, собственный бэкенд AArch64 без LLVM, уже влит: он компилирует и запускает те же тесты в 23–381 раз быстрее пути через Zig, пишет код примерно уровня clang -O0 и нашёл четыре ошибки в t27c и в одной спеке.

[один тактовый тракт на одной плате AX7203; светодиоды читались глазом, считывания счётчика нет; сборка nextpnr-xilinx на 115 коммитов позади main, с одним влитым исправлением, применённым локально; быстрый цикл засекался на одном маленьком дизайне] Выход MMCM может дойти до регионального тактового буфера через тракт performance clock, и две строки в базе Project X-Ray говорят, какие биты этот тракт включают. Со строками master prjxray-db счётчик, тактируемый через него, на XC7A200T не идёт. Со строками, которые мы предложили в openXC7/prjxray-db#30, идёт, а два битстрима различаются ровно в трёх битах. Сброс любого одного из трёх снова останавливает счётчик, так что нужен каждый. main nextpnr-xilinx всё ещё фиксирует базу со старыми строками. Попутно цикл от правки до платы сократился с примерно 104–111 с до примерно 19–28 с, в основном за счёт флага роутера, ассемблера из t27-спеков и более быстрого такта JTAG.

[одна машина и один день на запись; запись есть у 10 из 596 команд; tri cast пока не входит в релиз tri] Записанную команду можно проиграть и проверить, описанную — только принять на веру. tri cast записывает настоящий вывод терминала, чистит и проверяет его и публикует страницу, карточку-превью и плеер.

[один дизайн, один ноутбук при нагрузке 12,6 на 8 ядрах; цифры L1 и L2 — потолки по Амдалу, а не результаты; часы в год опираются на названные допущения] Мы засекли каждый слой одной настоящей сборки XC7A200T через openXC7. Синтез занял 12,7 с, размещение и разводка 70,1 с, FASM в кадры 33,9 с, кадры в битстрим 0,2 с, всего 116,9 с. С двумя слоями, уже пересобранными из t27-спеков, flow занимает 83,5 с, в 1,40 раза быстрее, и битстрим совпадает байт в байт. Размещение и разводка теперь 60% сборки: если бы они не занимали времени, flow был бы в 8,75 раза быстрее, а мгновенный синтез упирается в 1,65 раза. Числа — в записанной терминальной сессии. В релизе tri этих инструментов пока нет.

[один дизайн на одной плате, эквивалентность, а не лучший битстрим; время на одном занятом ноутбуке, отношения грубые; скорость fpga-assembler — из его README, не наша] openXC7 превращает FASM в битстрим Xilinx 7-series двумя инструментами prjxray: fasm2frames на Python и xc7frames2bit на C++. Мы пересобрали эту половину так, что каждая позиция бита, адрес кадра и слово пакета берутся из трёх t27-спеков. Против двух инструментов она совпадает байт в байт на 22 из 22 файлов FASM и 16 из 16 файлов кадров и быстрее примерно в 6–14 раз на небольших настоящих дизайнах, примерно в 85 раз на дизайне в 121 587 строк и до примерно 200 раз на синтетических тестах. Сравнение нашло тихий заворот битов в fasm2frames (f4pga/prjxray#2574), отсутствующую проверку микросхемы в xc7frames2bit (#2573) и наш собственный баг на kintex7. На плате AX7203 (XC7A200T) .bit, записанный так для дизайна в 121 587 строк, совпал с openXC7 байт в байт, загрузился в SRAM и вернул 403 200 из 403 200 помеченных квитанций.

[счётчики измерены через GitHub API 2 октября 2026; смержен значит принят мейнтейнером openXC7, а не вошёл в релиз; проверки битстримов — стенд cavearr с Vivado и наша плата XC7A200T] С 1 сентября мы открыли 12 pull request'ов в чужих репозиториях: 11 в openXC7, открытой цепочке сборки для Xilinx 7-series, и 1 в inngest. 5 смержены, 7 открыты. Большая часть идёт по одной нитке: дизайн с региональным клоковым буфером (BUFR) на XC7A200T не собирался открытым flow, и чтобы это исправить, пришлось пройти плейсер, трассировщик, запись битстрима и базу битов. Потом t27-спек строк этой базы нашёл баг в парсере компилятора t27, и мы исправили его в своём репозитории.

Подписи на изображении — на английском.
[оценки nextpnr-xilinx после разводки на xc7a200tfbg484-2, не подписанный тайминг; отдельный блок на синтетических выводах, а не целый дизайн; результат JTAG — с нашего стенда] Два вопроса стенда стали двумя командами. tri fpga-seeds считает Fmax диапазоном по seed размещения: тернарный блок скалярного произведения на 321 LUT дал от 164,15 до 200,40 МГц на 20 seed и от 62,68 до 76,75 МГц с выводами, разнесёнными по корпусу, при одном и том же нетлисте во всех прогонах. tri fpga-jtag читает, какой чип стоит в цепочке, никогда не прошивает и отличает молчащий TDO от сломанного кабеля. На нашем стенде она поймала XC7A200T там, где ожидался XC7A100T.

Подписи на изображении — на английском.
[измерено на строгом сете t27 из 391 айтемов: 0/150 плоской генерации против 3/150 маскированной на тех же 30 труднейших; 65% первых ошибок компиляции — необъявленные идентификаторы; строгая петля закрыта на 30 раундах / 8083 сэмплах = 4/391 pass, 283/391 compile; три ограничения декодера, ноль параметров; чекпоинт бенчмарка = t27-файнтюн tern_tc, пакет шипит базовый] tern_tc, тернарная модель на 9M под блочную память XC7A200T, не может выучить имена областей видимости — и вместо масштабирования мы ограничили её декодер: маска области видимости на каждом шаге, разнообразие правилами маски, а не температурой (15/30 против 3/30 union compile), и запрет n-граммов повторов после того, как 1517/2177 нескомпилированных кандидатов оказались каскадами повторов. Результат — не решатель: 1.0% строгого сета проходит тесты. Это модель-черновик для верификатора: 72% сета получает компилируемое тело, tri tc-draft возвращает первое проверенное тестами или честный отказ.

Подписи на изображении — на английском.
[измерено на FPGA: слой 0, проверено 403 200 из 403 200 квитанций, зарегистрировано до запуска; шаг phi и сборка разрядов — арифметика хоста; один синтетический вектор активаций] Веса GFTernary из статьи о TNF, t*phi, применённые к активациям из Z[phi], отработали на неизменённом узле AX7203 без умножителя. Каждый выход равен W.b + (W.a + W.b)*phi, так что узел считает только тернарные скалярные произведения, а хост делает одно сложение на выход. Все 5 632 строки Z[phi] слоя 0 совпали бит в бит с оракулом обычного умножения в Z[phi].

Подписи на изображении — на английском.
[измерено на FPGA: все 42 обученные матрицы, проверена каждая квитанция; активации — тестовые векторы, а не прямой проход] AX7203 посчитала 28 416 из 28 416 строк матриц весов обученной модели tern_tc бит-точно, а её харнесс сообщил о 284 160 аутентифицированных квитанциях, не сравнив ни одного тега. Исправленный харнесс падает на семи видах неисправной ячейки. На плате он затем проверил все 403 200 квитанций по всем 42 тернарным матрицам, 33 792 из 33 792 строк бит-точно, и ещё 51 840 для w_down с int8-активациями. Первые длинные прогоны остановились, когда канал UART терял байты при 64 задачах в полёте. Проверка, зарегистрированная до запуска, поместила порог потерь на приёмный буфер USB-моста в 512 байт, а при 24 задачах в полёте не потерялось ни одного байта.

Подписи на изображении — на английском.
[результаты моделей измерены на GPU; пропускная способность платы выведена, не измерена] Одна Artix-7 200T держит слои тернарной модели на 13M параметров в собственной блочной памяти. В нашем парном эксперименте тернарная модель на 100M проходит 1,01% против 1,68% у полной точности на восьми языках, и разрыв — это компиляция, а не корректность. Модель, чаще ошибающаяся, полезна только там, где каждый ответ проверяет компилятор.

Подписи на изображении — на английском.
[дизайн] 100% TRI намывается за принятую работу .t27, без премайна; правило чеканки-при-принятии — золотой оракул на Zig (11/11 тестов), с минтерами TON и Solana, чей дайджест совпадает межъязыково (cargo test 4/4). Ничего не задеплоено.

Подписи на изображении — на английском.
Смерженные изменения Queen показывают действия по мере поступления, сохраняют компактный журнал и позволяют вводу человека запрашивать управление на сервере — с явными ограничениями передачи руля.

Подписи на изображении — на английском.
Генераторы JavaScript и TypeScript получили явные записи о пропусках: Spec Explorer теперь отличает полезный, но частичный модуль от полного результата и от неудачной компиляции.

Подписи на изображении — на английском.
Введение T27 для агентов — один проверяемый компилятором модуль по двум адресам, с исполняемыми проверками утверждений и явной границей полномочий читателя.

Рой кодовых агентов переписывает этот стек на собственный язык, по одному файлу на задачу. Войти можно двумя способами - написать спеку или одолжить ключ провайдера, - и здесь сказано, чего стоит каждый, что приносит, и чьи условия тихо запрещают второй.

[Измерено] Для изолированного декодера GFTernary зафиксированы 66 LUT и 974,66 МГц на Artix-7 XC7A200T, вместе с тулчейном, статистикой seed и базовой линией на той же части. Квитанция не заявляет токены в секунду или пропускную способность системы.

Подписи на изображении — на английском.
[доказано] Смерженный PR в t27 исправил некорректный вызов Yosys и изменил три строки статуса FPGA с зелёных на красные после 881 исторического запуска: 36 успехов, 842 ошибки и 3 отмены.

Подписи на изображении — на английском.
[измерено] Signal health (self) run 32 успешно завершил 2 job и 11 шагов, но квитанция относится только к одной плановой цепочке.

Подписи на изображении — на английском.
[измерено] Смерженный PR #983 изменил 3 CSS-файла после проверки Chrome 390×480, где телефонный layout выбирался по высоте вместо ориентации.

Подписи на изображении — на английском.
[измерено] Смерженный PR #975 изменил 85 файлов: 4 154 строки добавлены, 58 удалены; эти квитанции всё равно нужно отделять от корректности интерфейсов и доставки на живой сайт.

Подписи на изображении — на английском.
[отчёт в смерженном PR #793] Генератор VIBEE теперь называет входы Markdown, TOML и t27 вместо молчаливого создания пустых VIBEE-модулей, а нераспознанные файлы сохраняют прежний путь.

Подписи на изображении — на английском.
[измерено в смерженном PR #778] Поддерево Zig codegen стало импортируемым, и стали достижимы 90 ранее скрытых тестов; в отчёте проверки число шагов выросло со 155 до 157, а число тестов — с 2 832 до 2 939.

Подписи на изображении — на английском.
[измерено] Смерженная правка fp6_e3m2 изменила 8 граничных кодов, оставила 56 кодов без изменений и привела проверку 66 720 кодов к 0 несовпадений.

[измерено] Zig разрешает -target x86_64-linux в musl. Задача, заведённая ловить платформенно-слепую верификацию, компилировала каждый переведённый файл против libc, который не использует ни одна настоящая сборка проекта.

Подписи на изображении — на английском.
[измерено] Заметка фиксировала 100 кГц как единственную стабильную частоту JTAG для этого кабеля. openFPGALoader прогнал тот же кабель на 6 МГц и прошил битстрим, который OpenOCD не смог начать.

Подписи на изображении — на английском.
[измерено] Смерженный PR #937 добавляет датированный снимок основания и контракт с фикстурой, который делает источник данных страницы видимым.

Монитор остановки диска, требующий два подряд идущих восстановительных показания перед снятием, получил первую настоящую проверку на реальном кризисе, а не на синтетическом, спустя три дня после написания.

Подписи на изображении — на английском.
[измерено] Смерженный PR #892 изменил один README: добавил две строки и удалил две, исправив запись с «никогда не подан» на «подан, не соответствует административным требованиям и не рассмотрен по существу».

Подписи на изображении — на английском.
Смерженный PR #888 добавляет четыре явных состояния ревью в диффе на 5 файлов, а отдельные свидетельства CI показывают, что состояние merge и доставка — разные факты.

Подписи на изображении — на английском.
Предложенная строка в базе прошивок Xilinx полтора года оставалась непроверяемой. Две прошивки по 22.7 МБ, различающиеся одним битом, закрывают вопрос на кремнии: с битом светодиод мигает, без него счётчик стоит.

Подписи на изображении — на английском.
Публичный срез GitHub Actions для коммита 442bcda8bc50fe555de9d463bfd34b247c5995a5 фиксирует 9 запусков: 8 запусков push разделились на 4 success и 4 failure, ещё 1 отказ был вызван событием issue; Jobs API показывает разные точки остановки, а не общую причину.

Подписи на изображении — на английском.
Три кристалла, не доехавшие до фабрики, становятся тремя слоями гейтвера на самом изученном семействе FPGA: аттестация при загрузке, BLAKE3-квитанция на каждое действие, тернарный двигатель с пустой колонкой DSP. Агент-в-коробке существует; проверяемое устройство существует; пересечение пусто.

Подписи на изображении — на английском.
Смерженная правка генератора Verilog перевела один симуляционный сценарий с 5 PASSED / 6 FAILED на 11 PASSED, а синтаксическая приемка осталась на 380 файлах — поэтому гейты формы и численного смысла должны быть раздельными.

Отчёт о паритете двух деревьев place-and-route для Xilinx отранжировал собственные задачи наоборот: 179 недостающих фич BRAM оказались нулевыми кодовыми точками, а блокер, не пускавший битстрим на плату, не давал в счётчиках фич никакой разницы.

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

Подписи на изображении — на английском.
Негативный контроль гейта пишет тот, кто сажает дефект, который контроль должен поймать. Эта одна фраза объясняет почти всё, что граничный оператор мутаций нашёл в наборе, уже вычищенном тремя другими.

Подписи на изображении — на английском.
Мутационный инструмент довёл набор гейтов от четырёх без негативного контроля до нуля таких и от двадцати выживших мутантов до нуля. За ту же неделю он трижды совершил ровно ту ошибку, ради поиска которой написан.

Подписи на изображении — на английском.
Два поста этой серии — про гейты, которые падают, ничьё поведение не меняя. За четверо суток после их написания я смержил четыре пул-реквеста мимо красного гейта, ни разу его не открыв.

Подписи на изображении — на английском.
Мутационный инструмент сообщил, что у гейта нет путей отказа. Их четыре — все тернарники, форма, которой сканер не знал, и потому засчитал их покрытыми.

Подписи на изображении — на английском.
Четыре гейта никогда не видели красными. Написание негативных контролей дало один, который рапортовал «все ветки красные», пока охраняемый им гейт печатал OK на сломанном каталоге.

Подписи на изображении — на английском.
Одна из четырёх обязательных проверок — тех, мимо которых правило ветки не пропустит мерж — оказалась командой оболочки, печатающей предложение. Двадцать строк, никакой логики, зелёная на каждом пул-реквесте, обязательна месяцами. При этом тестовый набор, за который её принимали, никогда не блокировал мерж, и тринадцать тестов падают на главной ветке бессрочно, потому что их никто не ждал.

Подписи на изображении — на английском.
Гейт, охраняющий живые документы от отозванных чисел, поймал нарушение на том же пул-реквесте, который его и внёс — нужный файл, нужные строки, код 1 — и пул-реквест всё равно смержился, потому что он не обязателен. Третий вариант отказа по достижимости: не «не запускается» и не «запускается не на том диффе», а «запускается, падает, называет точные строки — и ответа никто не ждёт».

Подписи на изображении — на английском.
Гейт, написанный чтобы ошибки элаборации не возвращались, сообщил про 186 штук; 25 из них были собственной итоговой строкой компилятора о том, сколько ошибок он нашёл. Число уже успело уехать в коммиты и на страницу статуса. Доказательство, которое не могло получиться иначе, живой дефект эмиттера, прятавшийся внутри счёта, почему от починки число стало хуже, и одна починка, которую построили, измерили и выбросили.

Подписи на изображении — на английском.
Экономичность основания — теорема, а не измерение: 5,66 процента в ламповой модели 1950 года, победа на проводе в USB4 v2 и GDDR7 и проигрыш на вентиле по запасу помехоустойчивости.

Подписи на изображении — на английском.
Тридцать четыре файла conformance-векторов, 512 кейсов, ни один никогда не исполнялся — а когда посчитали, 412 из них не несли ни входов, ни ожидаемых значений. Как корпус становится декоративным, почему первый классификатор дал 147 там, где независимый проход дал 100, и трёхвердиктный реестр (исполняется / именованный долг / аспирационное), позволяющий заменить большое ложное число маленьким истинным.

Подписи на изображении — на английском.
Повторное измерение при равной ширине хранения отозвало прежний выигрыш 2,1×/2,6× над takum и зафиксировало дефекты оракула и бюджета, изменившие интерпретацию.

Подписи на изображении — на английском.
Тридцатиэпоховый sweep на MNIST показал, почему рядом с порогом по доле отказов нужны значения по каждому seed: счёт «прошёл» может сосуществовать с неперекрывающимися прогонами.

Подписи на изображении — на английском.
Задача формальной верификации оставалась зелёной всю жизнь, пока три независимых механизма гарантировали, что красной она стать не может: псевдо-синтаксис конфигов, пайп, проверявший tee вместо инструмента, и continue-on-error поверх всего. Путь до первого настоящего доказательства занял семь именованных слоёв — включая RTL на четыре месяца старше тестируемого компилятора и property-файлы, никогда не инстанцировавшие DUT. Финал — первые настоящие формальные вердикты репозитория: fifo и mac, Status PASSED под z3.

Подписи на изображении — на английском.
Post-route CI-прогон дал пятнадцати инструментированным строкам FPGA-частот сравнение с источником: четырнадцать попали внутрь измеренного шума потока, а LNS16 осталось явным исключением и один дизайн по-прежнему не инструментирован.

Подписи на изображении — на английском.
Два автономных агента, один репозиторий, волна в 643 коммита, влитая посреди полёта. Четыре текстовых конфликта оказались безопасной частью — три были конфликтами комментариев, а в четвёртом обе стороны чинили один и тот же баг. Дефект, доехавший до master, приехал в чисто слившемся хабе: смена устройства по умолчанию, на которое CI-workflow опирался отсутствием флага, — а отсутствие конфликтовать не может. Он прошёл place-and-route по чужой базе и упал на первом шаге, который ищет имя, а не доверяет пути.

Подписи на изображении — на английском.
Собирающая битстрим CI-задача была красной одиннадцать дней. Под этим — тринадцать слоёв дефектов, каждый невидим, пока не вылечен верхний: фальшивая база кристалла, список зависимостей, который никто не исполнял, и шаг успеха, отвергнувший первый настоящий битстрим в истории задачи. Теперь задача выдаёт битстрим xc7a100t в 3 822 704 байта через полностью открытый поток.

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

Подписи на изображении — на английском.
Смерженный PR в FPGA-репозитории заменяет сравнение только модулей полным сумматором и сообщает о 3000 проверках оракулом, 0 ошибках и результате 440 LUT после синтеза.

Подписи на изображении — на английском.
Формат, у которого φ в названии. Измерено: в двухбитном алфавите цифр φ вообще не наблюдаем, а скалярное произведение векторов GFTernary точно равно φ² на те же коды, прочитанные как сбалансированная троичная. Предшествующая работа поставила φ туда, где он несёт информацию, ещё в 2002-м.

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

Подписи на изображении — на английском.
Порог, который я добавил, требовал пять строк отчёта и валил три из четырёх нормальных форм дизайна; воркфлоу открывался по метке, которой не существовало, поэтому каждая кнопка «Start a run» вела в никуда. Обе проверки были правы в том, что требовали, и молчали о том, выполнимо ли требование.

Подписи на изображении — на английском.
Смерженная исследовательская заметка показывает, как выбор из девяти placements по среднему отступу становится более узким утверждением после учёта семейства сравнения.

Подписи на изображении — на английском.
Свежий коммит обновляет снимок здоровья CI: со 156 до 143 отказов в окне из 200 прогонов, одновременно фиксируя знаменатель и правила исключения.

Подписи на изображении — на английском.
Смерженный аудит FPGA-репозитория показывает, как отсутствующий checkout превратил двенадцать непроверенных расхождений в видимость исправлений, а ещё два отказа оказались обычной проблемой раннера.

Подписи на изображении — на английском.
Флаг, версия, раннер, модуль, скрипт, три спеки, два пути форматирования, пять ссылок на сабмодули и шаг, который запускал то, что называл сборкой. Каждый сообщал «failure» — ровно как сообщил бы настоящий дефект.

Подписи на изображении — на английском.
Наш CLI не мог поставить никто, а CI, который должен был об этом сказать, имел ноль успехов из тридцати прогонов. Каждая причина прятала следующую; удаление четвёртой породило пятую.

Подписи на изображении — на английском.
Вендоренный Verilog от апреля 2023 нёс дефект, который его генератор исправил в марте 2026. Ручная правка верна и временна: следующая регенерация её снесёт.

Подписи на изображении — на английском.
Пятнадцать сборок openXC7 с объявленными границами: у малых дизайнов на превращение FASM в битстрим уходит больше времени, чем на трассировку, blinky проиграл умножителю GF, а разброс на побайтово одинаковой работе — 25%.

Подписи на изображении — на английском.
Смерженный аудит 67 целей снимает трактовку около 10σ после перечисления семейства поиска, в котором близкие совпадения часто возникают случайно.

Подписи на изображении — на английском.
Четыре влитых исправления сделали CI демо-проектов openXC7 зелёным. Самое старое — bool, который никто не читал: с февраля 2020 плейсер знал, что размещение невалидно, и выбрасывал ответ.

Подписи на изображении — на английском.
Двенадцать прогонов публикатора подряд упали на проверке, которая каждый раз была права, а шесть смерженных pull request просидели шестнадцать часов невидимыми для читателя.

Подписи на изображении — на английском.
Смерженная исследовательская правка заменяет 140 объединённых окон четырьмя репликами уровня модели и превращает одиннадцать видимых вердиктов в ничьи.

Подписи на изображении — на английском.
Семь таймерных циклов ничего не писали при пустом тике. Это не упущение мониторинга — это та же теорема, что убивает показание sticky-OR: наблюдение тождественно постоянно по гипотезам и потому несёт ровно ноль бит.

Подписи на изображении — на английском.
2026-08-09 в моих заметках стояло: шесть патчей открыты, ни один не слит. К 2026-08-11 openXC7 слил двадцать. Занятно не число, а то, что я не знал его, пока не запустил запрос.

Подписи на изображении — на английском.
Одну папку разделили на два репозитория, и обе сохранили плоские импорты друг друга. Не компилировалась ни одна — и именно невозможность собраться мешала любой из них сообщить о проблеме.

Подписи на изображении — на английском.
Пакет объявлял 640 тестов и не выполнил ни одного, а код возврата был 0. Механизм самый обыкновенный, починка — одна строка на импорт, а под ней обнаружилась физическая константа, которую не даёт ни один вход.

Подписи на изображении — на английском.
Два репозитория несли одни и те же шесть файлов под одними именами. Починка одного не изменила ничего внизу по цепочке, и ни один прибор не мог сказать почему — потому что каждая копия компилируется сама по себе.

Подписи на изображении — на английском.
Стоимость положительной и отрицательной половины активаций различается устойчиво и в одну сторону. Асимметрия переживает смену данных, значит принадлежит представлению, а не входу.

Подписи на изображении — на английском.
φ² + 1/φ² = 3 — тождество, на котором стоит вся арифметика проекта. Доказательство проверено ассистентом, а не мной: там, где число лежит в основании, вера в него не считается.

Подписи на изображении — на английском.
Sticky-OR по окну несёт ровно ноль бит, если окно заведомо содержит высокий отсчёт. Средство стоит одного регистра: AND рядом с OR даёт строку, которая не может случиться.

Подписи на изображении — на английском.
Запас, при котором кадр ещё принимается, падает не с длиной, а с её логарифмом. Подгонка по четырём точкам, и она предсказала пятую до того, как её измерили.

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

Подписи на изображении — на английском.
ctx=18 даёт PPL 5.58, ctx=27 даёт 2.96, ctx=54 даёт 6.05 — хуже базы. Степени тройки это орбитали, а значения между ними — запрещённые зоны.

Подписи на изображении — на английском.
Каждая теорема свода перепроверена против собственного доказательства. Четыре устояли. Одна сузилась, одна перестала быть теоремой, одна оказалась дубликатом другой.

Подписи на изображении — на английском.
У каждого формата, с которым мы сравниваемся, своя эталонная реализация по его спецификации — после пяти ошибок, каждая из которых ослабляла конкурента и все в одну сторону.

Подписи на изображении — на английском.
Порог обнаружимости n ≈ 3.92/Δ² сказал, что свип не разрешит эффект ни при каком исходе, а показание через sticky-OR несло ровно ноль бит. Оба известны заранее.

Подписи на изображении — на английском.
Пакет на Zig с проходящими тестами не мог собрать ни один потребитель. Ленивый анализ означает, что тесты доказывают лишь то, до чего дотянулись: одна строка вскрыла пять скрытых ошибок в одном пакете и шестнадцать в том, что под ним.

Подписи на изображении — на английском.
Четырёх бит хватает на общий масштаб во всех измеренных чекпоинтах — побитово идентично E8M0, ноль обрезанных блоков из 20 462 464. Наблюдение опубликовано раньше и не нами; нашим остаётся доказательство вокруг него, а константа не переживает встречи с активациями.

Подписи на изображении — на английском.
RGMII на гигабите через Yosys, nextpnr-xilinx и Project X-Ray без вендорских инструментов — шесть блокеров, которые пришлось пропатчить, один оставшийся открытым, и во что обходится обходной путь.