Это, конечно, странно, что у языка с таким сильным фокусом на эксклюзивном владении в сообществе так много людей с социалистическими политическими взглядами
😁21🌚7
Forwarded from Технологический Болт Генона
Isovalent сделали иллюстрированную книгу для детей по eBPF
Но мало того, что они это книгой оформили, так они её ещё озвучили и сделали видео
https://www.youtube.com/watch?v=PqNs89tXxE4
Ссылка на книгу (в комменты продублирую PDF)
https://ebpf.io/books/buzzing-across-space-illustrated-childrens-guide-to-ebpf.pdf
В 2024 году едем в дурку прям из детского сада
Buzzing Across Space: The Illustrated Children’s Guide to eBPF
Но мало того, что они это книгой оформили, так они её ещё озвучили и сделали видео
https://www.youtube.com/watch?v=PqNs89tXxE4
Ссылка на книгу (в комменты продублирую PDF)
https://ebpf.io/books/buzzing-across-space-illustrated-childrens-guide-to-ebpf.pdf
В 2024 году едем в дурку прям из детского сада
😁10🤡4👍1
#prog #rust #rustlib
macro_rules_attribute — процедурные макросы для применения
Также либа даёт возможность создавать алиасы для пачек дерайвов и cfg-атрибутов:
macro_rules_attribute — процедурные макросы для применения
macro_rules!
макросов без сдвига вправо и с возможностью нормально их комбинировать для derive-like макросов, и всё без зависимостей на syn, quote и proc-macro2.#[macro_use]
extern crate macro_rules_attribute;
macro_rules! foo {
// …
}
macro_rules! Bar {
// …
}
#[apply(foo)]
#[derive(Debug, Bar!)]
struct Struct {
some_field: SomeType,
}
Также либа даёт возможность создавать алиасы для пачек дерайвов и cfg-атрибутов:
#[macro_use]
extern crate macro_rules_attribute;
derive_alias! {
#[derive(Ord!)] = #[derive(PartialEq, Eq, PartialOrd, Ord)];
}
#[derive(Debug, Clone, Copy, Ord!)]
struct Foo {
// …
}
attribute_alias! {
#[apply(complex_cfg!)] = #[cfg(
any(
any(
foo,
feature = "bar",
),
all(
target_os = "fenestrations",
not(target_arch = "Pear"),
),
),
)];
}
#[apply(complex_cfg!)]
mod some_item { /* … */ }
docs.rs
macro_rules_attribute - Rust
`::macro_rules_attribute`
👍12🤬4❤2🔥1🤮1
🤡30😁5💩1
#prog #rust #article
avatar.png
Или как сделать "аватарку", которая будет показывать IP-адрес того, кто её просматривает.
avatar.png
Или как сделать "аватарку", которая будет показывать IP-адрес того, кто её просматривает.
tuckersiemens.com
avatar.png
Dynamically generating PNGs with your IP address in them.
Блог*
Допустим, я организую в Москве встречу с подписчиками
Допустим, я организую в Ереване встречу с подписчиками
Anonymous Poll
4%
Точно буду
5%
Скорее всего, буду
5%
Скорее всего, не буду
87%
Точно не буду
😁12🤮4🖕4🍌2
#prog #rust #article
Faster Rust Toolchains for Android
TL;DR: табличка сверху.
Статья о версиях компилятора Rust, используемые в Google для сборки rust-компонентов Android. Ввиду масштабов количества билдов Android, даже относительно небольшие ускорения компилятора выливаются в конкретно сэкономленное время:
For every 50k Android builds per day run in our CI infrastructure we save ~10K hours of serial execution.
Monolithic обозначает использование
Как видно, наибольшую маргинальную выгоду принесла PGO, однако автор статьи предостерегает, что тулчейн заточен под нужды Android и на других кодовых базах изменения в производительности могут отличаться. Вдобавок, это результат от суммы четырёх разных профилей.
Faster Rust Toolchains for Android
TL;DR: табличка сверху.
Статья о версиях компилятора Rust, используемые в Google для сборки rust-компонентов Android. Ввиду масштабов количества билдов Android, даже относительно небольшие ускорения компилятора выливаются в конкретно сэкономленное время:
For every 50k Android builds per day run in our CI infrastructure we save ~10K hours of serial execution.
Monolithic обозначает использование
-C codegen-units=1
.Как видно, наибольшую маргинальную выгоду принесла PGO, однако автор статьи предостерегает, что тулчейн заточен под нужды Android и на других кодовых базах изменения в производительности могут отличаться. Вдобавок, это результат от суммы четырёх разных профилей.
👍7