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

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

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

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

Подписи на изображении — на английском.
[доказано] Смерженный 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 несовпадений.

Подписи на изображении — на английском.
[измерено] Заметка фиксировала 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 файлах — поэтому гейты формы и численного смысла должны быть раздельными.

Подписи на изображении — на английском.
Сравнение по зафиксированным оракулам обнаружило ошибку номинальной ширины: 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 без вендорских инструментов — шесть блокеров, которые пришлось пропатчить, один оставшийся открытым, и во что обходится обходной путь.