The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз языка программирования Rust 1.32"
Отправлено opennews, 18-Янв-19 20:56 
Состоялся (https://blog.rust-lang.org/2019/01/17/Rust-1.32.0.html) релиз языка системного программирования Rust 1.32 (http://www.rust-lang.org), развиваемого проектом Mozilla. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime.


Автоматическое управление памятью в Rust избавляет разработчика от манипулирования указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo (http://blog.rust-lang.org/2014/11/20/Cargo.html), позволяющий получить нужные для программы библиотеки  в один клик. Для размещения библиотек поддерживается репозиторий crates.io (https://crates.io/).


В подготовке нового выпуска приняли участие 152 разработчика. Основные новшества (https://github.com/rust-lang/rust/blob/master/RELEASES.md#ve...):

-  Добавлен новый макрос "dbg!", позволяющий упростить наблюдение за состоянием переменных в отладочных целях. Кроме непосредственного значения переменной, предложенный макрос также показывает имя файла, номер строки и название переменной, что делает его более удобным инструментом для отладки, чем вывод при помощи "println". Информация выводится в поток "stderr". Макрос также можно применять для анализа вычисления выражений и условных операторов, например, можно указывать "if dbg!(n <= 1) {" или "dbg!(n*f(n-1))";

-  Прекращено использование по умолчанию библиотеки распределения памяти jemalloc (http://jemalloc.net/) в пользу штатных системных функций выделения и освобождения блоков памяти. Несмотря на то, что jemalloc обеспечивает более высокую производительность, его применение приводит к увеличению размера исполняемого файла приблизительно на 300 Кб. Кроме того, jemalloc специфичен для Unix-подобных систем и в некоторых ситуациях приводит к возникновению проблем (https://github.com/rust-lang/rust/issues/36963#issuecomment-...). При необходимости продолжения использования jemalloc теперь нужно явно подключать пакет jemallocator (https://crates.io/crates/jemallocator);


-  Пути к модулям в выражении use, не начинающиеся с ключевых слов super, self и crate, теперь приводят к извлечению элемента (структуры, перечисления и т.п.), определённого в модуле до попытка определения внешнего пакета. Например, указание "use Color::*;" при наличии определения "enum Color { Red, Green, Blue };" до выражения "use", приведёт к импорту вариантов значений перечисления "Color";

-  В макросы добавлен новый проверочный признак "literal", позволяющий определить является ли переменная литералом, независимо от типа (строковым, числовым, символьным);

-  В определениях макросов теперь можно использовать оператор "?", позволяющий определить, что шаблон встречается 0 или 1 раз, по аналогии с тем как операторы "*" и "+" проверяют наличие шаблона 0 и более раз или один и более раз;

-  В разряд стабильных переведена новая порция API, в том числе стабилизированы методы to_be_bytes (big endian), to_le_bytes (little endian) и to_ne_bytes  (native) в модулях i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128 и usize;


-  19 различных функций (https://github.com/rust-lang/rust/blob/master/RELEASES.md#li...) определены с признаком "const" и могут применяться не только как обычные функции, но и использоваться в любом контексте вместо констант;

-  В пакетный менеджер Cargo обеспечена возможность указания имени пользователя в URL реестра и добавлена команда "cargo c", которая является сокращённым псевдонимом команды "cargo check".


URL: https://blog.rust-lang.org/2019/01/17/Rust-1.32.0.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=49984

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру