The OpenNET Project / Index page

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



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

Исходное сообщение
"Релиз языка программирования Rust 1.21"
Отправлено opennews, 14-Окт-17 09:35 
Доступен (https://blog.rust-lang.org/2017/10/12/Rust-1.21.html) релиз языка программирования Rust 1.21 (http://www.rust-lang.org), развиваемого проектом Mozilla. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime.


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


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


-  Обеспечена (https://github.com/rust-lang/rust/pull/43838) возможность использования статичных ссылок (https://github.com/rust-lang/rfcs/blob/master/text/1414-rval...) для литералов (для размещения значений в статичной памяти (куче), вместо слотов стека):


    fn main() {
        let x: &'static u32 = &0;
    }


-  Перед блоком "‹...›" теперь допустимо указание опционального разделителя "::" в любом контексте:


    my_macro!(Vec‹i32›::new); // Нужно было писать раньше
    my_macro!(Vec::‹i32›::new); // Теперь можно указать и так


-  Библиотека jemalloc обновлена до версии 4.5.0;
-  Обеспечен (https://github.com/rust-lang/rust/pull/43506) запуск LLVM параллельно со стадией трансляции при компиляции с несколькими юнитами генератора кода ("-Ccodegen-units=N"). Изменение позволило снизить пиковые скачки в потреблении памяти в процессе сборки;
-  Стабилизированы API std::mem::discriminant (https://doc.rust-lang.org/std/mem/fn.discriminant.html),  needs_drop (https://github.com/rust-lang/rust/pull/44639) и итератор Iterator::for_each;

-  Расширена документация: На сайт doc.rust-lang.org добавлены руководства по rustdoc (https://doc.rust-lang.org/rustdoc) и std::os (https://github.com/rust-lang/rust/pull/43348). Документация по пакетному менеджеру перенесена в раздел doc.rust-lang.org/cargo (https://doc.rust-lang.org/cargo);
-  Добавлена возможность установки RLS (https://github.com/rust-lang-nursery/rls/) (Rust Language Server, серверный модуль для интегрированных сред разработки с поддержкой протокола LSP (https://www.opennet.ru/opennews/art.shtml?num=44682)) при помощи команды rustup ("rustup component add rls-preview");
-  В пакетном менеджере Cargo появилась возможность указания нескольких имён пакетов в команде "cargo install". В файл Cargo.toml добавлена секция "[patch]" (позиционируется как замена "[replace]") для переопределения определённых частей в графе зависимостей и обеспечена возможность использования масок в стиле gitignore в полях    include и exclude. Добавлена новая опция "--all-targets" для выбора сразу всех целевых платформ.

URL: https://blog.rust-lang.org/2017/10/12/Rust-1.21.html
Новость: http://www.opennet.ru/opennews/art.shtml?num=47385

 

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



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

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