#prog #rust #article
Rust Debugging Progress Report May 2026
О том, как (постепенно) улучшается ситуация с использованием LLDB для Rust
Rust Debugging Progress Report May 2026
О том, как (постепенно) улучшается ситуация с использованием LLDB для Rust
👍5❤1
#prog #rust #rustasync #article
Async Rust never left the MVP state
Заголовок кликбейтный, да. Рассказывается о недостатках текущей кодогенерации машин состояний для async-функций и async-блоков, причём недостатках вполне устранимых
Async Rust never left the MVP state
Заголовок кликбейтный, да. Рассказывается о недостатках текущей кодогенерации машин состояний для async-функций и async-блоков, причём недостатках вполне устранимых
tweedegolf.nl
Async Rust never left the MVP state — Tweede golf
I've previously explained async bloat and some work-arounds for it, but would much prefer to solve the issue at the root, in the compiler. I've submitted a Project Goal, and am looking for help to fund the effort.
👍5
❤2👍2
Блог*
Photo
#prog #go #article
Go fuzzing was missing half the toolkit. We forked the toolchain to fix it.
Go fuzzing was missing half the toolkit. We forked the toolchain to fix it.
With gosentry, go test -fuzz uses LibAFL by default. It can fuzz structs natively, run grammar-based fuzzing with Nautilus, detect bug classes that it couldn’t detect before, and create a fuzzing campaign coverage report in one command.🔥6
#prog #rust #article
Why I built wrkflw
Why I built wrkflw
If you have spent enough time around CI, you probably know the loop. Change one line in a workflow. Push. Wait for the runner. Watch the job fail for a reason that has nothing to do with the line you changed. Push again. A few rounds later, the real feature is tiny and your git history is mostly you arguing with YAML in public. wrkflw started because I wanted that whole loop to happen on my laptop instead of on GitHub's servers, and preferably without leaving a trail of embarrassing commits behind.
Two years and more edge cases than I expected later, it has turned into a Cargo workspace with sixteen crates. It validates and runs GitHub Actions workflows locally, has a TUI, a proper expression evaluator, four runtime modes, watch mode, secrets, artifacts, cache, reusable workflows, and even a GitLab pipeline parser because apparently I don't know how to leave a side project alone. This post is mostly my attempt to answer the questions people keep asking me: why not just use act, why Rust, and what part was actually hard?
❤18😁1🤔1
#prog #rust #article
The hidden cost of mpsc channels
TL;DR: mpsc-каналы в tokio выделяют память под значения в виде связного списка из массивов фиксированного размера, из-за чего они почти всегда используют больше памяти, чем необходимо для указанной при создании ёмкости. При наличии большого количества каналов небольшой ёмкости это может привести к высокому и при этом не эффективному потреблению памяти.
The hidden cost of mpsc channels
TL;DR: mpsc-каналы в tokio выделяют память под значения в виде связного списка из массивов фиксированного размера, из-за чего они почти всегда используют больше памяти, чем необходимо для указанной при создании ёмкости. При наличии большого количества каналов небольшой ёмкости это может привести к высокому и при этом не эффективному потреблению памяти.
howardjohn's blog
The hidden cost of `mpsc`
Recently I have been spending a lot of time analyzing and optimizing memory usage in our Rust reverse-proxy, agentgateway. One thing that repeatedly came up was a surprisingly large amount of memory allocated to innocent-looking Tokio mpsc channels.
In my…
In my…
🤔3
#prog #abnormalprogramming #article
Jira is Turing-Complete
Конструктивное доказательство через построение регистровой машины Минского — построения с двумя регистрами и двумя типами инструкций.
Jira is Turing-Complete
Конструктивное доказательство через построение регистровой машины Минского — построения с двумя регистрами и двумя типами инструкций.
😁8👌1
Блог*
#prog #article Who killed the network switch? A Hubris Bug Story We found a neat bug in Hubris this week. Like many bugs, it wasn’t a bug when it was originally written — correct code became a bug as other things changed around it. <...> It’s very rare…
#prog #article
Crash recovery in 256 bytes
Конкретно в Hubris. Как ни странно, супервизор является рядовой таской в Hubris, у которой обычно наиболее высокий приоритет.
Crash recovery in 256 bytes
Конкретно в Hubris. Как ни странно, супервизор является рядовой таской в Hubris, у которой обычно наиболее высокий приоритет.
Cliffle
Crash recovery in 256 bytes
The `exhubris` supervisor.
🤔1
#prog #rust #rustlib #article
A faster bump allocator for rust
Новый bump-аллокатор, который на множестве бенчмарков быстрее альтернатив (blink-alloc и bumpalo), часто в 2-3 раза, а в остальных не уступает им. Поддерживает регионы (считай, суб-арены, которые автоматически очищаются на выходе из функции), которые могут быть вложенными.
Из недостатков, которые я заметил: в API есть функции, которые выделяют память под значение, возвращаемое переданной функцией, и они не очищают выделенную память, если функция паникует.
A faster bump allocator for rust
Новый bump-аллокатор, который на множестве бенчмарков быстрее альтернатив (blink-alloc и bumpalo), часто в 2-3 раза, а в остальных не уступает им. Поддерживает регионы (считай, суб-арены, которые автоматически очищаются на выходе из функции), которые могут быть вложенными.
Из недостатков, которые я заметил: в API есть функции, которые выделяют память под значение, возвращаемое переданной функцией, и они не очищают выделенную память, если функция паникует.
owen.cafe
A faster bump allocator for rust
Announcing stumpalo, an extremely fast bump allocator for rust, with chunk reuse and safe scoped stack support.
👍6