#prog
Отдельное изменение в стандартной библиотеке #rust заслуживает отдельного упоминания — не потому, что оно затрагивает многих пользователей, но потому, что изменение может привести к трудно диагностируемым ошибкам. Именно, после этого PR методы
На всякий случай: если вы просто хотите получить уникальную ссылку на содержимое
Отдельное изменение в стандартной библиотеке #rust заслуживает отдельного упоминания — не потому, что оно затрагивает многих пользователей, но потому, что изменение может привести к трудно диагностируемым ошибкам. Именно, после этого PR методы
strong_count
и weak_count
на Arc
и sync::Weak
загружают соответствующие счётчики с порядком Relaxed вместо Acquire. Если вы использовали эти методы в каком-то сложном lockless коде, то вам может понадобиться вставить Acquire memory fence.На всякий случай: если вы просто хотите получить уникальную ссылку на содержимое
Arc
, то вам лучше использовать методы Arc::get_mut и Arc::make_mut. Код видаif Arc::strong_count(&arc_ptr) == 1 {практически никогда не является верным из-за возможных гонок.
let ptr = unsafe { &mut *(Arc::as_ptr(&arc_ptr) as *mut _) };
// ...
}
GitHub
Weaken needlessly restrictive orderings on Arc::*_count by SUPERCILEX · Pull Request #115546 · rust-lang/rust
Follow up to #95183 from this zulip: https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/Why.20does.20Arc.3A.3Astrong_count.20use.20Acquire.20instead.20of.20Relaxed.3F/near/386213850...
👍3
Блог*
#prog #rust Кажется, что такой код должен работать: trait Super {} trait Sub: Super {} fn upcast(x: &dyn Sub) -> &dyn Super { x as &dyn Super } Но нет, он валится с ошибкой. Такой, казалось бы, очевидный функционал был описан в RFC от 2013 (!) года…
#prog #rust
Апкаст трейтов стабилизировали буквально вчера!
Из наиболее насущного вопроса: да, апкаст сырого указателя на
Апкаст трейтов стабилизировали буквально вчера!
Из наиболее насущного вопроса: да, апкаст сырого указателя на
dyn Trait
с невалидной vtable является UB.GitHub
Stabilize RFC3324 dyn upcasting coercion by Urgau · Pull Request #118133 · rust-lang/rust
This PR stabilize the trait_upcasting feature, aka rust-lang/rfcs#3324.
The FCP was completed here: #65991 (comment).
And also remove the deref_into_dyn_supertrait lint which is now handled by dyn ...
The FCP was completed here: #65991 (comment).
And also remove the deref_into_dyn_supertrait lint which is now handled by dyn ...
❤1👍1
Forwarded from Segment@tion fault
Если ваша работа кажется вам бесполезной, вспомните что кто-то собирает пакеты cargo и rustc для Debian.
👎16👍4🤔3👌1
Блог*
#video Anime Rock Paper Scissors (thanks @ffarnn) А как посмотрите — предлагаю посмотреть видео о том, как это создавалось.
#video
ANIME ROCK, PAPER, SCISSORS 2
Впечатляет, отчасти из-за увеличенного хронометража, отчасти из-за того, что удалосьсоздать убедительные молодые версии персонажей, сыгранных теми же взрослыми актёрами .
Но в некоторых аспектах это скорее шаг назад:именно, анимация рта серьёзно пострадала. Во многих сценах рот говорящего человека не шевелится, а в парочке сцен с крупным планом AI сделал персонажу два ряда зубов .
Ну и, конечно, видео о создании.
ANIME ROCK, PAPER, SCISSORS 2
Впечатляет, отчасти из-за увеличенного хронометража, отчасти из-за того, что удалось
Но в некоторых аспектах это скорее шаг назад:
Ну и, конечно, видео о создании.
YouTube
ANIME ROCK, PAPER, SCISSORS 2
With Your Support we can BRING EPISODE 3 TO LIFE! Join Us ► https://corridordigital.com/
Limited Edition Merch! https://corridordigital.store/
With the Kingdom now firmly in his grasp, King Philip faces the return of his twin brother Jules and a distant Barbarian…
Limited Edition Merch! https://corridordigital.store/
With the Kingdom now firmly in his grasp, King Philip faces the return of his twin brother Jules and a distant Barbarian…
Forwarded from Бэкдор
This media is not supported in your browser
VIEW IN TELEGRAM
Максимальный киберпанк: на базе нейронки Runway запустили телевидение. Это бесконечный стрим рандомных нейророликов и трейлеров, будто из параллельных вселенных.
Если смотрели «Рик и Морти» и помните Межвселенское ТВ — это оно. Залипать тут.
@whackdoor
Если смотрели «Рик и Морти» и помните Межвселенское ТВ — это оно. Залипать тут.
@whackdoor
🔥6
#prog #rust #rustlib
cargo-debstatus — инструмент для оценки того, насколько проект пригоден к опакечиванию в Debian.
cargo-deb — инструмент для собственно проведения этой операции.
cargo-dist — инструмент для автоматизации публикации новых релизов, с возможностью автоматически генерировать скрипты для релиза артефактов для CI:
For instance, enabling GitHub CI with
🔹Plan
🔸Waits for you to push a git tag for a new version (v1.0.0, my-app-v1.0.0, my-app/1.0.0, ...)
🔸Selects what apps in your workspace to announce new releases for based on that tag
🔸Generates a machine-readable manifest with changelogs and build plans
🔹Build
🔸Spins up machines for each platform you support
🔸Builds your binaries and tarballs
🔸Builds installers for your binaries
🔹Publish:
🔸Uploads to package managers
🔹Host + Announce:
🔸Creates (or edits) a GitHub Release
🔸Uploads build artifacts to the Release
🔸Adds relevant release notes from your RELEASES/CHANGELOG
cargo-debstatus — инструмент для оценки того, насколько проект пригоден к опакечиванию в Debian.
cargo-deb — инструмент для собственно проведения этой операции.
cargo-dist — инструмент для автоматизации публикации новых релизов, с возможностью автоматически генерировать скрипты для релиза артефактов для CI:
For instance, enabling GitHub CI with
cargo dist init
will generate release.yml, which implements the full pipeline of plan, build, host, publish, announce:🔹Plan
🔸Waits for you to push a git tag for a new version (v1.0.0, my-app-v1.0.0, my-app/1.0.0, ...)
🔸Selects what apps in your workspace to announce new releases for based on that tag
🔸Generates a machine-readable manifest with changelogs and build plans
🔹Build
🔸Spins up machines for each platform you support
🔸Builds your binaries and tarballs
🔸Builds installers for your binaries
🔹Publish:
🔸Uploads to package managers
🔹Host + Announce:
🔸Creates (or edits) a GitHub Release
🔸Uploads build artifacts to the Release
🔸Adds relevant release notes from your RELEASES/CHANGELOG
Lib.rs
cargo-debstatus — command-line utility in Rust
cargo-tree for debian packaging
👍3🔥1
#prog #rust #serde #article
Faster Rust Serialization
Или несколько советов о том, как делать меньше лишней работы при сериализации с использованием serde.
Faster Rust Serialization
Или несколько советов о том, как делать меньше лишней работы при сериализации с использованием serde.
Mo8It
Faster Rust Serialization
How to speed up serialization in Rust by more than 2x
👍4👎1