#prog #article
Why SSA?
Содержит кусочки теории графов.
Why SSA?
If you’ve read anything about compilers in the last two decades or so, you have almost certainly heard of SSA compilers, a popular architecture featured in many optimizing compilers<...>
SSA is actually very simple once you forget everything you think your programs are actually doing. We will develop the concept of SSA form, a simple SSA IR, prove facts about it, and design some optimizations on it.
Содержит кусочки теории графов.
😢19👍4
#video
Вы когда-нибудь видели, как зевает лягушка?
youtu.be/iNU5UmIsw38
Вы когда-нибудь видели, как зевает лягушка?
youtu.be/iNU5UmIsw38
these frogs are really unique because they aren’t like frogs in many ways. For one they can’t swim and will drown if you put them in deep water. Second, they don’t have tadpole babies, but instead hatch mini baby frogs. And third they cannot hop, but they crawl fast if they wanted to.
YouTube
Good Morning, Potato Fairy!
Do you know Common Rain Frog?
https://en.wikipedia.org/wiki/Breviceps_adspersus
Music:Le Coquin
Song by Bob Hart
https://artlist.io/song/97319/le-coquin
https://en.wikipedia.org/wiki/Breviceps_adspersus
Music:Le Coquin
Song by Bob Hart
https://artlist.io/song/97319/le-coquin
😢12🥰8❤1
Forwarded from Техножрица 👩💻👩🏫👩🔧
Сижу себе спокойно, пишу ревью на препринты, поданные на ICLR 2026... как вдруг один из них внезапно приоткрывает предо мною настоящую бездну в виде блок-схемы на рис. 1 (в статье это тоже Fig.1).
Как вам такой пайплайн, друзья? Рекомендую вглядеться в картинку повнимательнее, особенно в правую её часть. Через какое-то время вглядывания вам начнет казаться, что картинка тоже в вас вглядывается - механическими глазами диффузионного генератора. #генерация
Как вам такой пайплайн, друзья? Рекомендую вглядеться в картинку повнимательнее, особенно в правую её часть. Через какое-то время вглядывания вам начнет казаться, что картинка тоже в вас вглядывается - механическими глазами диффузионного генератора. #генерация
😢18😁10🍌6🤯4🤩1
#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.
😢16👍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…
😢14🌚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
Топ самых мужественных ягодиц в играх, Питер Паркер, Солид Снейк, Веном, Крис Редфилд, Данте, Зангиев, Найтвинг и другие персонажи
😢15❤2🔥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!
😢13🔥4🤡4