Repository navigation
flang 0.7.12
Все девять целей печати наконец приезжают с установкой
0.7.11 вёз рантайм одной цели: brew install клал share/flang/c и только. Восемь остальных были обещаны в man, в обоих README и в справке самого двоичного — и у поставившего не работали. Нашлось живьём, попыткой flang emit --target js.
Теперь архив, формула Homebrew и asdf везут все девять — 32 файла рантайма, runtime/<цель>/. Проба формулы щупает две цели вместо одной: пока она щупала одну, ровно одна и работала.
Ключ кеша приговоров был подделываем
Многочленный отпечаток линеен — столкновение не искали перебором, а решали уравнением за 3,6 секунды. Показано на живой программе: два постусловия, одно ядро доказывает, другое отвергает, имена подобраны под общий ключ. Печать с горячим кешем ставила ноль сторожей постусловия вместо одного — обоими кодами 0 и без слова в stderr.
Ключ переведён на sha256. Цена названа честно: честный кеш не окупается — 23,0 с против 22,2 с вообще без кеша, потому что sha256 написан на самом flang.
Целей в CI восемь из девяти вместо двух
Расширение упиралось не в цену, а в то, что никто не мерил: шесть тулчейнов из семи уже лежат в образе раннера. Вся связка стоит 15,8 с. Без присмотра осталась одна цель, elixir, и это сказано в выводе самого шага, а не умолчано.
Чекер перестал врать в обе стороны
- доля проверенного корпуса 32,56 % → 56,98 % по записям;
- набор проб: 159 подделок — принято кодом 0 ноль; 119 честных — отвергнуто ноль;
- ложные тревоги на честных записях: 62 из 923 → 0.
Примеры самого компилятора гоняются
Их 4453, и до этого выпуска не исполнялся ни один — единственная работа, которая до них дошла бы, падала по памяти на трёх метках подряд. Теперь под присмотром 4350.
Семя воспроизводимо
Две перепечатки одного дерева дали побайтово одинаковое тело: 4 файла, 1 229 825 байт.
Порода, всплывшая за сутки восемнадцать раз: сторожат ровно то, что умеют посчитать.