🦀 Вышел юбилейный Rust 1.100
Главное в языке: стабилизирован тип
!, то есть вычисления, которые ничего не возвращают (panic!, exit, return, бесконечный цикл). Он приводится к любому типу, поэтому ветка match с return больше не конфликтует с остальными, а Infallible стал алиасом !. Заодно стабилизировали часть Allocator API (пока только для Vec и Box), DropGuard, который гарантированно запускает замыкание при любом выходе из области видимости, и conjure_zst для создания типов нулевого размера в unsafe без трюков с transmute(()).Для тех, кто следит за цепочкой поставок, главная новость в Cargo. Настройка
global-min-publish-age = "3 days" не даёт cargo update подтянуть версию, которой ещё нет трёх дней. Расчёт простой: вредоносные релизы после взлома проекта обычно находят за первые часы или дни. Обойти карантин можно переменной CARGO_RESOLVER_INCOMPATIBLE_PUBLISH_AGE=allow. Ещё Cargo научился искать неиспользуемые зависимости (правила в [lints.cargo]) и перестроил build-dir, чтобы кэш не путался между наборами --features. Отдельно добавили powerpc64-sony-ps3 в tier 3, то есть без автотестов и официальных сборок. PlayStation 3 тоже получила поддержку.Параллельно крабы продолжают захватывать железо и системный софт. Cloudflare вместе с командой TypeScript делает порт компилятора на Rust, tsrs: он в 8 раз быстрее и ест на 70% меньше памяти, чем штатный компилятор TypeScript 7.0 на Go. Часть оптимизаций уже перенесли в основной компилятор, и тот ускорился до 2,5 раза. Rust выбрали ради WebAssembly: сборщика мусора там нет, а Cloudflare нужен TypeScript в Workers. Кроме того, появились rustd, демон, который хранит состояние компиляции и обещает до 25x на повторных и параллельных сборках, и FTL, облачная ОС на Rust со слоем совместимости с Linux (MIT, идея близка к gVisor). Драйвер Tyr для Mali-G610 вошёл в ядро 7.3, но до замены Panthor ему далеко.
@linux0ids