The OpenNET Project / Index page

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

Выпуск языка программирования Rust 1.2, развиваемого проектом Mozilla

08.08.2015 11:16

Состоялся выпуск языка программирования Rust 1.2, развиваемого проектом Mozilla, обеспечивающего автоматическое управление памятью и предоставляющего средства для высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime. Параллельно с Rust совместно с компанией Samsung развивается экспериментальный браузерный движок Servo, написанный на языке Rust и отличающийся поддержкой многопоточного рендеринга web-страниц и распараллеливанием операций с DOM (Document Object Model).

В новой версии продолжена работа по оптимизации производительности, значительно ускорен процесс компиляции и представлены наработки по обеспечению распараллеливания сборки на многоядерных системах (добавлена опция "-C codegen-units=число потоков"). Например, сборка hyper теперь выполняется на 16% быстрее, html5ever - на 62%, regex - на 32%, rust-encoding на 35%. Генерация кода в параллельном режиме на четырёхядерном компьютере даёт ускорение ещё на 33%. Ограничением параллельного режима сборки является невозможность использования некоторых режимов оптимизации, что ограничивает его применение промежуточными и отладочными сборками.

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

В языке завершена реализация типов динамически изменяемого размера (DST, dynamically-sized type), позволяющих создавать указатели (Rc) на элементы массивов и объекты, динамически адаптирующиеся к изменениям в их структуре. Кроме сборки с применением инструментария GNU в Rust реализована возможность компиляции с использованием MSVC (Microsoft Visual C) и прямого связывания кода на языке Rust с кодом, собранным в MSVC.

  1. Главная ссылка к новости (http://blog.rust-lang.org/2015...)
  2. OpenNews: Выпуск языка программирования Rust 1.1, развиваемого проектом Mozilla
  3. OpenNews: Увидел свет язык программирования Rust 1.0
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/42751-rust
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (38) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 13:12, 08/08/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    Скоро маркетологов Firefox на него перебросят и через год мы дождемся Rust 9.
     
     
  • 2.3, Аноним (-), 13:34, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы так говорите, как будто это что-то плохое.
     
     
  • 3.7, Crazy Alex (ok), 14:01, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Файрфоксу на пользу явно не пошло
     
  • 3.15, Аноним (-), 18:37, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Как будто что-то есть хорошее. Раньше можно было сразу понять по обновлению мажорных и минорных цифр "масштаб" работ сделанных к релизу, но маркетологи в IT и программировании подобно колхозникам в Эрмитаже. Поэтому когда версия нумеруется в соответствии с примитивизмом маркетологов, то они нас с вами сводят к взаимодейстию на их примитивный уровень. Вероятно вы не понимаете что в этом плохого, возможно даже что вам колхозный примитивизм представлении предлагаемый маркетологами ближе, роднее, но не все такие.

    PS: Не нужно оглядываться на неучей, а то можно упасть в средневековье.

     
     
  • 4.16, Аноним (-), 21:26, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • –5 +/
    в rust первая цифра - мажорная (большой масштаб работ, обновляется раз в несколько лет), вторая - минорная (небольшой масштаб работ, обновляется раз в пару месяцев). Не благодарите.
     
     
  • 5.19, Аноним (-), 22:07, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > Не благодарите.

    Чукча не читатель.

     
  • 4.37, клоун (?), 14:42, 10/08/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А когда нумерацией занимается ИТ-отдел, то возникают перлы вроде:

    "В к/ф Терминатор была ОС версии 4, а у нас только 3. Хочу 4!"

    Это про ядро Линукс, если кто не понял.

    "Чё-то давно у нас номер версии не менялся. Мы уже 2 года баги правим, изменений внесли туеву кучу, а номер не растёт. Давайте чтоли перейдём с 8.2.хххх на 8.3.хххх"

    Это про 1С.

    Сидишь и думаешь: вот клоуны....

     
     
  • 5.39, Аноним (-), 16:48, 10/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Сложность линукса стала настолько высокой (не в плохом смысле, это нормально), что такие же по масштабу радикальные изменения, как были 0->1 и 1->2 уже практически невозможны. Посему ведро давно уже де факто стало полуроллингом, а мажорная цыфирка "2" просто потеряла смысл.
    Про 1С не могу сказать ничего, возможно, там ситуация как раз этим и отличается (то бишь, есть потенциальная возможность радикально сломать совместимость).

    Но ты, клован, не привык включать башку перед комментированием, и поэтому все не перестаешь сравнивать теплое с мягким.

     
     
  • 6.40, клоун (?), 18:53, 10/08/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Мне прочитать тебе лекцию как снижают сложность?

    Там на первом месте будет переход от монолитного ядра к пико-ядру с модульностью и динамическим связыванием. Всё как в лучших образцах ОС нашего времени, т.е. как в W10.

     
     
  • 7.41, Аноним (-), 19:11, 10/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >  пико-ядру
    > как в W10.

    Казалось бы, причем тут десяточка и пико-ядро?
    Ну хоть вику подправили и засудили и у себя на страничке прибрались:
    https://msdn.microsoft.com/en-us/library/windows/hardware/ff558769(v=vs.85).as
    Или как-то догадались запатентовать "пико-ядро" в своем варианте (а то, что другие не в курсе М$шной терминологии -- исключительно их проблемы) :)

     
  • 7.42, Аноним (-), 19:21, 10/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >Мне прочитать тебе лекцию как снижают сложность?

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

    >Там на первом месте будет переход от монолитного ядра к пико-ядру с модульностью и динамическим связыванием

    Угу, понятно. Дилетант и в этом вопросе. Но лекцию все равно прочитай, больно уж мне тоску разогнать охота.

    >Всё как в лучших образцах ОС нашего времени, т.е. как в W10.

    По части архитектурной сложности шипдошс является одним из худших образцов нашего времени.

     
  • 7.43, Аноним (-), 20:13, 10/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Клоун негодует - значит все хорошо! А вот если бы нахваливал ...
     
     
  • 8.45, Аноним (-), 12:59, 11/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Да в общем-то похeр, хоть он негодует, хоть нахваливает Почему вам не все рав... текст свёрнут, показать
     
     
  • 9.46, Аноним (-), 16:00, 11/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Почему вам не все равно, что мне что-то не все равно Хотите об этом поговорить ... текст свёрнут, показать
     
  • 2.8, fail (?), 15:21, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Скоро маркетологов Firefox на него перебросят и через год мы дождемся Rust
    > 9.

    Ыыыы,
    Rust 0.9    9 Jan 2014
    Rust 1.0    15 May 2015
    Rust 1.2    8 Aug 2015

    суде по трем точкам на графике... уже

     
     
  • 3.9, Аноним (-), 16:11, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > что такое семантическое версионирование
     
  • 2.17, Аноним (-), 21:51, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Скоро маркетологов Firefox на него перебросят и через год мы дождемся Rust
    > 9.

    Вряд ли. Тут даже в долгосрочной перспективе особой отдачи не предвидится - по сравнению с другими проектами мозиллы. Так что маркетолухам раст не интересен.

     

  • 1.2, Sluggard (ok), 13:26, 08/08/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    В свете последних новостей, фраза «развиваемого проектом Mozilla» как-то перестаёт вызывать положительные эмоции. )
     
     
  • 2.4, Аноним (-), 13:48, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Думаешь, канпелятор стучит на тебя собирателям подноготных?
     
     
  • 3.5, Crazy Alex (ok), 14:01, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Скорее есть сомнения в адекватности принимающих решения
     
  • 3.6, Sluggard (ok), 14:01, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Думаешь, канпелятор стучит на тебя собирателям подноготных?

    Не, речь о новости про PDF.js =)

     
  • 2.18, Аноним (-), 22:04, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Процесс разработки открыт, исходники на Github, ключевые разработчики доступны в IRC, смотри, проверяй, спрашивай что непонятно и что не так. Мозилловцы проводят лекции в ВУЗах США о RUST, обеспечивая интерес со стороны перспективной молодежи. Приложение на RUST примерно в 2 раза быстрее и в 3 раза меньше потребляет памяти чем на JAVA. Вполне достойный и перспективный проект развиваемый Мозиллой.
     
     
  • 3.22, 313 (?), 00:15, 09/08/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Java ? Отличный пример для сравнения компилируемого и "эмулируемого языка", а что в тестах по C\C++ ?
     
     
  • 4.24, Аноним (-), 00:38, 09/08/2015 [^] [^^] [^^^] [ответить]  
  • +9 +/
    примерно одинаковая производительность в сравнении с C++
    http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=gpp&lang2=rust
     
  • 3.35, Капитанище (?), 08:41, 10/08/2015 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Неправда. Rust и GO в среднем на уровне Java и по скорости. Что делает их ненужными с учетом того что под Java миллиарды разных либ, а под Rust ноль целых ноль десятых :(

    Самое главное - есть множество примеров, когда простая программа на си в 4-5 раз быстрее программы Java, но есть сложная программа на Java которая быстрее в те же 4-5 раз, чем прога на СИ (например смотрим бенчмарки проекта boofcv, который местами сильно быстрее сишного openCV.

    Ну и не редкость, когда есть большая-большая программа на Java и вообще нет аналогов на Си. Ибо не осилили.

     
     
  • 4.36, Crazy Alex (ok), 12:46, 10/08/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хреново капитанишь - у тебя тут смешались в кучу кони, люди и залпы башенных орудий.

    Во-первых, если оно таки шустрее джавы до определённого размера, то либы наверняка появятся с учётом того, что писать проще, чем на сях. а для Go их, в общем-то, уже немало. И это в любом случае самостоятельная ниша.

    Во-вторых, на среднем/большом софте скорость Rust пока никто не проверял. Когда/если допишут Servo - будет пример среднего размера.

    В-третьих, что большой софт на сях не пишут - чистая правда. Но тут и по скорости не сравнишь, так как не с чем.

    Ну а насчёт boofcv/opencv  пусть выскажется тот, кто в курсе ситуации, бенчмарк на сайте boofcv (и коментарии к нему) менее оптимистичен, чем вы. Но пока я не видел вообще ни одного случая, чтобы джава-приложение было лучше по производительности, тем более в разы, с сишными аналогами - когда они есть.

     
  • 4.38, Аноним (-), 16:32, 10/08/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Неправда. Rust и GO в среднем по больнице на уровне Java и по скорости.
    > Что делает их ненужными с учетом того что под Java

    Fixed.
    Сразу видно жабистов - есть Жаба, а все остальное не нужно!

    А то, что ГЦ при одинаковой скорости работы вкушает "в среднем" в 1.5х - 2х раза больше рамы (это еще очень оптимистично) мы скромно умолчим ;)

    Ну и
    http://www.techempower.com/benchmarks/#section=data-r10&hw=peak&test=json
    Не видно что-то отрыва 3-х кратного отрыва Жабы.

     

  • 1.10, nc (ok), 17:15, 08/08/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А кто-нибудь может в двух словах объяснить что такое "типы динамически изменяемого размера"? Что это, почему их только сейчас реализовали, есть ли аналоги в других языках и т.д.?
     
     
  • 2.11, anoniz (?), 17:42, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    В D2 точно есть. Я решал простецкую задачу на d2 и как раз применял массив с динамически изменяемым размером
     
  • 2.12, Аноним (-), 17:54, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    char data[0];
     
     
  • 3.13, nc (ok), 18:01, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    То есть аналог std::vector, но при этом plain old data, без указателей на хип чтоли?
     
     
  • 4.14, Аноним (-), 18:31, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > То есть аналог std::vector, но при этом plain old data, без указателей
    > на хип чтоли?

    Все то, для чего нельзя "вывести" размер еще во время компилирования.
    ЗЫ: я другой аноним.

     
     
  • 5.20, nc (ok), 23:10, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Все-таки хотелось бы подробностей. А то одна статья от создателей фичи, я ее давно еще читал но ничего особо не понял.
     
     
  • 6.21, Ан (??), 23:40, 08/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Если на хабре вам ответят скопайте ссылочку сюда. :)
     
     
  • 7.23, nc (ok), 00:33, 09/08/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да похоже придется с этой статьей разбираться еще раз самому:)
     
     
  • 8.34, Аноним (-), 20:10, 09/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Проще всего - спросите на reddit в раздел r rust, если английским владеете Там... текст свёрнут, показать
     
  • 2.44, Anttiray (?), 00:10, 11/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    [T] - массив объектов типа T, то есть не вектор, в котором указатель на память, размер и вместимость, а просто объекты один за одним. По скорости он такой же как и обычный массив (быстрее вектора).
    А также так званые "Trait objects", любой тип который реализует указанный Trait (dynamic dispatch).

    Больше здесь: http://smallcultfollowing.com/babysteps/blog/2014/01/05/dst-take-5/

     

  • 1.28, Аноним (-), 14:59, 09/08/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Недавно обновился пакет, предоставляющий операции сериализации/десер.ии в Rust(serde), где заметно возросла производительность. По тестам самого основного разработчика теперь быстрее чем rapidjson(С++) на 10%:

    https://erickt.github.io/blog/2015/08/07/serde-0-dot-5-0-many-many-changes/

    https://github.com/serde-rs/serde
    https://github.com/miloyip/rapidjson

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    A-Real
    Hosting by Hoster.ru
    Хостинг:

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