Вышел Rust 1.23
4 января вышел плановый 1.23 релиз компилятора и стандартных средств разработки системного языка программирования Rust.
Интересные изменения:
- За счёт предотвращения ненужного копирования аргументов функций уменьшено потребление памяти. Например сам компилятор
rustc
стал потреблять на 5–10% меньше памяти. rustdoc
перешёл на рендеринг документации при помощи CommonMark. Раньше использовался Hoedown.- The Cargo Book переехал с doc.crates.io на doc.rust-lang.org и обновил формат.
cargo uninstall
научился сразу удалять несколько пакетов. Например командаcargo uninstall foo bar
удалит foo и bar.auto
трейты теперь разрешены в трейтовых объектах. Один из коммитов этого изменения так же окончательно удалил элемент языкаsend
.- Проверки типов операндов бинарных операторов теперь производится относительно левого операнда, что предотвращает путаницу в соответствующих сообщениях об ошибках.
- Удалена необходимость в
T: Sync
дляRwLock
: Send - Удалена необходимость в
T: Sized
для{<*const T>, <*mut T>}::as_ref
и для<*mut T>::as_mut
- Оптимизирована реализация
Thread::{park, unpark}
- Улучшена производительность
SliceExt::binary_search
- Трейт
AsciiExt
объявлен устаревшим, а его методы перенесены в примитивные типы. char::escape_debug
теперь использует Unicode 10 вместо Unicode 9.- Включён LLVM флаг
TrapUnreachable
- musl, используемый для сборки musl rustc, обновлён до 1.1.17
- Улучшена производительность
SliceExt::binary_search
rustfmt
включён в основную инсталляцию.- минимальная версия LLVM изменена на 3.9
Полный перечень изменений
>>> Анонс