1.83K subscribers
3.3K photos
132 videos
15 files
3.58K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
▪️Кстати, насчёт паник: вывод паник (по крайней мере, с panic hook по умолчанию) теперь предотвращает перемешивание вывода, если паникуют несколько потоков одновременно.

▪️Ещё касательно паник: PanicInfo разделили на два типа. Первый, в core, используется как аргумент в #[panic_handler] (вне #![no_std] не актуально), а второй, в std (переименованный в PanicHookInfo) как аргумент для хука паники. Как пишет Мара Бос:

PanicInfo
is used in two ways:

As argument to the
#[panic_handler] in no_std context.
As argument to the panic hook in std context.

In situation 1, the
PanicInfo always has a message (of type fmt::Arguments), but never a payload (of type &dyn Any).

In situation 2, the
PanicInfo always has a payload (which is often a String), but not always a message.

...

I don't see any good reasons for these to be the same type, other than historical reasons.

Как следствие, std::panic::PanicInfo теперь является алиасом (с #[deprecated]) на PanicHookInfo.

▪️И ещё насчёт паник: PanicInfo (который в core) обзавёлся новым методом message, который возвращает новый тип PanicMessage, реализующий Display. Да, сейчас это тонкая обёртка над fmt::Arguments.

▪️Стабилизировали новые API, в том числе:
🔸 core::error. Да, само по себе это не новое API, но трейт Error теперь можно использовать в #![no_std]
🔸hint::assert_unchecked — вызывает UB, если аргумент является false. Может быть полезно для того, чтобы сообщать оптимизатору инварианты, которые компилятор сам не выводит.
🔸fs::exists — фактически алиас для Path::try_exists, не переводит ошибки в false.
🔸AtomicBool::fetch_not
🔸Duration::abs_diff

В const-контексте теперь можно вызывать:
🔸char::from_u32_unchecked (и метод, и функцию в core::char)
🔸CStr::{count_bytes, from_ptr}
👍3
#prog

Frangipanni — program to convert lines of text into beautiful tree structures.

Пример. Вход:

/etc/bluetooth/rfcomm.conf.dpkg-remove
/etc/bluetooth/serial.conf.dpkg-remove
/etc/bluetooth/input.conf
/etc/bluetooth/audio.conf.dpkg-remove
/etc/bluetooth/network.conf
/etc/bluetooth/main.conf
/etc/fish
/etc/fish/completions
/etc/fish/completions/task.fish

Вывод:

etc
bluetooth
rfcomm.conf.dpkg-remove
serial.conf.dpkg-remove
input.conf
audio.conf.dpkg-remove
network.conf
main.conf
fish/completions/task.fish

Можно также выводить в JSON и вручную задавать разделители.

Попенять можно разве что за длинные ключи с одиночными дефисами вместо удвоенных (т. е. ключи как в find, например).
🥰6👍41🔥1😱1🤡1
https://cpu.land — ресурс, рассказывающий о том, как именно происходит запуск программ в компьютере. К сожалению, практически всё, что касается OS — Linux-специфично. Но даже так всё равно познавательно
🔥15👍4👎1
Ну, #meme про людей в IT
Forwarded from Trap ~ езные мемы😇 (ᴀᴍᴋஇ)
🌚3🙏1
🌝

https://mailman.nginx.org/pipermail/nginx-ru/2024-September/JO5YGKLOQA6RZ43PIDOEVFOHV4ON6RCM.html

До этого NGINX жил тут
https://trac.nginx.org/

ЗЫ Какие же тёплые ностальгические чувства вызывает Trac. В своё время был отдушиной прям.
👍7👎1
А зачем питонячьи тулзы типа пипа и конды делают намеренно неудобными? Нормально же можно было pip install делать системно, нахера было прекращать? Предыдущий опыт работы с кондой отправил конду на свалку. Понадобилось потрогать её снова — глумится, блядь ехидная
😁10👍81👎1🤡1
Блог* pinned «https://cpu.land — ресурс, рассказывающий о том, как именно происходит запуск программ в компьютере. К сожалению, практически всё, что касается OS — Linux-специфично. Но даже так всё равно познавательно»
Forwarded from Neural Machine
Зря твой мозг не боится Интернета.
👍7😱6
Forwarded from eternal classic
😭16👍3🌚2
Любимый напиток?
Anonymous Poll
35%
Эль
29%
Эм
36%
Эс
🤡9🍌3
#prog #rust #article

Is this trait sealed, or not sealed — that is the question

В Rust есть идиома под названием sealed trait. Этим называют трейт, который обычно предназначен для использования в публичном API, но при этом имплы которого не могут быть написаны вне крейта, в котором он определён. В данной статье рассказывается о том, как новая версия cargo-semver-checks 0.35 понимает, что трейт является запечатанным. Ответ на этот вопрос не самый прямолинейный и содержит граничные случаи внутри граничных случаев внутри граничных случаев.
#math #video

How good is advantage in D&D?

Видео, которое со всех сторон рассматривает статистические эффекты преимущества и помехи на броски в Dungeons&Dragons — в частности, пытается прикинуть, каким модификатором их можно заменить. Если вам непонятны термины выше — спокойно, у видео есть вводная, которая это всё объясняет.
🔥3
9🙏4😭1