И это всё МОЁ
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<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
Полный перечень изменений