Выпуск языка программирования Rust 1.55
Автор
Сообщение
news_bot ®
Стаж: 6 лет 11 месяцев
Сообщений: 27286
Опубликован релиз языка системного программирования Rust 1.55, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).
Автоматическое управление памятью в Rust избавляет разработчика от ошибок при манипулировании указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.
Основные новшества:
- В пакетном менеджере Cargo реализована возможность объединения дубликатов ошибок и предупреждений, возникающих во время сборки. При выполнении таких команд как "cargo test" и "cargo check --all-targets", приводящих к многократной сборке пакета с разными параметрами, пользователю теперь показывается сводная информация о возникновении повторяющейся проблемы, вместо отображения нескольких одинаковых предупреждений при повторной сборке одного и того же файла.
$ cargo +1.55.0 check --all-targets
Checking foo v0.1.0
warning: function is never used: 'foo'
--> src/lib.rs:9:4
|
9 | fn foo() {}
| ^^^
|
= note: '#[warn(dead_code)]' on by default
warning: 'foo' (lib) generated 1 warning
warning: 'foo' (lib test) generated 1 warning (1 duplicate)
Finished dev [unoptimized + debuginfo] target(s) in 0.84s
- Код для разбора чисел с плавающей запятой в стандартной библиотеке переведён на использование более быстрого и точного алгоритма Эйзеля-Лемира, применение которого решило некоторые ранее наблюдаемые проблемы с округлением и разбором чисел с очень большим числом цифр.
- Стабилизирована возможность указания незакрытых диапазонов в шаблонах ("X.." интерпретируется как диапазон, который начинается со значения X и заканчивается максимальным значением целого типа):
match x as u32 {
0 => println!("zero!"),
1.. => println!("positive number!"),
}
- Расширены варианты ошибок, охватываемые списком std::io::ErrorKind (классифицирует ошибки по категориям, таким как NotFound и WouldBlock). Раньше, ошибки не подпадающие под имеющиеся категории, попадали в категорию ErrorKind::Other, которая также применялась для ошибок в стороннем коде. Теперь для не подпадающих под имеющиеся категории ошибок создана отдельная внутренняя категория ErrorKind::Uncategorized, а категория ErrorKind::Other ограничена только ошибками, возникающими не в стандартной библиотеке (функции стандартной библиотеки, возвращающие
io::Error, больше не используют категорию ErrorKind::Other).
- В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
- Bound::cloned
- Drain::as_str
- IntoInnerError::into_error
- IntoInnerError::into_parts
- MaybeUninit::assume_init_mut
- MaybeUninit::assume_init_ref
- MaybeUninit::write
- array::map
- ops::ControlFlow
- x86::_bittest
- x86::_bittestandcomplement
- x86::_bittestandreset
- x86::_bittestandset
- x86_64::_bittest64
- x86_64::_bittestandcomplement64
- x86_64::_bittestandreset64
- x86_64::_bittestandset64
- Признак "const", определяющий возможность использования в любом контексте вместо констант, применён в методе str::from_utf8_unchecked.
- Реализован третий уровень поддержки для платформы powerpc64le-unknown-freebsd. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://blog.rust-lang.org/202...)
- OpenNews: Выпуск языка программирования Rust 1.54
- OpenNews: Уязвимость в сетевых библиотеках языков Rust и Go, позволяющая обойти проверку IP-адресов
- OpenNews: Представлена реализация Tor на языке Rust, которая в будущем заменит вариант на Си
- OpenNews: Вторая редакция патчей для ядра Linux с поддержкой языка Rust
- OpenNews: Представлена библиотека Aya для создания eBPF-обработчиков на языке Rust
Похожие новости:
- В Ruffle интегрирована поддержка кодека H.263, написанного на языке Rust
- Уязвимость в сетевых библиотеках языков Rust и Go, позволяющая обойти проверку IP-адресов
- Выпуск языка программирования Rust 1.54
- Для ядра Linux предложен драйвер GPIO, написанный на Rust
- [Rust] Конспектируем Книгу Rust:: Времена и функции
- [Программирование, Совершенный код, C, Rust, Браузеры] Tor Project планирует заменить код C на Rust
- [Rust] Конспектируем Книгу Rust:: Владение
- Проект Tor представил реализацию на языке Rust, которая в будущем заменит вариант на Си
- [Информационная безопасность] Атака через поставщика или подрядчика глазами пентестера
- Вторая редакция патчей для ядра Linux с поддержкой языка Rust
Теги для поиска: #_rust
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 01-Фев 10:58
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 11 месяцев |
|
Опубликован релиз языка системного программирования Rust 1.55, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки). Автоматическое управление памятью в Rust избавляет разработчика от ошибок при манипулировании указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io. Основные новшества:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 01-Фев 10:58
Часовой пояс: UTC + 5