4 января состоялся плановый релиз компилятора и стандартных средств разработки системного языка программирования Rust — 1.23.
Интересные изменения:
- За счёт предотвращения ненужного копирования аргументов функций уменьшено потребление памяти. Например сам компилятор
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<T>: 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.
>>> Анонс






