The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  вход/выход  слежка  RSS
"Доступен язык программирования Rust 1.12"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Доступен язык программирования Rust 1.12"  +/
Сообщение от opennews (??) on 30-Сен-16, 23:10 
Представлен (https://blog.rust-lang.org/2016/09/29/Rust-1.12.html) релиз языка программирования Rust 1.12 (http://www.rust-lang.org), развиваемого проектом Mozilla, обеспечивающего автоматическое управление памятью и предоставляющего средства для высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime. Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo (https://www.opennet.ru/opennews/art.shtml?num=44712), написанный (https://github.com/servo/servo/) на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).


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

- Переход на новый бэкенд компилятора, использующий модель трансляции, основанную на дополнительном промежуточном представлении MIR (https://blog.rust-lang.org/2016/04/19/MIR.html) (mid-level IR), применяемом после HIR (high-level IR), но перед LLVM IR. MIR предоставляет всю необходимую информацию о потоке управления программы, позволяя компилятору точно судить об изменении типов и необходимости вызова деструкторов, манипулируя простейшими структурами в стеке, легко транслируемыми в вид, поддающийся оптимизации в LLVM.


MIR также позволяет обойтись значительно более простым языком, упрощающим создание фаз компиляции и проверки корректности, без необходимости выполнения манипуляций только с достаточно сложным абстрактным синтаксическим деревом (AST). Для некоторых типов кода после внедрения MIR наблюдается сокращение времени компиляции и размера результирующего кода. В дальнейшем, MIR позволит добавить новые режимы оптимизации, труднореализуемые при ранее используемой схеме работы компилятора;


-  Представлен новый формат сообщений об ошибках, выводимых компилятором rustc. Новый формат в наглядном виде доводит до разработчика внутреннюю информацию о причинах возникновения ошибки, подсвечивая цветом части кода, связанные с проблемой, и приводя в примечании данные о том, что именно не так с кодом. При этом показывается не только строка в коде, на которой непосредственно возникла ошибка, но и контекстно связанные с ошибкой строки. Например, при ошибке вызова функции из-за неверного указания аргументов, дополнительно показывается строка с определением аргументов функции. Новый формат может выводиться не только на экран, но и в виде конструкций JSON ("--error-format=json") для автоматизированной обработки результатов сборки;


-  В пакетный менеджер Cargo добавлена поддержка "рабочих областей" (workspaces),  позволяющих использовать в группе пакетов единый файл блокировки  Cargo.lock. Для проектов, разбиваемых на несколько пакетов, новая возможность позволит упростить поддержание общих зависимостей. В cargo также добавлена возможность переопределения источника исполняемых контейнеров (crate), что позволяет при помощи команд   cargo-vendor и cargo-local-registry организовать обращение к локальной копии зависимостей, что в будущем послужит основой для возможности создания локальных зеркал репозитория crates.io;
-  В rustc добавлена поддержка трёх новых целевых платформ библиотеки MUSL: arm-unknown-linux-musleabi, arm-unknown-linux-musleabihf и armv7-unknown-linux-musleabihf, для которых генерируются статически связанные исполняемые файлы;
-  Добавлена поддержка сборки компилятора с использованием LLVM 3.9;
-  В тестовые исполняемые файлы добавлена опция "--test-threads" для задания числа потоков, используемых при запуске тестов. При выполнении тестов дольше 60 секунд теперб выводится предупреждение;

-  В разряд стабильных переведена новая порция функций и методов.

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

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


URL: https://blog.rust-lang.org/2016/09/29/Rust-1.12.html
Новость: http://www.opennet.ru/opennews/art.shtml?num=45256

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Доступен язык программирования Rust 1.12"  –1 +/
Сообщение от Андрей (??) on 30-Сен-16, 23:10 
> Добавлена поддержка сборки компилятора с использованием LLVM 3.9

Как-никак ровно 4 недели назад вышел.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Доступен язык программирования Rust 1.12"  –1 +/
Сообщение от Аноним (??) on 01-Окт-16, 22:39 
> и модель акторов

Кочует из новости в новость эта самая модель акторов. Кто-то может объяснить, что имеется ввиду, ибо в стандартной библиотеке никаких акторов нет.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Доступен язык программирования Rust 1.12"  +/
Сообщение от Аноним (??) on 01-Окт-16, 23:44 
Возможно были ранее (до 1.0) и их убрали из стандартной библиотеки как не production-ready реализацию.

Как я понимаю, для actor model в языке уже есть необходимые механизмы (channels), а реализации можно поискать на крейтс:

https://crates.io/search?q=actor

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Доступен язык программирования Rust 1.12"  +/
Сообщение от Аноним (??) on 02-Окт-16, 13:35 
> Возможно были ранее (до 1.0) и их убрали из стандартной библиотеки как не production-ready реализацию.
>
> Как я понимаю, для actor model в языке уже есть необходимые механизмы (channels), а реализации можно поискать на крейтс:
>
> https://crates.io/search?q=actor

Ну так речь именно про стандартную библиотеку, в крейтах много чего есть.
Скорее всего имеются ввиду таски, которые были весьма схожи с акторами. Но их выпилили, как и зелёные потоки.
Так и зачем это писать из новости в новость?

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Доступен язык программирования Rust 1.12"  +/
Сообщение от Аноним (??) on 02-Окт-16, 17:28 
Потому что это шаблон для копипасты, с которым нюьсмейкером влом разбираться.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Доступен язык программирования Rust 1.12"  –1 +/
Сообщение от th3m3 (ok) on 02-Окт-16, 20:23 
Уже можно чисто на Rust писать Android-приложения? Никто не в курсе?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Доступен язык программирования Rust 1.12"  +4 +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 02-Окт-16, 20:47 
> По структуре язык Rust напоминает C++...

Вообще никак не напоминает, зачем такие глупости постоянно переписывать из новости в новость.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Доступен язык программирования Rust 1.12"  –4 +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 02-Окт-16, 20:48 
В этом и заключается весь rust - сплошной булшит из фантазий его апологетов N-летней давности.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

9. "Доступен язык программирования Rust 1.12"  +/
Сообщение от vasily on 03-Окт-16, 00:14 
"Чисто на расте" можно писать то же, что и "чисто на сях".
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

10. "Доступен язык программирования Rust 1.12"  +1 +/
Сообщение от Аноним (??) on 03-Окт-16, 08:49 
разрешите уточнить: фантазии или апологеты N-летней давности?
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "Доступен язык программирования Rust 1.12"  +1 +/
Сообщение от Аноним (??) on 03-Окт-16, 12:48 
Можно, начиная с компилятора и загрузчика
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

12. "Доступен язык программирования Rust 1.12"  +/
Сообщение от Илья (??) on 03-Окт-16, 19:23 
так про все языки пишут, у которых блоки в фигурных скобках. так писали про пёрл, про свифт, про го.

Просто когда читаете такую надпись не воспринимайте ее всерьёз.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

13. "Доступен язык программирования Rust 1.12"  +/
Сообщение от Led (ok) on 04-Окт-16, 23:24 
Эрлангисту оно напоминает эрланг (без OTP и, к сожалению, без лёгких процессов).

Хаскелисту... нет, хаскелисту оно, наверное, ничего не напоминает из-за отсутствия монад и жутко красивой, но практически бесполезной "ленивости".

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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