LINUX.ORG.RU

Rust


268

22

Всего сообщений: 189

Вышел Rust 1.23

 ,

Группа Разработка

4 января состоялся плановый релиз компилятора и стандартных средств разработки системного языка программирования Rust — 1.23.

Интересные изменения:

  • За счёт предотвращения ненужного копирования аргументов функций уменьшено потребление памяти. Например сам компилятор rustc стал потреблять на 5-10% меньше памяти.
  • rustdoc перешёл на рендеринг документации при помощи CommonMark. Раньше использовался Hoedown.
  • The Cargo Book переехал с doc.crates.io на doc.rust-lang.org и обновил формат.
  • cargo uninstall научился сразу удалять несколько пакетов. Например, команда cargo uninstall foo bar удалит foo и bar.
  • auto трейты теперь разрешены в трейтовых объектах. Один из коммитов этого изменения также окончательно удалил элемент языка send.
  • Проверки типов операндов бинарных операторов теперь производится относительно левого операнда, что предотвращает путаницу в соответствующих сообщениях об ошибках.
  • Исключена необходимость в T: Sync для RwLock<T>: Send.
  • Исключена необходимость в T: Sized для {<*const T>, <*mut T>}::as_ref и для <*mut T>::as_mut.
  • Оптимизирована реализация Thread::{park, unpark}.
  • Улучшена производительность SliceExt::binary_search.
  • Трейт AsciiExt объявлен устаревшим, а его методы перенесены в примитивные типы.
  • char::escape_debug теперь использует Unicode 10 вместо Unicode 9.
  • Включён LLVM-флаг TrapUnreachable.
  • musl, используемый для сборки musl rustc, обновлён до 1.1.17.
  • Улучшена производительность SliceExt::binary_search.
  • rustfmt включён в основную инсталляцию.
  • Минимальная версия LLVM изменена на 3.9.

Полный перечень изменений

>>> Анонс (rust-lang.org)

bbk123
()

libresvg 0.1 — новая альтернатива librsvg

 , , ,

Группа Open Source

libresvg 0.1 представляет собой первый экспериментальный выпуск новой библиотеки для отрисовки (рендеринга) SVG.

Основная цель проекта — заменить librsvg и QtSvg, и стать альтернативой Inkscape для тех, кто использует его для конвертирования SVG в PNG.

В текущей версии новая библиотека уже превосходит QtSvg, но не дотягивает до librsvg по возможностям (нет filter, clipPath, mask, marker, pattern). Тем не менее, поддержка стандарта в libresvg намного лучше, из-за чего базовые элементы, такие как path, gradients, shapes, text, поддерживаются лучше (у librsvg множество ошибок отрисовки).

Основные отличия от librsvg:

  • Возможность использовать несколько бекэндов (сейчас реализованы Qt и cairo). librsvg привязан к cairo и glib, из-за чего использовать его вне Linux — проблематично.
  • В отличии от librsvg, в libresvg стадии разбора и отрисовки полностью разделены, что позволяет легко добавлять новые бекэнды. Также это позволяет реализовать множество алгоритмов препроцессинга и валидации SVG, что, в свою очередь, позволяет избежать большого количества ошибок отрисовки.
  • Полная поддержка градиентов. rsvg не умеет наследовать атрибуты, проверять атрибуты на корректность, не поддерживает градиенты без дочерних или с одним дочерним элементом (swatches).
  • Хорошая поддержка отрисовки текста. rsvg не понимает xml:space, text-decoration, не всегда верно отрисовывает многострочный текст, плохо поддерживает tspan.
  • Поддержка CSS намного лучше, но полной поддержки всё ещё нет.

В разделе Releases можно скачать демо-приложение для оценки отрисовки для тех, кто не хочет собирать библиотку из исходников. Также в архиве находится консольное приложение для конвертации, альтернатива rsvg-convert.

Так как это первый релиз, то принимается любая критика и предложения по дальнейшему развитию проекта.

>>> Подробности (github.com)

RazrFalcon
()

В компилятор Rust по умолчанию добавлена поддержка бэкенда WebAssembly

 ,

Группа Mozilla

Соответствующий запрос о слиянии был принят в основную ветку 25 ноября. С этого дня в ночных сборках доступна штатная цель сборки wasm32-unknown-unknown.

Благодаря этому, установив свежую ночную сборку, теперь можно компилировать Rust в WebAssembly без дополнительного инструментария:

rustup update
rustup target add wasm32-unknown-unknown --toolchain nightly
rustc +nightly --target wasm32-unknown-unknown -O hello.rs

Поддержка и документация пока что немного ограничены, но над расширением этой области ведётся активная работа. Также компилятор Rust пока что не имеет хорошего линковщика, так что конечные WebAssembly-сборки будут весьма крупными. Алекс написал небольшой инструмент для уменьшения размера:

cargo install --git https://github.com/alexcrichton/wasm-gc
wasm-gc hello.wasm small-hello.wasm

Полные инструкции можно найти в руководстве по установке wasm32-unknown-unknown.

>>> Источник (hellorust.com)

bodqhrohro_promo
()

Rust 1.22.0 и 1.22.1

 

Группа Mozilla

Команда языка Rust с радостью представляет две версии языка Rust, 1.22 и 1.22.1. Rust — это системный язык программирования, который нацелен на безопасность, скорость выполнения и параллельное исполнение.

( читать дальше... )

>>> Полный патчноут (github.com)

creazero
()

Rust 1.21

 

Группа Разработка

Состоялся релиз языка системного программирования Rust.

Итак, новшества:

  • Теперь можно использовать статические ссылки для литералов (для размещения значений в статичной памяти (куче), вместо слотов стека).
  • Перед блоком «<>» теперь можно вставлять разделитель "::":
        my_macro!(Vec‹i32›::new); // Так нужно было писать раньше.
        my_macro!(Vec::‹i32›::new); // Раньше этот код считался некорректным.
    
  • Библиотека jemmaloc обновлена.
  • LLVM теперь может запускаться параллельно с трансляцией при компиляции с несколькими юнитами (-Ccodegen-units=N) генератора кода, изменение позволило сильно сократить потребление памяти во время сборки.
  • Стабилизированы API std::mem::discriminant, needs_drop и итератор for_each.
  • Добавлено много новой документации.
  • Можно установить RLS (Rust Language Server, серверный модуль для IDE с поддержкой протокола LSP) при помощи команды rustup (rustup component add rls-preview).
  • В cargo (пакетный менеджер для Rust) появилась возможность установки нескольких пакетов одновременно.

>>> Подробности (rust-lang.org)

trallman
()

Выпущена пре-альфа версия API для встраивания браузера Servo

 , ,

Группа Mozilla

20 сентября объявлено о выходе libservo — API для встраивания движка браузера Servo. Демонстрационные программы, написанные с использованием libservo, доступны в репозитории на GitHub.

Со временем libservo API планируется стабилизировать, но сейчас он стабильным не является.

>>> Обсуждение на reddit (reddit.com)

tailgunner
()

Вышел Rust 1.20

 

Группа Mozilla

Команда разработчиков Rust с удовольствием объявляет о выходе новой стабильной версии Rust: 1.20.0.

( читать дальше... )

>>> Подробности (rust-lang.org)

red75prim
()

Exonum — новый фреймворк для создания приватных блокчейнов

 , ,

Группа Open Source

Разработчики компании Bitfury Group представили свой собственный фреймворк для разработки приватных блокчейнов Exonum, который позволяет создавать свои безопасные и высокопроизводительные blockchain-решения.

( читать дальше... )

>>> Подробности (exonum.com)

Gorthauer
()

Rust 1.19

 

Группа Mozilla

Команда Rust рада объявить о последней версии Rust, 1.19.0. Rust это системный язык программирования, сфокусированный на безопасности, скорости и конкурентном выполнении.

( Подробности под катом... )

>>> Подробности (rust-lang.org)

Virtuos86
()

Rust 1.18

 

Группа Mozilla

Команда Rust анонсирует релиз 1.18.

Обновление предыдущей версии легко:

$ rustup update stable

Сам rustup можно установить здесь.

Основные изменения

( читать дальше... )

>>> Подробности (rust-lang.org)

gene1
()

Продемонстрирована возможность разработки частей Linux на Rust

 , ,

Группа Разработка

Французский программист написал статью, в которой рассмотрел возможность переписывания ядра Linux на Rust.

В статье отмечено, что данный язык хорошо подходит для системного программирования, будучи достаточно низкоуровневым и при этом лишённым многих недостатков C, и уже используется для написания новых ОС. Однако автор не считает создание ОС с нуля перспективным для серьёзного применения, и последовательный перенос отдельных частей Linux на Rust для решения различных проблем безопасности кажется ему более целесообразным.

В качестве «Proof of Concept» была приведена реализация системного вызова, содержащая вставки на Assembler внутри unsafe-блоков. Код компилируется в объектный файл, не связанный с библиотеками и интегрируемый в ядро во время сборки. Работа производилась на основе исходного кода Linux 4.8.17.

>>> Статья (dominuscarnufex.github.io)

batya
()

Rust 1.17

 ,

Группа Mozilla

Команда Rust рада представить выпуск Rust 1.17.0. Rust — это системный язык программирования, нацеленный на безопасность, скорость и параллельное выполнение кода.

Если у вас установлена предыдущая версия Rust, то для обновления достаточно выполнить:

$ rustup update stable

Если у вас ещё не установлен Rust, то вы можете установить rustup c соответствующей страницы нашего веб-сайта и ознакомиться с подробным примечанием к выпуску 1.17.0 на GitHub.

( читать дальше... )

>>> Подробнее смотрите примечания к выпуску (github.com)

mersinvald
()

29–30 апреля в Киеве пройдёт RustFest 2017

 , ,

Группа Конференции и встречи

29–30 апреля в Киеве будет проходить европейская конференция RustFest.

Rust — самый любимый язык программирования в мире по опросу StackOverflow. Он соединяет в себе последние достижения теории языков программирования с лучшими практиками индустрии и используется повсеместно: Internet of Things, Machine Learning, системные библиотеки, аддоны для Python, Java, .NET и т. д., мобильная разработка и WebAssembly.

( читать дальше... )

>>> Подробности (rustfest.eu)

listochkin
()

Начата публикация исходных кодов серверной части Wire

 , , ,

Группа Open Source

На GitHub начата публикация исходных кодов серверной части сервиса обмена мгновенными сообщениями Wire. Пока опубликован код, отвечающий за обмен сообщениями и интеграцию с nginx. В дальнейшем будут открыты исходники системы push-нотификаций для устройств на iOS и Android, поиска пользователей и управления устройствами.

Большая часть кода написана на языке программирования Haskell, небольшие фрагменты — на Rust и C. Код опубликован под лицензией AGPL 3.0.

Исходный код

>>> Подробности (medium.com)

hateyoufeel
()

Rust 1.16

 ,

Группа Mozilla

Представлен релиз Rust 1.16 — системного языка программирования, нацеленного на безопасную работу с ресурсами, скорость и параллельное выполнение кода. В этот релиз вошли 1364 патча от 137 разработчиков.

Если у вас уже установлена предыдущая версия Rust, то обновиться до Rust 1.16 очень легко:

$ rustup update stable

Самое крупное нововведение в Rust 1.16 — новая субкоманда cargo check направленная на ускорение процесса разработки.

( читать дальше... )

>>> Подробности (rust-lang.org)

mersinvald
()

Rust 1.15

 

Группа Разработка

Представлен релиз Rust 1.15 — системного языка программирования, нацеленного на безопасную работу с памятью, скорость и параллельное выполнение кода. В этот релиз вошли 1443 патча.

Если у вас уже установлена предыдущая версия Rust, то обновиться до Rust 1.15 очень легко:

$ rustup update stable
или же следуя инструкции на соответствующей странице.

( Новое в 1.15 )

>>> Подробности (rust-lang.org)

dotcoder
()

Rust 1.14

 

Группа Mozilla

Представлен релиз Rust 1.14 — системного языка программирования, нацеленного на безопасную работу с памятью, скорость и параллельное выполнение кода. В этот релиз вошли 1230 патчей.

( Новое в 1.14 )

>>> Подробности (rust-lang.org)

dotcoder
()

Анонсирован первый конкурс недобросовестного программирования на Rust

 

Группа Mozilla

Команда Rust анонсирует первый ежегодный конкурс «недобросовестного Rust» по мотивам существующих конкурсов «недобросовестного C» и «недобросовестной криптографии».

Задача Rust — сделать доступным написание безопасного низкоуровневого кода, защищённого от случайных уязвимостей. Меньше времени уделяется возможности Rust защитить от умышленного внедрения уязвимостей при бдительном обзоре кода. Конкурс предназначен для обнаружения и устранения возможных слабостей языка и его экосистемы. Иными словами, авторы просят вас сломать систему с помощью достаточно лёгкого для понимания кода. Можете ли вы написать полностью safe-Rust, скрывающий логический баг, или скрыть в unsafe-Rust уязвимость, которая не обнаружится при обзоре кода?

>>> Подробности (underhanded.rs)

anonymous
()

Первый Live CD Redox OS

 , ,

Группа Open Source

Доступен первый тестовый образ Live CD Redox OS — операционной системы, написанной на Rust.

( читать дальше... )

>>> Исходный код

>>> livedisk.iso

>>> Подробности (github.com)

mersinvald
()

Rust 1.13

 

Группа Mozilla

Представлен релиз Rust 1.13 — системного языка программирования, нацеленного на безопасную работу с памятью, скорость и параллельное выполнение кода. В этот релиз вошли 1448 патчей.

Этот сезон оказался очень плодотворным для Rust. Проведены конференции RustConf, RustFest и Rust Belt Rust. Обсуждено будущее языка, разработан план на 2017 год и созданы новые инструменты.

Новое в 1.13

Выпуск 1.13 содержит несколько расширений языка, включая долгожданный оператор ?, оптимизацию времени компиляции, новые возможности cargo и стандартной библиотеки, а также множество мелких улучшений в документации и исправления ошибок.

Cargo в этом релизе содержит важные обновления безопасности, связанные с зависимостями от curl и OpenSSL, для которых также недавно были опубликованы обновления безопасности. Подробную информацию можно найти в соответствующих источниках для curl 7.51.0 и OpenSSL 1.0.2j.

( читать дальше... )

>>> Подробности (rust-lang.org)

dotcoder
()