URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 108883
[ Назад ]

Исходное сообщение
"Увидел свет язык программирования Rust 1.11"

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

В состав нового выпуска принято 1109 изменений от 126 разработчиков, среди которых (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. Также ведётся подготовка к реализации режима инкрементальной компиляции (https://github.com/rust-lang/rust/pull/34956), допускающей использование неизменившихся объектных файлов;

-  В пакетный менеджер Cargo добавлена поддержка представленного в прошлом выпуске нового формата исполняемых контейнеров (crate type) cdylib (https://github.com/rust-lang/rust/pull/33553), который рассчитан на компиляцию динамических библиотек, предназначенных для встраивания в программы на других языках.
В  Cargo.toml теперь допустимо указание 'crate-type = ["cdylib"]';

-  В стандартной библиотеке проведена замена предлагаемого по умолчанию метода хэширования - вместо ранее применяемого  SipHash 2-4 (https://en.wikipedia.org/wiki/SipHash) задействован SipHash 1-3, который значительно быстрее, но потенциально менее стоек к возможным новым атакам, связанным с использованием коллизий (в настоящий момент проблем нет);

-  Добавлена поддержка вложенных атрибутов cfg_attr и возможнсть работы cfg_attr  с атрибутами path;

-  В разряд стабильных переведена новая порция функций и методов. В  BinaryHeap, BTreeMap и BTreeSet добавлен метод append. В libcore включены методы to_degrees и to_radians. В Iterator добавлены методы sum и product. В Cell и RefCell добавлен метод get_mut.

Из последних успехов Rust можно упомянуть включение (https://www.opennet.me/opennews/art.shtml?num=44776) первых компонентов, написанных на Rust, в основной состав Firefox 48, а также первый выпуск проекта Way Cooler (https://github.com/Immington-Industries/way-cooler), в рамках которого развивается написанный на Rust композитный менеджер для  Wayland. Way Cooler может выступать в роли оконного менеджера с поддержкой мозаичного режима с управлением в стиле i3 (https://ru.wikipedia.org/wiki/I3). Поддерживается подключение расширений на языке Lua  и запуск X-приложений через XWayland.


Напомним, что язык 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/08/18/Rust-1.11.html
Новость: http://www.opennet.me/opennews/art.shtml?num=44999


Содержание

Сообщения в этом обсуждении
"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 19-Авг-16 10:19 
> По структуре язык Rust напоминает C++

Этот абзац бездумно копипастят из новости в новость. Это разные языки, хоть как их сравнивай.


"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 19-Авг-16 10:36 
Еще заголовок неправильно написан, не в духе opennet. Надо было так: "Увидел свет язык программирования Rust 1.11, [u]ознаменовавший[/u] переход к разработке версии 1.12"

"Увидел свет язык программирования Rust 1.11"
Отправлено rob pike , 19-Авг-16 11:21 
"Ознаменовавший переход к разработке версии 1.12, в соответствии с решениями XXV Съезда, направленными на дальнейшее улучшение условий труда девелоперов, всего айтишного народа. Разработчики Rust взяли на себя повышенные социалистические обязательства и вызвали на соцсоревнование разработчиков Go, пообещав выпустить 1.12 в кратчайшие сроки"

"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 19-Авг-16 16:00 
А я не поехал
Я купил мотыля и пошел на реку...

"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 19-Авг-16 13:27 
> Этот абзац бездумно копипастят из новости в новость.

Это со всеми повторяющимися новостями так. Иногда бывает забавно.


"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 19-Авг-16 14:42 
А можно обосновать? Подход к управлению ресурсами (в том числе памятью) в этих языках очень похож, и я с ходу не могу вспомнить еще такие языки.

"Увидел свет язык программирования Rust 1.11"
Отправлено Devider , 19-Авг-16 20:09 
>> По структуре язык Rust напоминает C++
>>Этот абзац бездумно копипастят из новости в новость. Это разные языки, хоть как их сравнивай.

Там же написано:
>но существенно отличается в некоторых деталях реализации синтаксиса и семантики

Так же раст напоминает Ada, Action script, Assembler, B, ..., Zonnon (включая РАФАЛ и МОДУЛу), но и имеет ряд отличий.


"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 20-Авг-16 15:53 
"муха - это такой маленький вертолёт", "но существенно отличается в некоторых деталях реализации"

"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 20-Авг-16 16:52 
> "муха - это такой маленький вертолёт", "но существенно отличается в некоторых деталях
> реализации"

Муха это маленькая птичка, КиШ одобряет :D


"Увидел свет язык программирования Rust 1.11"
Отправлено jacob , 19-Авг-16 10:39 
> Pадействован SipHash 1-3, который значительно быстрее, но потенциально менее стоек к возможным новым атакам, связанным с использованием коллизий (в настоящий момент проблем нет)

прямо как в анекдоте. решил жить вечно, в настоящий момент проблем нет


"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 19-Авг-16 11:01 
Скиньте, пожалуйста, какую-нибудь статейку про то, как раст с памятью работает.

Интересует, в основном, как фрагментируется (или не фраментируется) куча.


"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 19-Авг-16 11:04 
Про jemalloc почитайте, для бинарников он используется по умолчанию.

"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 21-Авг-16 09:46 
Ой-йё, не знал, что там jemalloc. Спасибо.

"Увидел свет язык программирования Rust 1.11"
Отправлено rob pike , 19-Авг-16 11:17 
> развивается экспериментальный браузерный движок Servo

Куда развивается? Развиваться можно после того как заработало что-то.


"Увидел свет язык программирования Rust 1.11"
Отправлено Comdiv , 19-Авг-16 11:30 
Развивается до рабочего состояния. Разве тут есть логическое противоречие?

"Увидел свет язык программирования Rust 1.11"
Отправлено rob pike , 19-Авг-16 12:07 
Здесь есть вот какая тонкость. Если что-то "развивается до рабочего состояния", то это что-то неуместно в этой фазе развития называть "движком Servo". Можно "зачатками движка Servo", "прототипом движка Servo", "громадьем планов разработчиков движка Servo", и еще много как.
Когда употребляется выражение "движок Servo развивается", тем самым подразумевается что этот "движок Servo" есть что-то существующее, рабочее - то есть следующую фазу развития.

"Увидел свет язык программирования Rust 1.11"
Отправлено Comdiv , 19-Авг-16 17:50 
> Если что-то "развивается до рабочего состояния", то
> это что-то неуместно в этой фазе развития называть "движком Servo".

Тут Вы находитесь в позиции философов, размышляющих о том, можно ли считать корабль тем же самым кораблём, если в нём заменить часть деталей или даже все детали.
Проект же является собой на протяжении всего времени существования, в том числе и зачаточном, и тем более в таком состоянии, котором находится Servo.


"Увидел свет язык программирования Rust 1.11"
Отправлено rob pike , 19-Авг-16 22:19 
Вот и называйте его "проектом создания движка Servo", а не "движком Servo".

"Увидел свет язык программирования Rust 1.11"
Отправлено Comdiv , 19-Авг-16 22:39 
Движок Servo - это и есть проект.

"Увидел свет язык программирования Rust 1.11"
Отправлено rob pike , 20-Авг-16 01:33 
Что же, работающий движок Servo - это будет уже другой проект?

"Увидел свет язык программирования Rust 1.11"
Отправлено Comdiv , 20-Авг-16 01:43 
> Что же, работающий движок Servo - это будет уже другой проект?

Что же Вы юродствуете? Плохо работающий движок Servo и хорошо работающий в будущем(предположительно) - это один и тот же проект, хотя и находящийся в разных состояниях. Точно также, как и человек в 5-летнем и 25-летнем возрастах - это один и тот же человек.


"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 21-Авг-16 06:56 
> Что же Вы юродствуете? Плохо работающий движок Servo и хорошо работающий в
> будущем(предположительно)

Хорошая оговорка, учитывая сколько прошло времени и как это "работает". Может МакЛауд и застанет тот момент, если тогда МоФо еще не превратится в апачевский могильник. А могут. Нафигнужная ось, маргинальный яп, второсортный браузер, не взлетевшие сервисы и недопиленный новый движок. Все слагаемые успеха.


"Увидел свет язык программирования Rust 1.11"
Отправлено КО , 19-Авг-16 11:35 
тут я с ВАми в корне не согласен - развиваться можно и до того, а вот деградировать, после.

"Увидел свет язык программирования Rust 1.11"
Отправлено freehck , 19-Авг-16 13:07 
тут я с ВАми в корне не согласен - по моему опыту многие комментаторы деградировали до уровня обезьяны ещё до того, как у них в голове что-то заработало.

"Увидел свет язык программирования Rust 1.11"
Отправлено Led , 19-Авг-16 20:27 
> многие комментаторы деградировали

Ты ж не намекаешь на вашего штатного (rob pike)?


"Увидел свет язык программирования Rust 1.11"
Отправлено freehck , 19-Авг-16 23:32 
> Ты ж не намекаешь на ... rob pike?

Нет


"Увидел свет язык программирования Rust 1.11"
Отправлено Led , 20-Авг-16 16:06 
>> Ты ж не намекаешь на ... rob pike?
> Нет

Спасибо, именно это и хотел услишать, чтобы развеять 1% сомнений в том, что rob pike -ваш штатный.


"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 21-Авг-16 06:44 
> Спасибо, именно это и хотел услишать, чтобы развеять 1% сомнений в том,
> что rob pike -ваш штатный.

Ты развеял последние сомнения в том что опеннет - это на самом деле фабрика троллей. А под айтишный ресурс он косит по привычке, или для конспирации.


"Увидел свет язык программирования Rust 1.11"
Отправлено Вареник , 22-Авг-16 07:50 
> тут я с ВАми в корне не согласен - развиваться можно и
> до того, а вот деградировать, после.

Можно развиваться и деградировать одновременно.
Обычно так и происходит.


"Увидел свет язык программирования Rust 1.11"
Отправлено Растаман , 19-Авг-16 13:38 
Я понимаю, что haters gonna hate, но что мешает хотя бы погуглить? В репозитории https://github.com/servo/servo регулярные коммиты. Значит таки развивается, в отличии от :)

"Увидел свет язык программирования Rust 1.11"
Отправлено rob pike , 19-Авг-16 14:39 
В отличие от чего?

"Увидел свет язык программирования Rust 1.11"
Отправлено chinarulezzz , 19-Авг-16 20:20 
В отличии от :)

"Увидел свет язык программирования Rust 1.11"
Отправлено Led , 19-Авг-16 20:27 
> В отличие от чего?

тебя?


"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 20-Авг-16 11:15 
Развитие в неправильную сторону называется по другом. Хотя тоже сопровождается определённым количеством коммитов в единицу времени.

"Увидел свет язык программирования Rust 1.11"
Отправлено Led , 19-Авг-16 20:25 
> Развиваться можно после того как заработало что-то.

Значит ты таки не работаешь?


"Увидел свет язык программирования Rust 1.11"
Отправлено Нанобот , 19-Авг-16 11:51 
Rust->HIR->MIR->LLVM IR->машинный код
по-моему это перебор с уровнями абстракции

"Увидел свет язык программирования Rust 1.11"
Отправлено АнонимХ , 19-Авг-16 11:59 
Любую проблему можно решить добавлением нового абстрактного слоя, кроме проблемы слишком большого количества абстрактных слоев :)

"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 21-Авг-16 06:47 
> Любую проблему можно решить добавлением нового абстрактного слоя, кроме проблемы слишком
> большого количества абстрактных слоев :)

Их можно абстрагировать, представив как всего один слой :)


"Увидел свет язык программирования Rust 1.11"
Отправлено Вареник , 22-Авг-16 07:46 
Для каждого следующего существует лишь предыдущий :)

"Увидел свет язык программирования Rust 1.11"
Отправлено rob pike , 19-Авг-16 12:37 
> The latest verified CakeML compiler passes through 12 intermediate languages

"Увидел свет язык программирования Rust 1.11"
Отправлено Нанобот , 19-Авг-16 16:25 
это не то, чем стоит гордиться

"Увидел свет язык программирования Rust 1.11"
Отправлено rob pike , 19-Авг-16 22:21 
Как же вы предложили бы переделать архитектуру CakeML?

"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним84701 , 19-Авг-16 13:02 
> Rust->HIR->MIR->LLVM IR->машинный код
> по-моему это перебор с уровнями абстракции

Если вводят только сейчас, переделывая уйму работы, то скорее всего, потребность вполне реальная.

Вообще, сейчас HIR занимается и проверкой типов и borrowcheck, т.е. и жнец и на дуде игрец.
А будет только проверять типы, borrow check вынесут в MIR, что вроде как позволит сделать проверку типов более точной. Ну и расто-специфическая оптимизация будет там же, в MIR.
> reviously, the compiler relied solely on LLVM to perform optimizations, but with MIR, we can do some
> Rust-specific optimizations before ever hitting LLVM – or, for that matter, before monomorphizing code.
> Rust’s rich type system should provide fertile ground for going beyond LLVM’s optimizations.

В общем, будем посмотреть что из этого выйдет.


"Увидел свет язык программирования Rust 1.11"
Отправлено anonymous , 19-Авг-16 13:09 
Кэп, это компилятор. Чтобы пооптимальней код генерировать ввели ещё доп. уровень оптимизаций. Конечных девелоперов и пользователей это никак не затронет, разве что бинарь будет чуть более быстрой или лёгкой.

"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 19-Авг-16 13:29 
Мне кажется, или все хотят опять вернуть проект пятого поколения компьютеров, забывая даже о законе Амдала? Вообще, в прошлом веке было как минимум несколько подобных языков

"Увидел свет язык программирования Rust 1.11"
Отправлено Crazy Alex , 19-Авг-16 14:31 
Какой закон Амдала, если параллельно выполняется куча задач?

"Увидел свет язык программирования Rust 1.11"
Отправлено angra , 19-Авг-16 15:25 
Как бы закон Амдала именно о параллельных вычислениях/задачах.

Хотя чем он напугал анонима мне тоже не ясно.


"Увидел свет язык программирования Rust 1.11"
Отправлено Crazy Alex , 19-Авг-16 15:37 
Он о распараллеливании _одной_ задачи.А ы нашем случае - куча задач. То есть о самом феномене помнить стоит, но когда и как овчинка перестанет стоить выделки - только экспериментально проверять, и то обновлениями софта можно подправить.

"Увидел свет язык программирования Rust 1.11"
Отправлено angra , 19-Авг-16 16:26 
Нет никакой принципиальной разницы. И формулировок этого закона куча, в том числе вообще без использования понятия задачи. Например такая:
"Производительность вычислительной системы, состоящей из связанных между собой устройств, в общем случае определяется самым непроизводительным ее устройством."

"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 20-Авг-16 14:19 
Тем, что в прошлом веке уже пытались сделать то, что делают сейчас. Рекомендую всем поискать историю компьютеров пятого поколения

"Увидел свет язык программирования Rust 1.11"
Отправлено adolfus , 19-Авг-16 14:59 
Нет стандарта -- нет и языка.

"Увидел свет язык программирования Rust 1.11"
Отправлено Roo2AT7d , 19-Авг-16 15:13 
Нет стабильного ABI -- нет и языка.

"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 22-Авг-16 12:08 
Нет мозгов - считай, инвалид.

"Увидел свет язык программирования Rust 1.11"
Отправлено skybon , 19-Авг-16 17:02 
> обработка ошибок по кодам

Закопать Rust и прикрутить стаический анализатор к g++.


"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 19-Авг-16 17:27 
Иж как у тебя бомбит по GCC/GNU

"Увидел свет язык программирования Rust 1.11"
Отправлено Ordu , 19-Авг-16 17:37 
Нет. Бомбит по C++. Такого рода комментарии рождаются из рассуждения вида: "в языке X это можно сделать при помощи всего двух костылей, так зачем тогда добавлять это в список фичей языка Y?" А такие рассуждения порождаются из-за излишне идеализированного отношения к языку X.

"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 19-Авг-16 21:00 
> При этом Rust обходится без использования сборщика мусора

Ну не обходится, а не сожержит. Ибо утечки памяти таки допускает


"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 19-Авг-16 22:46 
И обходится, и содержит. Читайте дорогую документацию.

"Увидел свет язык программирования Rust 1.11"
Отправлено Аноним , 20-Авг-16 09:21 
Утечки памяти не нарушают безопасность памяти

"Увидел свет язык программирования Rust 1.11"
Отправлено Вареник , 22-Авг-16 07:43 
Совпадет ли выпуск Servo с окончательным скурвиванием Мозиллы и ее флагманского продукта?

"Увидел свет язык программирования Rust 1.11"
Отправлено Кирилл72 , 23-Авг-16 01:44 
>  и предоставляющего средства для высокого параллелизма выполнения заданий

В каждой новости подобная фраза. Есть те кто изучал Rust? В Go понятно, канкаренси, работающий через runtime, а в Rust как это работает, если у него нет рантайма?
За счет чего работает этот "высокий параллелизм"?