TGViewer
Блог* Блог* @dereference_pointer_there · 1.99K subscribers
Post #10706 1K
#prog #rust #rustreleasenotes

Вышла версия Rust 1.93.0! Как обычно, тут только избранное, остальное только в детальных заметках о релизе.

(да, я выкладываю анонс с опозданием больше недели, и что ты мне сделаешь?)

В этот раз большинство изменений связаны со стандартной библиотекой.

▪️Немного печальное изменение: даже с установлением #[global_allocator] std всё ещё может вызывать System аллокатор. По крайней мере, на core это не распространяется.

▪️Компилятор теперь выдаёт предупреждение на #[repr(C)]-перечисления, у которых значения дискриминантов не умещаются в сишный int. Смешно, но до C23 у сишных enum нельзя было указать численный тип и нельзя было использовать значения больше int для дискриминантов.

▪️Компилятор теперь выдаёт предупреждение на попытку вызвать метод на const-значении, который эксплуатирует внутреннюю изменяемость. Так как константы инлайнятся по месту использования, эти изменения не будут видны. Обычно это является следствием ошибки — использования const вместо static (и я, кстати, такую ошибку уже делал).

▪️Метод append на BTreeSet и BTreeMap теперь сохраняет ключ из исходной коллекции, если ключи считаются равными через ==. До этого перезаписывались и ключ, и значение.

▪️Стабилизированы API:

🔸assume_init_drop, assume_init_ref и assume_init_mut на MaybeUninit<T>
🔸write_{copy, clone}_of_slice на [MaybeUninit<T>]
🔸into_raw_parts на String и на Vec. Странно, что только сейчас, потому что обратные from_raw_parts методы были стабилизированы ещё в версии 1.0.
🔸методы для непроверяемых (и потому потенциально дающих UB) битовых сдвигов в обе стороны на примитивных числах, а на знаковых — ещё и unchecked_neg
🔸методы для перевода ссылок на слайсы в (опциональные, разумеется) ссылки на массивы и сырых указателей на слайсы в сырые указатели на массивы, включая мутабельные варианты
🔸pop_front_if и pop_back_if на VecDeque
🔸std::fmt::from_fn для ad-hoc форматирования через переданную функцию. Позволяет избежать создания одноразовых типов, нужных только для форматирования

▪️Cargo теперь прокидывает значение конфигурации debug_assertions в билд-скрипты.

▪️Команда cargo tree теперь позволяет использовать для форматирования записей в дереве длинные имена для элементов шаблонов. Например, следующие два вызова эквивалентны:

cargo tree --format='{p} {f}'

cargo tree --format='{package} {features}'

▪️cargo clean теперь может удалять артефакты компиляции из всего workspace-а целиком.
  • 👍 8
  • 😁 1
More from @dereference_pointer_there
  1. Oct 9, 2026#prog #rust #meme Было в r/rustjerk, но сначала выложили в r/ClaudeCode
  2. Oct 9, 2026Welp
  3. Oct 9, 2026#prog #article Оттуда: The case against JPEG XL
  4. Oct 9, 2026#prog #article Shipping JPEG XL in Chrome Но в треде на r/rust пишут, что есть сомнения в…
  5. Oct 9, 2026#prog #rust #rustlib hashify v0.3: compile-time perfect hashing, now 4 to 12 times faster…
  6. Oct 9, 2026#prog #meme про... Slop
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →