Вышел Rust 1.8
16:44:00
Rust — мультипарадигмальный компилируемый язык программирования общего назначения, разрабатываемый Mozilla Research, поддерживающий функциональное программирование, модель акторов, процедурное программирование, объектно-ориентированное программирование.
Rust — это системный язык программирования, внимание которого сосредоточено на трёх задачах: безопасность, скорость и параллелизм. Он сопоставим по скорости и возможностям с C++, однако, даёт большую безопасность при работе с памятью, что обеспечивается механизмами ограничения. Rust также направлен на достижение «абстракции с нулевой стоимостью».
Команда Rust с удовольствием сообщает о выходе новой стабильной версии Rust 1.8.
Как обычно, вы можете установить Rust 1.8 с соответствующей страницы на нашем сайте и посмотреть подробные примечания к выпуску 1.8 на GitHub'е. В этом релизе было принято около 1400 патчей.
Что нового в стабильной версии 1.8
Этот выпуск содержит два нововведения, и приятный сюрприз для пользователей Windows! Помимо этого идёт работа по замене системы сборки Rust, основанной на make, на Cargo.
Первое нововведение – это возможность перегрузки составных операторов присваивания, таких как
Второе нововведение, взятое из RFC 218, не такое значительное. В предыдущих версиях Rust структура, не содержащая полей, должна была объявляться без фигурных скобок:
Возвращаясь к Windows — теперь 32-х битные MSVC сборки поддерживают размотку стека, что переводит платформу
Мы с давних пор используем make для сборки Rust'а, но у нас уже есть своё замечательное средство сборки для программ на Rust: Cargo. В Rust 1.8 мы добавили предварительную поддержку новой системы сборки, написанной на Rust и основанной на Cargo. Мы ещё не используем её по умолчанию, и она требует значительной доработки, поэтому подробное её описание появится в примечаниях к выпуску после её завершения. Сейчас вы можете посмотреть подробности по ссылке на PR 31123.
Стабилизация библиотек
В Rust 1.8 около 20 функций и методов было переведено в категорию стабильных. Их можно разбить на три группы: работа со строками в кодировке UTF-16, различные API для работы со временем, и дополнительные трейты, необходимые для перегрузки операторов, упомянутые в секции об изменениях в языке.
Нововведения в Cargo
Подробно об изменениях / Оригинал новости
Rust — это системный язык программирования, внимание которого сосредоточено на трёх задачах: безопасность, скорость и параллелизм. Он сопоставим по скорости и возможностям с C++, однако, даёт большую безопасность при работе с памятью, что обеспечивается механизмами ограничения. Rust также направлен на достижение «абстракции с нулевой стоимостью».
Команда Rust с удовольствием сообщает о выходе новой стабильной версии Rust 1.8.
Как обычно, вы можете установить Rust 1.8 с соответствующей страницы на нашем сайте и посмотреть подробные примечания к выпуску 1.8 на GitHub'е. В этом релизе было принято около 1400 патчей.
Что нового в стабильной версии 1.8
Этот выпуск содержит два нововведения, и приятный сюрприз для пользователей Windows! Помимо этого идёт работа по замене системы сборки Rust, основанной на make, на Cargo.
Первое нововведение – это возможность перегрузки составных операторов присваивания, таких как
+=
и -=
. Изменение было принято в RFC 953 и имеет вид:use std::ops::AddAssign;
#[derive(Debug)]
struct Count {
value: i32,
}
impl AddAssign for Count {
fn add_assign(&mut self, other: Count) {
self.value += other.value;
}
}
fn main() {
let mut c1 = Count { value: 1 };
let c2 = Count { value: 5 };
c1 += c2;
println!("{:?}", c1);
}
Эта программа выведет Count { value: 6 }
.
Как и в других трейтах, перегружающих операторы, ассоциированный тип
позволяет использовать разные типы в левой и правой части оператора (см.
RFC 953).Второе нововведение, взятое из RFC 218, не такое значительное. В предыдущих версиях Rust структура, не содержащая полей, должна была объявляться без фигурных скобок:
struct Foo; // works
struct Bar { } // error
Вторая форма объявления больше не является ошибочной. Изначально эта
форма была запрещена из соображений согласованности с другими пустыми
объявлениями, а также для предотвращения неоднозначности синтаксического
разбора. Но эта неоднозначность была устранена, начиная с Rust 1.0.
Кроме того, запрет этой формы создавал трудности при написании макросов,
требуя специальной обработки. Наконец, пользователям, ведущим активную
разработку, иногда требовалось менять пустую структуру на непустую и
наоборот, что требовало лишней работы и приводило к некрасивым diff'ам.Возвращаясь к Windows — теперь 32-х битные MSVC сборки поддерживают размотку стека, что переводит платформу
i686-pc-windows-msvc
в класс 1 (о классах поддержки платформ).Мы с давних пор используем make для сборки Rust'а, но у нас уже есть своё замечательное средство сборки для программ на Rust: Cargo. В Rust 1.8 мы добавили предварительную поддержку новой системы сборки, написанной на Rust и основанной на Cargo. Мы ещё не используем её по умолчанию, и она требует значительной доработки, поэтому подробное её описание появится в примечаниях к выпуску после её завершения. Сейчас вы можете посмотреть подробности по ссылке на PR 31123.
Стабилизация библиотек
В Rust 1.8 около 20 функций и методов было переведено в категорию стабильных. Их можно разбить на три группы: работа со строками в кодировке UTF-16, различные API для работы со временем, и дополнительные трейты, необходимые для перегрузки операторов, упомянутые в секции об изменениях в языке.
Нововведения в Cargo
-
cargo init
создаёт проект в текущем каталоге, не создавая новый, как делаетcargo new
-
cargo metadata
- дополнительная субкоманда для получения метаданных -
.cargo/config
теперь допускает ключи-v
и--color
- Улучшены возможности Cargo по поддержке платформоспецифичных зависимостей.
0 коммент.
Дорогие друзья! Будем уважать друг друга и не превращать данный блок в linux.org.ru