- Регистрация
- 12.04.17
- Сообщения
- 19.095
- Реакции
- 107
- Репутация
- 0
Команда Rust рада сообщить о выпуске новой версии, 1.43.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.43.0 вам достаточно выполнить следующую команду:
rustup update stable
Если у вас ещё не установлен rustup, вы можете
Что вошло в стабильную версию 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 становится легче вызвать, ведь теперь у нас в распоряжении его полный путь.
Изменения в библиотеке
Также добавлен
Ещё мы стабилизировали шесть новых API:
Другие изменения
Участники 1.43.0
Множество людей собрались вместе, чтобы создать Rust 1.43.0. Мы не смогли бы сделать это без всех вас,
От переводчиков
С любыми вопросами по языку Rust вам смогут помочь в
Данную статью совместными усилиями перевели
Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.43.0 вам достаточно выполнить следующую команду:
rustup update stable
Если у вас ещё не установлен rustup, вы можете
You must be registered for see links
с соответствующей страницы нашего веб-сайта, а также посмотреть
You must be registered for see links
на GitHub.Что вошло в стабильную версию 1.43.0
Значительных изменений и нововведений этот релиз не содержит. Мы стабилизировали несколько новых API, улучшили производительность компилятора и добавили некоторые изменения в систему макросов. Для более подробной информации смотрите
You must be registered for see links
.Фрагменты 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 для тестов
Чтобы помочь в проведении интеграционного тестирования,
You must be registered for see links
.Это легче всего объяснить на примере: допустим, мы работаем над консольным проектом, назовём его "cli". В интеграционных тестах мы хотим запустить cli и посмотреть на результат её работы. Во время выполнения тестов и бенчмарков Cargo устанавливает переменную окружения с именем CARGO_BIN_EXE_cli, и мы можем использовать её в нашем тесте:
let exe = env!("CARGO_BIN_EXE_cli");
cli становится легче вызвать, ведь теперь у нас в распоряжении его полный путь.
Изменения в библиотеке
You must be registered for see links
, вместо того, чтобы импортировать модуль. Теперь мы можем писать u32::MAX или f32::NAN без use std::u32; и use std::f32;.Также добавлен
You must be registered for see links
, реэкспортирующий примитивные типы Rust. Он может пригодиться в написании макросов, чтобы быть уверенным, что типы не будут затенены.Ещё мы стабилизировали шесть новых API:
-
You must be registered for see links
-
You must be registered for see links
-
You must be registered for see links
-
You must be registered for see links
-
You must be registered for see links
-
You must be registered for see links
Другие изменения
You must be registered for see links
,
You must be registered for see links
и
You must be registered for see links
также претерпели некоторые изменения.Участники 1.43.0
Множество людей собрались вместе, чтобы создать Rust 1.43.0. Мы не смогли бы сделать это без всех вас,
You must be registered for see links
!От переводчиков
С любыми вопросами по языку Rust вам смогут помочь в
You must be registered for see links
или же в аналогичном
You must be registered for see links
.Данную статью совместными усилиями перевели
You must be registered for see links
,
You must be registered for see links
,
You must be registered for see links
,
You must be registered for see links
, H. K. и
You must be registered for see links
.