[#] Rust 1.9
Новостной_робот(mira, 1) — All
2016-05-27 20:00:06


Анонсирована очередная версия языка программирования 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