The OpenNET Project / Index page

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



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

Исходное сообщение
"Выпуск языка программирования Rust 0.12, развиваемого проект..."
Отправлено opennews, 10-Окт-14 10:45 
В преддверии начала подготовки (http://blog.rust-lang.org/2014/09/15/Rust-1.0.html) стабильного выпуска языка программирования Rust 1.0, переход к бета-тестированию которого ожидается в конце года, представлен (https://mail.mozilla.org/pipermail/rust-dev/2014-October/011... очередной экспериментальный выпуск Rust 0.12.0 (http://www.rust-lang.org/), продолжающий развитие  функциональности и оттачивание языковых конструкций.

Язык Rust развивается проектом Mozilla и сфокусирован на безопасной работе с памятью и обеспечении высокого параллелизма выполнения заданий (возможность порождать тысячи и даже миллионы подпроцессов). Исходные тексты проекта распространяются (https://github.com/mozilla/rust/) под лицензией MIT.  Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo (http://www.opennet.ru/opennews/art.shtml?num=36576), написанный (https://github.com/servo/servo/) на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).

По структуре язык  Rust напоминает C++, но существенно отличается в некоторых деталях реализации синтаксиса и семантики, а также ориентацией на блочную организацию структуры кода, которая позволяет реализовать задачи в виде легковесных сопрограмм. Автоматическое управление памятью избавляет разработчика от манипулирования указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Rust поддерживает смесь императивных процедурных и объектно-ориентированных методов с такими парадигмами, как функциональное программирование и модель акторов, а также обобщённое программирование и метапрограммирование, в статических и динамических стилях.


С момента прошлого выпуска внесено около 1900 изменений (https://github.com/rust-lang/rust/wiki/Doc-detailed-release-... среди которых:

-   Большое внимание уделено подготовке документации. Полностью переписано руководство разработчика (The Rust Guide);
-  Продолжено развитие пакетного менеджера Cargo, который в некоторых ситуациях уже вполне доведён до готовности;
-  Переписаны и приведены в соответствие к требованиям по написанию кода реализации многих API в области std;
-  Вторичные библиотеки вынесены из основного дерева исходных текстов и теперь должны быть установлены через пакетный менеджер Cargo. Среди таких библиотек: uuid, semver, glob, num, hexfloat, fourcc;

-  Возможность определения lifetime-аннотаций в определении функции;
-  Поддержка работы в 64-разрядных версиях Windows;
-  В компиляторе rustc реализована эксперментальная поддержка распараллеливания при указания опции "-C codegen-units";

-  Практически доведена до готовности реализация типов с динамически изменяемым размером (Dynamically-sized), для управления данными типами представлено новое свойство "Sized";
-  Свойство "Share" переименовано в "Sync" для избежания  ассоциаций с типом "shared reference";
-  Добавлено новое ключевое слово "move" для индикации замыканий, захватывающих значения;
-  Добавлено новый более эффективный тип замыканий - "unboxed closures";
-  Для переименования выражений теперь следует использовать "use foo as bar" вместо "use bar = foo", а также  "extern crate foo as bar" вместо "extern crate bar = foo";
-  Изменён синтаксис (например, "[0..4]", "[a, b, c..]") определения блоков в "Slice" и "SliceMut". Для определения входящих диапазонов теперь следует использовать три точки вместо двух, т.е. "0...4" вместо "0..4";


-  Расширены возможности стандартной библиотеки. Переработаны библиотеки Bit-vectors, collections::bitv и collections::btree. Проведена оптимизация в работе компонентов, связанных с вводом/выводом.

Базовые возможности языка:


-  Ориентация на безопасность:


-  Аккуратная работа с памятью - никаких нулевых и потерянных указателей. Автоматическое управление памятью;

-  Контроль изменчивости. Объекты неизменяемы (Immutable) по умолчанию;

-  Безопасность динамического выполнения: обработка сбоев, исключения, ведение лога, RAII / dtors;

-  Typestate: возможность определения сложных инвариантов, контролирующих структуры данных.

-  Ориентация на параллельность и эффективность кода:


-  Явный контроль памяти, контролирование схемы распределения памяти;

-  Крайне лёгкие задачи, формируемые в виде сопрограмм. Лёгкость в порождении тысяч и миллионов подпроцессов;

-  Итераторы в стэке (фактически лямбда-блоки без распределения кучи);

-  Статическая, нативная компиляция с созданием исполняемых файлов ELF, PE, Mach-o;

-  Прямой и простой интерфейс для кода на языке Си;

-  Ориентация на практическое применение:


-   Мультипарадигмальный, функциональный, императивно-процедурный, объектно-ориентированный, поддерживающий параллельную actor-модель;

-  Функции  высшего порядка с биндингами;

-  Нет номинальных типов (http://en.wikipedia.org/wiki/Nominative_type_system) или иерархии типов;

-  Мультиплатформенный, поддерживается Windows, Linux, Mac OS X, *BSD;

-  Хранение строк в UTF-8, разнообразие низкоуровневых типов;

-  Работает с существующими нативными наборами инструментов: GDB, Valgrind, Shark и т.д.;

-  Практическая возможность нарушения правил: возможность игнорирования правил безопасности, если чётко указано, когда и как их нарушать.


URL: https://mail.mozilla.org/pipermail/rust-dev/2014-October/011...
Новость: http://www.opennet.ru/opennews/art.shtml?num=40791

 

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



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

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