Блог*
Photo
Играть в Baba is you — довольно странный опыт. Ты как будто бы постоянно хакаешь игру. А в экстра-уровнях (помеченных точками в различных количествах вместо чисел) ты ещё и используешь второстепенные отличия и способности блоков, которые вроде как не важны для решения.
🍌2
Автор канала не умеет считать и решил, что ему нужно в ближайшее время делать регистрацию либо visa run, хотя от прописанных 180 дней прошли только около половины.
Forwarded from Северное техно
В десятые мы были в шаге от отмены для граждан РФ виз в Европу. Сейчас мы тоже в шаге от отмены для граждан РФ виз в Европу, НО ЕСТЬ НЮАНС.
😢16😁11🤔1
Удивительно, как много людей пишут скрипты на sh/bash — языках, которые вставляют палки в колёса везде, где только можно, и в которых самый прямолинейный способ что-то сделать всегда неправильный
👍16👎3🤔1🤡1
Forwarded from Код, коты и карандаш
Yuriosity> А представьте, назвать сына Лжедмитрием
Oleg K> Двоих
Oleg K> Двоих
😁12
Фразу "я бы вдул" по отношению к женщине допустимо применять, только если женщина — надувная
😢40😁10🤡6❤2👍2🤔2
Блог*
Фразу "я бы вдул" по отношению к женщине допустимо применять, только если женщина — надувная
Все реакции на посте понимаю, кроме этой
😢40🍌2
Короче
Я нашёл комикс, который начинается, как slice of life с тупыми гэгами, но постепенно перерастает в удивительно трогательную историю дружбы (при этом, что удивительно, не перерастающей в романтические отношения) с крайне живыми и убедительными персонажами (которые ещё и растут психологически по мере развития истории!).
Я вот только что дочитал последний, пятисотый эпизод, и я тронут, у меня глаза на влажном месте.
Почитать можно тут (в приложении удобнее):
webtoons.com/en/slice-of-life/waffles-and-pancakes/list?title_no=1310
Единственное: это совсем не детский комикс. Нет, какой-то особой жести там, но ругательств и некоторой небольшой дичи там хватает. И не говорите, что я вас не предупреждал.
Я нашёл комикс, который начинается, как slice of life с тупыми гэгами, но постепенно перерастает в удивительно трогательную историю дружбы (при этом, что удивительно, не перерастающей в романтические отношения) с крайне живыми и убедительными персонажами (которые ещё и растут психологически по мере развития истории!).
Я вот только что дочитал последний, пятисотый эпизод, и я тронут, у меня глаза на влажном месте.
Почитать можно тут (в приложении удобнее):
webtoons.com/en/slice-of-life/waffles-and-pancakes/list?title_no=1310
Единственное: это совсем не детский комикс. Нет, какой-то особой жести там, но ругательств и некоторой небольшой дичи там хватает. И не говорите, что я вас не предупреждал.
www.webtoons.com
Waffles & Pancakes
Two best friends attempt to answer life's greatest mysteries, such as "what if our butts had nipples?" This is a story of fart jokes and friendship. Currently updates on Tue, Thur, Sat. May not be suitable for younger audiences due to strong language and…
🤮4👍2🫡1
Внемлите мне, люди, ибо есть единственная — наиважнейшая! — причина обновиться до Rust 1.71.0:
стабилизация
стабилизация
CStr::is_empty()
drops mic👍7🔥2
Ну а теперь серьёзно.
#prog #rust #rustreleasenotes
Вышла версия Rust 1.71.0! Как обычно, тут только избранные куски, а все изменения в ченджлоге.
▪️Новый вариант опции атрибута
▪️ Уже имеющиеся варианты ABI обзавелись
Это изменение сделает более удобным разработку проектов, смешивающих код на Rust с кодом на других языках. Не
▪️Ещё одно изменение, связанное с паниками, но уже исключительно в рамках Rust. Ранее паника во время паники приводила к немедленному аборту процесса. Теперь это ограничение несколько ослабили: паника во время паники не приводит к аборту при условии, что она перехватывается на границе реализации
Но в одном аспекте требования к паникам, наоборот, сделали строже: паника внутри хука на панику сразу ведёт к аборту. В реальном коде это приводило к дедлоку из-за того, что рантайм держал блокировку на глобальный лок для бектрейса.
▪️Стало возможным включать в бинарники скрипты для визуализации значений пользовательских типов в отладчиках. Без этих скриптов в отладчике значение, скажем,
▪️Обновлена версия MUSL, используемая для *-linux-musl. Главным образом это означает, что 64-битная версия time_t, позволяющая избежать проблемы 2038 года, используется безусловно для всех систем, включая 32-битные.
▪️Макрос
* в этих случаях в результирующем коде теперь меньше виртуальных вызовов
* как следствие, макросы вроде log::info! теперь не вредят производительности из-за пробрасывания аргументов через
* core::fmt::Arguments::as_str() теперь чаще возвращает
* в бинаре теперь может сильно распухнуть секция
▪️Несколько изменений докатились до стейбла: улучшения расчёта раскладки типов, фикс расчёта приватности для Self-конструктора у кортежных структур, документация для const-инициализации thread local статиков, стабилизация BuildHasher::hash_one.
#prog #rust #rustreleasenotes
Вышла версия Rust 1.71.0! Как обычно, тут только избранные куски, а все изменения в ченджлоге.
▪️Новый вариант опции атрибута
#[link] — конкретно kind="raw-dylib" — позволяет на Windows линковаться с динамическими библиотеками, не требуя их наличия во время компиляции. Кросс-компиляция стала немного проще. А, и ещё атрибуты для импорта и экспорта символом из/в DLL, но я недостаточно в этом разбираюсь, чтобы понять разницу.▪️ Уже имеющиеся варианты ABI обзавелись
"*-unwind" вариантами (полный список). Как нетрудно догадаться, паники и исключения, вызывающую раскрутку стека, могут проходить границу между языками. В частности, это означает, что исключения из C++ могут проходить через фреймы Rust-кода, а растовая паника может проходить через фреймы C++-кода. Ловить раскрутку стека, впрочем, можно лишь в фреймах того языка, в котором она была начата.Это изменение сделает более удобным разработку проектов, смешивающих код на Rust с кодом на других языках. Не
*-unwind варианты ABI, как и раньше, абортят процесс, если раскрутка стека пытается пройти по FFI.▪️Ещё одно изменение, связанное с паниками, но уже исключительно в рамках Rust. Ранее паника во время паники приводила к немедленному аборту процесса. Теперь это ограничение несколько ослабили: паника во время паники не приводит к аборту при условии, что она перехватывается на границе реализации
drop. Иными словами, паники внутри деструкторов — которые сами могут быть вызваны из-за паники — могут быть перехвачены и корректно обработаны, не приводя к немедленному прекращению работы.Но в одном аспекте требования к паникам, наоборот, сделали строже: паника внутри хука на панику сразу ведёт к аборту. В реальном коде это приводило к дедлоку из-за того, что рантайм держал блокировку на глобальный лок для бектрейса.
▪️Стало возможным включать в бинарники скрипты для визуализации значений пользовательских типов в отладчиках. Без этих скриптов в отладчике значение, скажем,
Vec<i32> выглядело бы не как последовательность чисел, а как набор из адреса, длины и ёмкости — что, очевидно, не слишком-то полезно. Такими скриптами для визуализации укомплектовывается std. Новый механизм позволяет использовать этот же механизм и пользователям Rust.▪️Обновлена версия MUSL, используемая для *-linux-musl. Главным образом это означает, что 64-битная версия time_t, позволяющая избежать проблемы 2038 года, используется безусловно для всех систем, включая 32-битные.
▪️Макрос
format_args! (на который опираются куча макросов как в std, так и вне её) теперь инлайнит форматируемые значения в форматные строки, если они являются литералами или вложенными format_args!. Если наглядно, то следующие пары вызовов теперь эквивалентны даже не на уровне бинарного кода, а ещё на уровне HIR:println!("Hello, {}!", "World");
println!("Hello, World!");
println!("[info] {}", format_args!("error"));
println!("[info] error");
println!("[{}] {}", status, format_args!("error: {}", msg));
println!("[{}] error: {}", status, msg);
println!("{} + {} = {}", 1, 2, 1 + 2);
println!("1 + 2 = {}", 1 + 2);
Из того, на что на это влияет:* в этих случаях в результирующем коде теперь меньше виртуальных вызовов
fmt-методов;* как следствие, макросы вроде log::info! теперь не вредят производительности из-за пробрасывания аргументов через
format_args!;* core::fmt::Arguments::as_str() теперь чаще возвращает
Some(_);* в бинаре теперь может сильно распухнуть секция
.text из-за большего количества уникальных строк — особенно, если в коде активно используется макрос dbg!. Не то, чтобы это было большой проблемой, но может выйти боком, если проект компилируется, скажем, под embedded, где каждый байт на счету.▪️Несколько изменений докатились до стейбла: улучшения расчёта раскладки типов, фикс расчёта приватности для Self-конструктора у кортежных структур, документация для const-инициализации thread local статиков, стабилизация BuildHasher::hash_one.
blog.rust-lang.org
Announcing Rust 1.71.0 | Rust Blog
Empowering everyone to build reliable and efficient software.
👍8🎉2❤1👎1