Вышел Rust 1.31

https://blog.rust-lang.org/2018/12/06/Rust-1.31.html

Новый адрес статьи:

Привет новый (и пока страшно глючащий) сайт, Rust 2018, NLL, constfn и еще пачка крутых штук. :slight_smile:

Подозреваю, в ближайщие дни будет дикая волна Rust 2018 постов.


UPD: хаброперевод:

4 лайка

Увы, фальтстарт…
HTTP 404

А вот теперь уже появился…

NLL в стейбл, да ты шоооо!
Отличный релиз.

Я только что понял что в Rust 2015 пакетов можно использовать 2018 зависимости, а не только наоборот из нового старое.
Нифига я пропустил “мелочь”, это же офигенно.

Радостно попробовал const fn впихнуть в код

local variables in const fn are unstable

:frowning: да блин, только совсем тривиальное пока еще можно.

А clippy, rls, rustfmt выпилили из nightly что ли? В rustup я их вижу только в stable toolchain.

Не, должно все на месте быть. Там только “-preview” суффикс убрали у чего-то из и все.

С cargo fix надо осторожно.

Он при использовании extern crate longlongname as name; без предупреждений везде импорты правит с use name; на use crate::name, запутывая все, потому что кажется что это внутренние импорты, а не внешние. Правильное решение тут - через сам Cargo.toml переименовать longlongname сразу в name и руками убрать лишние crate:: из путей;

Еще при использовании такого псевдонима:

pub type Cb<'c> = &'c mut dyn FnMut(&State, &Event, ApplyPhase);

cargo fix радостно расставляет везде лишний вывод ВЖ, который вообще не нужен:

- pub fn execute(state: &mut State, command: &Command, cb: Cb) -> Result<(), Error> {
+ pub fn execute(state: &mut State, command: &Command, cb: Cb<'_>) -> Result<(), Error> {

:pensive:


UPD: В чате пишут что:

Denis Lisov @tanriol: не упоминать вообще такой lifetime депрекейтнута в RFC 2115.

Может я не прав про <'_>, надо будет поразбираться.

1 лайк

Интересно, а что происходит в этом случае?

Заменяется на &mut dyn FnMut(&State, &Event, ApplyPhase) без 'c?

Да, обычный https://doc.rust-lang.org/nomicon/lifetime-elision.html работает

Мне кажется или cargo check стал быстрее работать? А в месте с ним и rls?

@freecoder выложил на хабру перевод новости.

1 лайк

Если вдруг кто пропустил, там еще серия оцифиальных постов будет вдогонку к выпуску Rust 2018.

^ На днях уже будет заметка про процедурные макросы.

Version 1.31.1 (2018-12-20)


UPD: Вот и оно:

1 лайк

Теперь о процедурных макросах