Митап Parity Technologes в Москве 16 декабря

• Кирилл Пименов • новости • поддержите на Patreon

Всем привет!

В грядущее воскресенье (16 декабря) Parity Technologes организует митап в Москве, приуроченный к конференции RustRush

От команды Parity на RustRush приезжает с десяток человек; на митапе Пьер Кригер (@tomaka) будет рассказывать про rust-libp2p, а Джек Френшем (@Vurich) — про Parity Substrate. Доклады будут на английском, но мы поможем с переводом, если вам будет проще формулировать вопросы по-русски.

Митап пройдёт в помещении коворкинга «Ключ Трёхгорка» по адресу: Рочдельская 15, стр. 17–18, 3 этаж (ближайшее метро — «Улица 1095 года»). Начало — в 18:00.

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

Записывайтесь и приходите!

Конференция RustRush 15–16 декабря в Москве

• Михаил Панков • новости • поддержите на Patreon

Всем привет!

15-16 декабря в Москве пройдёт первая международная конференция по Rust в России, RustRush 2018!

анонс

Это двухдневная конференция с докладами и воркшопами.

До 19 ноября открыт приём докладов. Подать доклад.

Билеты уже в продаже. Для участников сообщества доступен промо-код RUSTYCRATE со скидкой 20% на обычные билеты. Купить билет.

Участникам конференции доступен блок номер в отеле конференции — Novotel Moscow City. Как забронировать — читайте дальше.

Если вашей компании интересно мероприятие, свяжитесь с нами по почте sponsor@rustrush.ru. Мы предлагаем групповые билеты, помощь в продвижении ваших продуктов, помощь в поиске разработчиков на Rust.

Выпуск Rust 1.30

оригинал: The Rust Core Team • перевод: XX • новости • поддержите на Patreon

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

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

1
$ rustup update stable

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

Что вошло в стабильную версию 1.30.0

Rust 1.30 — выдающийся выпуск с рядом важных нововведений. Но уже в понедельник в официальном блоге будет опубликована просьба проверить бета-версию Rust 1.31, которая станет первым релизом «Rust 2018». Дополнительную информацию об этом вы найдёте в нашей предыдущей публикации «What is Rust 2018».

Процедурные макросы

Ещё в Rust 1.15 мы добавили возможность определять «пользовательские derive-макросы». Например, с помощью serde_derive, вы можете объявить:

1
2
3
4
#[derive(Serialize, Deserialize, Debug)]
struct Pet {
    name: String,
}

И конвертировать Pet в JSON и обратно в структуру, используя serde_json. Это возможно благодаря автоматическому выводу типажей Serialize и Deserialize с помощью процедурных макросов в serde_derive.

Rust 1.30 расширяет функционал процедурных макросов, добавляя возможность определять ещё два других типа макросов: «атрибутные процедурные макросы» и «функциональные процедурные макросы».

Выпуск Rust 1.29

оригинал: The Rust Core Team • перевод: ozkriff • новости • поддержите на Patreon

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

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

1
$ rustup update stable

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

Что вошло в стабильную версию 1.29.0

1.29 привносит не очень много изменений. Ожидается что Rust 1.30 и 1.31 будут очень значительными, так что большая часть 1.29 итерации ушла на подготовку к будущим изменениям. Два самых заметных нововведения этого выпуска даже не касаются самого языка: это две новые возможности Cargo и обе они связаны с предупреждениями.

  • cargo fix автоматически исправляет предупреждения в коде
  • cargo clippy — статический анализатор Rust кода, помогающий поймать распространённые ошибки и просто улучшить код

cargo fix

С выпуском Rust 1.29 у Cargo появляется новая подкоманда: cargo fix. Если вы когда-либо писали на Rust, то скорее всего уже сталкивались с предупреждениями компилятора. Например, рассмотрим такой код:

1
2
3
4
5
6
7
fn do_something() {}

fn main() {
    for i in 0..100 {
        do_something();
    }
}

Выпуск Rust 1.28

оригинал: The Rust Core Team • перевод: XX • новости • поддержите на Patreon

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

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

1
$ rustup update stable

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

Что вошло в стабильную версию 1.28.0

Глобальные аллокаторы

С помощью аллокаторов программы на Rust получают память во время выполнения. Раньше Rust не позволял изменять способ распределения памяти, что ограничивало его использование в некоторых случаях. На одних платформах использовался jemalloc, на других — системный аллокатор, но пользователи не могли это контролировать. В выпуске 1.28.0 стабилизирован атрибут #[global_allocator], который позволяет программам на Rust выбирать системный аллокатор, а также определять новые аллокаторы, реализуя типаж GlobalAlloc.

Аллокатор по умолчанию для Rust-программ на некоторых платформах — это jemalloc. Стандартная библиотека теперь предоставляет дескриптор системного аллокатора, который можно использовать для переключения на использование системного аллокатора, когда это необходимо, путём статического объявления с атрибутом #[global_allocator].

1
2
3
4
5
6
7
8
9
10
use std::alloc::System;

#[global_allocator]
static GLOBAL: System = System;

fn main() {
    let mut v = Vec::new();
    // Память будет выделяться системным аллокатором.
    v.push(1);
}