The OpenNET Project / Index page

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



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

Исходное сообщение
"Релиз языка программирования Rust 1.22"
Отправлено opennews, 24-Ноя-17 12:20 
Состоялся (https://blog.rust-lang.org/2017/11/22/Rust-1.22.html) релиз языка программирования Rust 1.22 (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/).


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


-  В разряд стабильных переведена возможность (https://github.com/rust-lang/rust/pull/42526) использования оператора
"?" вместе с конструкцией "Option‹тип›" по аналогии с ранее обеспеченной поддержкой "?" в блоках "Result‹тип, выражение›". Оператор "?" проверяет значение и если результат отличается от заданного, осуществляется выход с возвратом кода ошибки.  Например:

   fn try_option_none() -› Option‹u8› {
       let val = None?;
       Some(val)
   }
   assert_eq!(try_option_none(), None);


-  Типы с операцией Drop теперь можно применять в элементах const и static, что позволяет использовать в них значения, вычисляемые на этапе компиляции. Например:


   struct Foo {
      a: u32
   }
   impl Drop for Foo {
       fn drop(&mut self) {}
   }
   const F : Foo = Foo { a : 0 };
   static S : Foo = Foo { a : 0 };

-  Операции вида "T op= &T" теперь применимы ко встроенным числовым типам, например:


   let mut x = 2;
   let y = &8;
   x += y; // Ранее нужно было явно выполнять разыменование, указывая x += *y.


-  Увеличена скорость компиляции в отладочном режиме;
-  В Rustdoc теперь можно добавлять тесты, обрывающие компиляцию ( compile-fail);
-  Прекращена поддержка целевой платформы le32-unknown-nacl (https://github.com/rust-lang/rust/pull/45041) в связи с переводом PNaCl в разряд устаревших (теперь рекомендуется использовать WebAssembly);

-  Стабилизированы API  From‹Cow‹str›› в  Box‹Error›, Hasher в {&mut Hasher, Box‹Hasher›}, fmt::Debug в SplitWhitespace;
-  В пакетном менеджере Cargo появилась возможность определения (https://github.com/rust-lang/cargo/pull/4496)  примеров, состоящих из нескольких файлов (для подобных примеров создаётся поддиректория с main.rs). Добавлена (https://github.com/rust-lang/cargo/pull/3992) поддержка взаимодействия с внешними Git-репозиториями вендоров.


URL: https://blog.rust-lang.org/2017/11/22/Rust-1.22.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=47620

 

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



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

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