Анонсирована очередная версия языка программирования Rust 1.9, разрабатываемого Mozilla совместно с сообществом. Примечательно то, что с момента релиза первого стабильного выпуска прошел 1 год.Основные изменения: Стабилизирован модуль [ std::panic ](
https://doc.rust-lang.org/stable/std/panic/ ) , позволяющий перехватывать раскрутку стека. Соответствующие функции рекомендуется применять только в исключительных ситуациях, но никак не для эмуляции механизма try-catch. Стабилизированы методы настройки TCP и UDP соединений; расширены возможности [ OsString ](
https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html ) , [ BTreeSet ](
https://doc.rust-lang.org/stable/std/collections/struct.BTreeSet.html ) и [ HashSet ](
https://doc.rust-lang.org/stable/std/collections/struct.HashSet.html ) ; [ char ](
https://doc.rust-lang.org/stable/std/primitive.char.html ) может быть [ получен ](
https://doc.rust-lang.org/stable/std/char/fn.decode_utf16.html ) из UTF-16 последовательности; стабилизирована функция [ copy_from_slice() ](
https://doc.rust-lang.org/stable/std/primitive.slice.html#method.copy_from_slice ) ; появилась возможность работы с волатильными переменными с помощью [ read_volatile ](
https://doc.rust-lang.org/stable/std/ptr/fn.read_volatile.html ) и [ write_volatile ](
https://doc.rust-lang.org/stable/std/ptr/fn.write_volatile.html ) ; сырые указатели обрели [ .as_ref() ](
https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.as_ref ) и [ .as_mut() ](
https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.as_mut ) , которые возвращают [ Option ](
https://doc.rust-lang.org/stable/std/option/enum.Option.html ) , где null будет представлен как [ None ](
https://doc.rust-lang.org/stable/std/option/enum.Option.html#variant.None ) ; в [ libcore ](
https://doc.rust-lang.org/stable/core/index.html ) для всех типов реализован [ Debug ](
https://doc.rust-lang.org/stable/std/fmt/trait.Debug.html ) . Разработчикам библиотек доступен атрибут [ #[deprecated] ](
https://github.com/rust-lang/rfcs/blob/master/text/1270-deprecation.md ) , разрешающий компилятору слать предупреждения при использовании устаревшего API. [ Специализация ](
https://github.com/rust-lang/rfcs/blob/master/text/1210-impl-specialization.md ) уже используется в ночном релизе и будет доступна в стабильном 1.11 через 3 месяца, но оптимизация [ .to_owned() ](
https://doc.rust-lang.org/stable/std/borrow/trait.ToOwned.html ) и [ .to_string() ](
https://doc.rust-lang.org/stable/std/string/trait.ToString.html ) таки попала в текущий стабильный выпуск. Расширен список поддерживаемых платформ: mips-unknown-linux-musl, mipsel-unknown-linux-musl, i586-pc-windows-msvc. [ Ускорено ](
https://github.com/rust-lang/rust/pull/32062 ) время компиляции монады с одинаковыми функциями. Изменения в менеджере зависимостей Cargo: В системе могут работать несколько cargo одновременно, [ блокировки ](
https://github.com/rust-lang/cargo/pull/2486 ) теперь применяются на файлы. Переменную окружения [ RUSTFLAGS ](
https://github.com/rust-lang/cargo/pull/2241 ) можно использовать для передачи произвольных флагов компилятору.Для кросс-компиляции подготовлен инструмент [ rustup ](
http://blog.rust-lang.org/2016/05/13/rustup.html ) , обеспечивающий тривиальное взаимодействие с каналами сборок компилятора (stable, beta, nightly), стандартными библиотеками и их документацией к различным операционным системам, а также обновление всего этого зоопарка одной командой.
Ссылка:
http://www.linux.org.ru/news/mozilla/12623367