The OpenNET Project / Index page

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

08.07.2016 11:04  Доступен язык программирования Rust 1.10

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

В состав нового выпуска принято 1276 изменений от 139 разработчиков, среди которых:

  • Добавлена опция "-C panic=abort", позволяющая в случае краха из-за ошибки программы выполнить аварийное завершение работы, вместо вызова процесса "размотки" (unwinding). При отключении обработчиков unwind генерируется меньше кода и исполняемый файл получается более компактным (примерно на 10%), а компиляции производится немного быстрее;
  • Представлен новый формат исполняемых контейнеров (crate type) cdylib, который рассчитан на компиляцию динамических библиотек, предназначенных для встраивания в программы на других языках. Ранее доступный формат dylib позиционируется для создания динамических библиотек для проектов на языке Rust. В отличие от dylib в cdylib не включаются метаданные, экспортируемые символы аналогичны исполняемым файлам, не допускается LTO и все библиотеки связываются статически. Сборка простейшего примера "hello world" при использовании cdylib занимает 7.2 Кб, в то время как при dylib - 2.4 Мб;
  • Изменены требования для сборки компилятора Rust, который написан на языке Rust. Если ранее для сборки свежего стабильного релиза требовалось применение экспериментальных ночных выпусков Rust, что создавало большие трудности с поставкой rust в дистрибутивах, то отныне для сборки можно использовать прошлые стабильные выпуски. Т.е. для сборки Rust 1.10 достаточно наличия Rust 1.9, а для Rust 1.11 потребуется Rust 1.10;
  • Внесено несколько оптимизаций производительности в компилятор: За счёт применения кэширования ключей инициализации ускорено создание HashMaps. Сокращено потребление памяти и примерно на 15% ускорена работа кода проверки типов. В два раза ускорена операция поиска для итераторов Chain. В 10 раз ускорены операции выборки битовых свойств в таблицах Unicode;
  • В разряд стабильных переведено около 70 функций и методов, среди которых std::os::windows::fs::OpenOptionsExt, std::panic::{set,take}_hook, CStr::from_bytes_with_nul, compare_exchange, std::os::unix::net::{UnixStream, UnixListener, UnixDatagram, SocketAddr};
  • В Linux в качестве запасного пути инициализации HashMaps теперь может использоваться /dev/urandom, если getrandom недоступен (например, на начальной стадии загрузки системы);
  • В пакетном менеджере Cargo добавлена опция profile.*.panic для управления реализацией обработки крахов, для вывода информации о состоянии теперь применяется stderr вместо stdout, запрещено использования ключевых слов Rust в именах контейнеров, добавлен флаг "--force" для команды "cargo install", добавлен режим "cargo --explain" аналогичный "rustc --explain".

Напомним, что язык Rust сфокусирован на безопасной работе с памятью и обеспечении высокого параллелизма выполнения заданий. При этом Rust обходится без использования сборщика мусора или runtime, что делает возможным создания на Rust библиотек, которые могут выступать в роли прозрачной замены библиотекам для языка Си. Для распространения библиотек на языке Rust, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки в один клик. Для размещения библиотек введён в строй репозиторий crates.io.

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



  1. Главная ссылка к новости (http://blog.rust-lang.org/2016...)
  2. OpenNews: Увидел свет язык программирования Rust 1.9
  3. OpenNews: Успехи Rust: Подготовка первого выпуска Servo и использование Rust в новом хранилище Dropbox
  4. OpenNews: На 2016 год запланировано задействование в Firefox кода на языке Rust и движка Servo
  5. OpenNews: Представлена операционная система Redox, написанная на языке Rust
  6. OpenNews: Началось формирование ночных сборок браузерного движка Servo
Лицензия: CC-BY
Тип: Программы
Ключевые слова: rust
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 13:10, 08/07/2016 [ответить] [смотреть все]
  • –7 +/
    Хипстеры поиграют и забросят. А Си оно точно не заменит.
     
     
  • 2.3, Лама Д., 13:15, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]
  • +21 +/
    Хипстеры бросят, нормальные люди попробуют язык и сделают свои выводы, и только аноним будет продолжать выплёскивать ненависть в комментариях.
     
     
  • 3.6, Аноним, 13:34, 08/07/2016 [^] [ответить] [смотреть все]
  • –4 +/
    Больше ненависти в комментариях, воннаби регистрант... весь текст скрыт [показать]
     
  • 2.4, modos189, 13:17, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Зачем этот ваш хипстерский C, когда есть B для нормальных пацанов
     
     
  • 3.5, Аноним, 13:23, 08/07/2016 [^] [ответить] [смотреть все]  
  • –3 +/
    C не хипстерский и активно используется И да, Си логичное продолжение языка Би,... весь текст скрыт [показать]
     
     
  • 4.13, Никто, 14:50, 08/07/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Ни один нормальный язык программирования не может быть логичным продолжением Си,... весь текст скрыт [показать]
     
     
  • 5.15, Аноним, 15:10, 08/07/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Сколько убийц Си всего было? Десятки, ведь. И не взлетели.
     
     
  • 6.24, Ordu, 16:46, 08/07/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Потому что они методологически создавались неверно, всякими возомнившими из себя... весь текст скрыт [показать]
     
     
  • 7.27, _, 17:20, 08/07/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Бла-бла-бла! Больше текста ни о чём! :-р
     
     
  • 8.28, _, 17:22, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    И кстати - обратите внемане какой бургут на Go Чувствует что капец подкрался ... весь текст скрыт [показать]
     
     
  • 9.40, Ordu, 21:10, 08/07/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Капец кому Го Нет, го не умрёт так просто Он будет жить вечно, как Java и C ... весь текст скрыт [показать]
     
  • 8.39, Ordu, 21:08, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Слишком сложно Но, простите, я не буду тут делать обзор пары десятков языков пр... весь текст скрыт [показать]
     
  • 7.34, rob pike, 19:22, 08/07/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Си создавался методологически верно, путем отрывания у CPL всего хорошего что в ... весь текст скрыт [показать]
     
  • 7.47, Kodir, 01:58, 09/07/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Какой обильный понос Сразу видно вчерашнюю студоту - изучили на три языка больш... весь текст скрыт [показать]
     
     
  • 8.49, Roo2AT7d, 08:11, 09/07/2016 [^] [ответить] [смотреть все]  
  • +/
    И пилит ее какой-то аноним для виртуалбокса Сравни с Redox, которая уже работае... весь текст скрыт [показать]
     
     
  • 9.52, Вареник, 01:23, 10/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Зачем сравнивать двух маргиналов Because we can Поигрались ради фана и забро... весь текст скрыт [показать]
     
  • 7.48, angra, 03:08, 09/07/2016 [^] [ответить] [смотреть все]  
  • +2 +/
    Ничего не имею против Rust, а вот тебе явно стоит что-то сделать со своей патоло... весь текст скрыт [показать]
     
  • 7.58, Лютый жабист_, 11:10, 15/07/2016 [^] [ответить] [смотреть все]  
  • +/
    В силу этих миллиардов, Go, может быть, отъест себе какую-нибудь нишу, типа как ... весь текст скрыт [показать]
     
  • 6.26, _, 17:18, 08/07/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    С убить невозможно Ибо он идеален Высокоуровневый ассемблер, по локоть в желез... весь текст скрыт [показать]
     
     
  • 7.51, rob pike, 20:45, 09/07/2016 [^] [ответить] [смотреть все]  
  • –2 +/
    Go взлетел если его довольно скромную нишевую популярность можно так назвать н... весь текст скрыт [показать]
     
     
  • 8.54, Никто, 13:05, 11/07/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Создатели Go писали о своих мотивах, что им нужна была цельная замена тройки язы... весь текст скрыт [показать]
     
  • 6.32, Аноним84701, 18:23, 08/07/2016 [^] [ответить] [смотреть все]  
  • +3 +/
    Гм Мне вот интересно, где это ржавчину объяляли убивцем Си Только чур, ссылки ... весь текст скрыт [показать]
     
  • 6.36, Анонимусы, 19:48, 08/07/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Человек не умеет верно думать Какие убийцы Убийцы чего Если думать последоват... весь текст скрыт [показать]
     
  • 5.16, Аноним, 15:11, 08/07/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Сколько убийц Си всего было Десятки, ведь И не взлетели Да и гдн ты видел кни... весь текст скрыт [показать]
     
     
  • 6.18, Аноним, 15:32, 08/07/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    книгу Кернингана по го ещё никто не видел, а Кернигана есть, и даже уже в перево... весь текст скрыт [показать]
     
  • 6.55, Никто, 00:36, 12/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Есть у меня бумажный экземпляр этой книги
     
  • 3.38, Аноним, 20:05, 08/07/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    все хаймены уже на S-ке кодят
     
  • 2.12, Анонимусы, 14:36, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • –4 +/
    Настоящие мужики проЖат только на ассемблере, остальное включая ваш СИ это дл... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.21, Uri, 16:21, 08/07/2016 [^] [ответить] [смотреть все]  
  • +2 +/
    Продолжаю утрировать: настоящие мужики кодят на JavaScript.
     
     
  • 4.29, _, 17:23, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    причём на макбуках, и в красивых стрингах и лифчиках от Prada ... весь текст скрыт [показать]
     
  • 1.2, Аноним, 13:14, 08/07/2016 [ответить] [смотреть все]  
  • +/
    На последнем предложении залип.
     
     
  • 2.7, freehck, 13:57, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Если вам что-то не понятно, Вы задайте вопросы Вас конечно охаят, но всё-таки о... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.25, Аноним, 17:17, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Просто переполнение буфера, слишком многословное предложение :)
     
  • 2.45, Аноним, 23:04, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Транспортная кооперация, путем нормализации, стандартизации и инвентаризации сп... весь текст скрыт [показать] [показать ветку]
     
  • 1.8, Аноним, 14:05, 08/07/2016 [ответить] [смотреть все]  
  • +/
    это победа... весь текст скрыт [показать]
     
     
  • 2.31, Аноним84701, 18:16, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Мусью в курсе, что такое статистическая линковка?
     
     
  • 3.37, Аноним, 19:54, 08/07/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    такс посмотрим cat helloworl go package main func main println Привет... весь текст скрыт [показать]
     
     
  • 4.41, Аноним84701, 21:11, 08/07/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Казалось бы, причем тут го code cat test rs fn main println Hello... весь текст скрыт [показать]
     
     
  • 5.43, Аноним, 21:55, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    всё же разница не столь велика go build -ldflags -w -s -o hw-stat helloworld... весь текст скрыт [показать]
     
     
  • 6.44, Аноним84701, 22:05, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    x86_64 rustc -O -C prefer-dynamic ... весь текст скрыт [показать]
     
  • 5.50, Roo2AT7d, 08:50, 09/07/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    В наших рядах шпиён Release сборка при cargo build --release 646КБ, после ст... весь текст скрыт [показать]
     
  • 1.9, Аноним, 14:20, 08/07/2016 [ответить] [смотреть все]  
  • –1 +/
    вакансии есть? golang - очень мало, но есть
     
     
  • 2.10, Нанобот, 14:22, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • –4 +/
    где-то ближе к версии 4.0 будут
     
  • 2.11, Аноним, 14:30, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    https z cash blog hiring html https rust jobboard io jobs 394482-rust-develo... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.14, vasya, 15:04, 08/07/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    имел ввиду на территории этой страны =)
     
     
  • 4.30, _, 17:27, 08/07/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Если этастрана RU то пока вряд ли Если ваша Ылита будет тверда в курсе на ... весь текст скрыт [показать]
     
  • 1.17, Аноним, 15:28, 08/07/2016 [ответить] [смотреть все]  
  • –1 +/
    А как у него с GUI и SQL ??
     
     
  • 2.20, vasya, 16:08, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • –4 +/
    очевидно же, никак
     
  • 2.22, anonomouous, 16:32, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Вот что есть https://github.com/kud1ing/awesome-rust
    Ну и crates.io
     
  • 2.23, Аноним, 16:34, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    драйвера для работы с БД https crates io crates postgres конекшен пулы, для с... весь текст скрыт [показать] [показать ветку]
     
  • 1.19, Аноним, 15:46, 08/07/2016 [ответить] [смотреть все]  
  • +/
    Это некорректно Никакого автоматического управления памятью в Rust нет и в поми... весь текст скрыт [показать]
     
  • 1.33, Аноним, 18:32, 08/07/2016 [ответить] [смотреть все]  
  • –1 +/
    Можно пример того как это было раньше ... весь текст скрыт [показать]
     
  • 1.53, rihad, 17:53, 10/07/2016 [ответить] [смотреть все]  
  • –1 +/
    Когда планируют Cargo для FreeBSD портов допилить?
     
     
  • 2.56, Аноним, 15:44, 12/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    http www freshports org devel cargo и что там не так ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.57, rihad, 15:51, 12/07/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    >> Когда планируют Cargo для FreeBSD портов допилить?
    > http://www.freshports.org/devel/cargo/
    > и что там не так?

    Забыл пояснить, что для i386 не строится, а у меня VMware только такие оси ставит, т.к. проц без VT-x.

    $ pkg search cargo
    $

     

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


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor