HimeraSearchDB
Carding_EbayThief
triada
CrackerTuch
d-shop
HimeraSearchDB

НОВОСТИ [Перевод] Выпуск Rust 1.43.0: улучшение производительности компилятора и вывода типов для примитивов, item в макросах

Bonnie
Оффлайн
Регистрация
12.04.17
Сообщения
19.095
Реакции
107
Репутация
0
Команда Rust рада сообщить о выпуске новой версии, 1.43.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.


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


rustup update stable


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

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



Значительных изменений и нововведений этот релиз не содержит. Мы стабилизировали несколько новых API, улучшили производительность компилятора и добавили некоторые изменения в систему макросов. Для более подробной информации смотрите .


Фрагменты item



Теперь вы можете использовать фрагменты item, встраивая их в тело типажей, реализаций или внешних блоков. Например:


macro_rules! mac_trait {
($i:item) => {
trait T { $i }
}
}
mac_trait! {
fn foo() {}
}


Этот вызов сгенерирует следующий код:


trait T {
fn foo() {}
}

Вывод типов для примитивов



Был улучшен вывод типов для примитивов, ссылок и бинарных операций. Например, следующий код не компилируется в Rust 1.42, но соберётся в Rust 1.43.


let n: f32 = 0.0 + &0.0;


Rust 1.42 выдаёт ошибку "casting &f64 as f32 is invalid — cannot cast &f64 as f32". Начиная с этого выпуска алгоритм правильно выводит тип операндов — f32.

Новая переменная окружения Cargo для тестов



Чтобы помочь в проведении интеграционного тестирования, .


Это легче всего объяснить на примере: допустим, мы работаем над консольным проектом, назовём его "cli". В интеграционных тестах мы хотим запустить cli и посмотреть на результат её работы. Во время выполнения тестов и бенчмарков Cargo устанавливает переменную окружения с именем CARGO_BIN_EXE_cli, и мы можем использовать её в нашем тесте:


let exe = env!("CARGO_BIN_EXE_cli");


cli становится легче вызвать, ведь теперь у нас в распоряжении его полный путь.

Изменения в библиотеке



, вместо того, чтобы импортировать модуль. Теперь мы можем писать u32::MAX или f32::NAN без use std::u32; и use std::f32;.


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


Ещё мы стабилизировали шесть новых API:


Другие изменения



, и также претерпели некоторые изменения.

Участники 1.43.0



Множество людей собрались вместе, чтобы создать Rust 1.43.0. Мы не смогли бы сделать это без всех вас, !

От переводчиков



С любыми вопросами по языку Rust вам смогут помочь в или же в аналогичном .


Данную статью совместными усилиями перевели , , , , H. K. и .
 
Сверху Снизу