Выпуск Rust 1.13

The Rust Core Team (перевёл Александр Ирбис) • новости

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

Как обычно, вы можете установить Rust 1.13.0 с соответствующей страницы официального сайта, а также ознакомиться с подробным списком изменений в 1.13.0 на GitHub. В этот выпуск вошло 1448 патчей.

Это была по-настоящему горячая пора в Rust. Мы участвовали в трёх конференциях подряд — RustConf, RustFest и Rust Belt Rust. Было классно увидеть так много любителей Rust; со многими мы встретились впервые! Мы много думали о будущем, разрабатывали план на 2017 и создавали инструменты, нужные нашим пользователям.

И несмотря на всё это, мы собрали новый выпуск с кучей новых крутых фишек.

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

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

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

Оператор ?

Rust приобрёл новый оператор ?. Он делает работу c ошибками значительно приятнее, убирая визуальный шум. Например, у нас есть такой код для чтения данных из файла:

CoLaboratory: Rust 2. Лаборатория Касперского, 22 ноября

Михаил Панков • новости

лого

зарегистрироваться

Rust — современный системный язык программирования. У него мощная система типов — она защищает программиста от многих ошибок. Например, использование освобождённой памяти и гонки данных в Rust обнаруживаются во время компиляции! При этом язык не использует сборку мусора. За счёт этого у него предсказуемая производительность. Кроме того, он легко встраивается в другие языки и отлично подходит для низкоуровнего программирования. На Rust можно писать надёжные, высокопроизводительные многопоточные программы.

За полгода с последней встречи в мире Rust произошло много интересного. Реализованы футуры и асинхронный ввод-вывод поверх них, сделан первый выпуск системы поддержки IDE, реализована инкрементальная сборка. Пробелы в языке и экосистеме Rust быстро заполняются. Так что самое время познакомиться с инструментом поближе!

22 ноября мы снова встретимся в офисе Лаборатории Касперского. Обсудим опыт реального применения Rust в нескольких задачах системного программирования и тестирования. Что получается хорошо, что — не очень. Расскажем как Rust помогает и как его готовить, чтобы он помогал вам.

Приходите — будет интересно!

Выпуск Rust 1.12.1

The Rust Core Team (перевёл Денис Хлякин) • новости

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

Как обычно, вы можете установить Rust 1.12.1 с соответствующей страницы официального сайта, или с помощью rustup выполнив команду rustup update stable.

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

Секундочку… один-точка-двенадцать-точка… один?

Несколько недель назад, в анонсе версии 1.12, мы сказали:

Выпуск 1.12 — возможно, самый значительный с момента выпуска 1.0.

И это правда. Одним из важных изменений был масштабный рефакторинг компилятора. Новый бэкенд MIR изменил его архитектуру и некоторые детали реализации. В целом процесс модернизации прошёл так:

Анонс Rust 1.12

The Rust Core Team (перевёл Михаил Панков) • новости

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

Как обычно, вы можете установить Rust 1.12 с соответствующей страницы официального сайта, а также ознакомиться с подробным списком изменений в этой версии на GitHub. В этот выпуск вошёл 1361 патч.

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

Выпуск 1.12 — возможно, самый значительный с момента выпуска 1.0. Нам есть о чём рассказать, но если у вас мало времени, вот краткое содержание.

Самое заметное для пользователей изменение в 1.12 — это новый формат ошибок, выдаваемых rustc. Мы говорили о нём раньше и это первый стабильный выпуск, где новый формат доступен всем. Эти сообщения об ошибках — результат многочисленных усилий добровольцев, которые спроектировали, протестировали и обновили каждую ошибку rustc в соответствии с новым форматом. Нам интересно узнать, что вы думаете о новых ошибках:

Новая ошибка заимствования

Числа Пеано на системе типов Rust

Fedor Logachev • обучение

Реализация арифметики натуральных чисел с помощью чисел Пеано — популярная задача в обучение программированию. Мне было интересно, можно ли реализовать их на Rust.

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

Если верить википедии «Аксио́мы Пеа́но — одна из систем аксиом для натуральных чисел, введённая в XIX веке итальянским математиком Джузеппе Пеано.»

Нас интересуют две из них — с помощью которых можно ввести и использовать натуральные числа:

  • 1 является натуральным числом
  • Число, следующее за натуральным, тоже является натуральным.

Дословно запишем на расте с помощью:

enum Nat { 
  Zero,
  Succ(Nat)
}

Nat — это либо ноль, либо следующее натуральное число.