Вышел 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
Полный перечень изменений
>>> Анонс
