#prog #rust #rustreleasenotes
Вышла версия Rust 1.91.0! Как всегда, тут только избранные части, всё остальное — в детальных заметках о релизе.
Если бы этот релиз можно было описать одним словом, то это было бы слово "полировка": релиз скорее про улучшение уже существующих фич и стабилизацию старых, давно бывших в nightly, чем про добавление чего-то действительно нового.
▪️Компилятор теперь не даёт компилировать код с суффиксами на индексах для кортежей и кортежных структур. Это было разрешено ранее по недосмотру.
▪️Добавили предупреждение на создание повисших указателей на локальные переменные. Сама по себе эта операция не является небезопасной, но на таком указателе определено очень мало осмысленных операций. Пример (из PR):
⬇️
Анализ достаточно умный, чтобы понимать поток управления и цепочки кастов (примеры в тестах в PR).
▪️Компилятор теперь не выдаёт предупреждение о мёртвом коде на
▪️Уровень поддержки для Windows с нативным ABI на ARM (aarch64-pc-windows-msvc) подняли до Tier 1.
▪️Парочка дополнений насчёт потоков: попытка установки минимального размера стека теперь возвращает ошибку при невозможности это сделать вместо паники. Сообщение о панике теперь включает в себя ID потока, в котором её начали.
▪️Задокументировали разумное предположение о Clone и PartialEq/Eq, на которое опирается стандартная библиотека (главным образом коллекции): копия значения, полученная путём вызова .clone(), должна быть равна исходному значению (при условии, что исходное значение равно самому себе).
▪️Ещё одно дополнение к документации (и соответствующий фикс): функции
▪️Стабилизировали громадное количество функций:
🔸 Path::file_prefix для извлечения порции имени файла до расширения. В отличие от существующей Path::file_stem, отрезает все расширения, а не только последнее:
🔸Несколько методов для модификации
🔸
🔸uN::checked_signed_diff для вычисления знаковой разницы беззнаковых чисел.
🔸array::repeat (в отличие от встроенного синтаксиса, работает не только с
🔸Duration::from_mins и Duration::from_hours.
🔸BTreeMap::extract_if и BTreeSet::extract_if для ленивого вытаскивания из коллекций значений, удовлетворяющих предикату.
🔸str::ceil_char_boundary и str::floor_char_boundary.
▪️
▪️У cargo теперь есть настройка для указывания того, куда складывать промежуточные артефакты компиляции.
▪️Для ключа
Вышла версия Rust 1.91.0! Как всегда, тут только избранные части, всё остальное — в детальных заметках о релизе.
Если бы этот релиз можно было описать одним словом, то это было бы слово "полировка": релиз скорее про улучшение уже существующих фич и стабилизацию старых, давно бывших в nightly, чем про добавление чего-то действительно нового.
▪️Компилятор теперь не даёт компилировать код с суффиксами на индексах для кортежей и кортежных структур. Это было разрешено ранее по недосмотру.
▪️Добавили предупреждение на создание повисших указателей на локальные переменные. Сама по себе эта операция не является небезопасной, но на таком указателе определено очень мало осмысленных операций. Пример (из PR):
fn f() -> *const u8 {
let x = 0;
&x // returns a dangling ptr to `x`
}⬇️
warning: a dangling pointer will be produced because the local variable x will be dropped
--> src/lib.rs:3:5
|
1 | fn f() -> *const u8 {
| --------- return type of the function is *const u8
2 | let x = 0;
| - x is part the function and will be dropped at the end of the function
3 | &x // returns a dangling ptr to x
| ^^
|
= note: pointers do not have a lifetime; after returning, the u8 will be deallocated at the end of the function because nothing is referencing it as far as the type system is concerned
= note: #[warn(dangling_pointers_from_locals)] on by default
Анализ достаточно умный, чтобы понимать поток управления и цепочки кастов (примеры в тестах в PR).
▪️Компилятор теперь не выдаёт предупреждение о мёртвом коде на
as-касты из выражений типа never. Да, это действительно мёртвый код, но в некоторых ситуациях подобные касты были нужны (главным образом для todo!() в функциях, возвращающих impl Trait).▪️Уровень поддержки для Windows с нативным ABI на ARM (aarch64-pc-windows-msvc) подняли до Tier 1.
▪️Парочка дополнений насчёт потоков: попытка установки минимального размера стека теперь возвращает ошибку при невозможности это сделать вместо паники. Сообщение о панике теперь включает в себя ID потока, в котором её начали.
▪️Задокументировали разумное предположение о Clone и PartialEq/Eq, на которое опирается стандартная библиотека (главным образом коллекции): копия значения, полученная путём вызова .clone(), должна быть равна исходному значению (при условии, что исходное значение равно самому себе).
▪️Ещё одно дополнение к документации (и соответствующий фикс): функции
{min, max, minmax}_by из std::cmp передают сравниваемые значения в функцию-компаратор в том же порядке, в котором они передаются в саму функцию.▪️Стабилизировали громадное количество функций:
🔸 Path::file_prefix для извлечения порции имени файла до расширения. В отличие от существующей Path::file_stem, отрезает все расширения, а не только последнее:
assert_eq!("foo", Path::new("foo.tar.gz").file_prefix().unwrap());
assert_eq!("foo.tar", Path::new("foo.tar.gz").file_stem().unwrap());🔸Несколько методов для модификации
AtomicPtr.🔸
strict_*-методы на примитивных числах, которые паникуют при переполнении вне зависимости от профиля компиляции, включая методы для операций с различной знаковостью.🔸uN::checked_signed_diff для вычисления знаковой разницы беззнаковых чисел.
🔸array::repeat (в отличие от встроенного синтаксиса, работает не только с
Copy-типами).🔸Duration::from_mins и Duration::from_hours.
🔸BTreeMap::extract_if и BTreeSet::extract_if для ленивого вытаскивания из коллекций значений, удовлетворяющих предикату.
🔸str::ceil_char_boundary и str::floor_char_boundary.
▪️
const TypeId::of 🎉🎉🎉▪️У cargo теперь есть настройка для указывания того, куда складывать промежуточные артефакты компиляции.
▪️Для ключа
--target в cargo теперь можно указывать значение host-tuple, которое будет заменено на target tuple для платформы, на которой проходит компиляция.blog.rust-lang.org
Announcing Rust 1.91.0 | Rust Blog
Empowering everyone to build reliable and efficient software.
👍5❤4🎉3
#video о странной истории российского флага и о том, как он связан с другими
youtube.com/watch?v=soZMyjETE-8
youtube.com/watch?v=soZMyjETE-8
YouTube
It's Dutch, Actually.*
The Russian Naval Jack has a puzzling similarity to the American Confederacy flag. Coincidence?
PATREON
https://www.patreon.com/tapakapa
MERCH
https://teespring.com/stores/tapakapas-little-merch-store
REDDIT
https://www.reddit.com/r/tapakapa/
Sources…
PATREON
https://www.patreon.com/tapakapa
MERCH
https://teespring.com/stores/tapakapas-little-merch-store
https://www.reddit.com/r/tapakapa/
Sources…
🌚6😁3🤔2❤1💩1👌1
#game #article
Несправедливо забыли Райдена из Metal gear rising: revengeance.
dtf.ru/games/4106323-top-10-samyh-muzhestvennyh-yagodic-v-igrah
Несправедливо забыли Райдена из Metal gear rising: revengeance.
dtf.ru/games/4106323-top-10-samyh-muzhestvennyh-yagodic-v-igrah
DTF
Топ-10 самых мужественных, брутальных и упругих ягодиц в играх — лонг, написанный человеком — Игры на DTF
Топ самых мужественных ягодиц в играх, Питер Паркер, Солид Снейк, Веном, Крис Редфилд, Данте, Зангиев, Найтвинг и другие персонажи
❤1🔥1💯1
#suckassstory? В любом случае, это ревертнули (а жаль).
gitlab.com/fdroid/fdroiddata/-/merge_requests/27861
gitlab.com/fdroid/fdroiddata/-/merge_requests/27861
GitLab
Mark Bible apps as NSFW (!27861) · Merge requests · F-Droid / Data · GitLab
For app update please choose the App update template. For App inclusion please choose the App inclusion template. Thanks for your contribution!
🔥3🤡2
Блог*
Как вы относитесь к NSFW-контенту?
Как вы относитесь к твинкам?
Anonymous Poll
28%
Положительно
16%
Нейтрально
4%
Отрицательно
10%
Непосредственно
41%
Кто такие твинки?
🤣8🤮3💩1
Блог*
#music https://christopherlarkin.bandcamp.com/track/hornet
YouTube
Hornet Metal
'Into the Abyss' is out NOW on all streaming services!
⮘ Spotify ⮚
https://open.spotify.com/album/0SGUhw2ZXOZHjU4DFAFqMf?si=MxBDHP1BRfe8xNJs8Jx7Jg
⮘ Apple Music ⮚
https://music.apple.com/us/album/into-the-abyss-hollow-knight-a-metal-reimagining/1817624172…
⮘ Spotify ⮚
https://open.spotify.com/album/0SGUhw2ZXOZHjU4DFAFqMf?si=MxBDHP1BRfe8xNJs8Jx7Jg
⮘ Apple Music ⮚
https://music.apple.com/us/album/into-the-abyss-hollow-knight-a-metal-reimagining/1817624172…
👍1🤔1
