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.
>>> Анонс