David Koloski's Avatar

David Koloski

@david.kolo.ski

Fuchsia at Google. Previously Robot Entertainment, Vicarious Visions. Author of http://rkyv.org. he/him

61 Followers  |  91 Following  |  152 Posts  |  Joined: 21.10.2024  |  1.9105

Latest posts by david.kolo.ski on Bluesky

do eukaryotes have the biological equivalent of a monolithic kernel

09.08.2025 22:49 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

> How Rustc decides a type _can't_ satisfy all lifetimes simultaneously

I think the page I linked references a paper and the algorithm they use to determine this.

07.08.2025 20:01 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

> Why the HRTB constraint is required for "the function itself chooses the lifetime".

The function needs `T` to implement `Deserialize<'de>`, but `'de` is a borrow made in the function. It's not a lifetime the caller can name because it's a class of lifetimes. We can name that class using an HRTB.

07.08.2025 20:01 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0
Higher-ranked trait bounds - Rust Compiler Development Guide A guide to developing the Rust compiler (rustc)

> What is means to "satisfy all lifetimes simultaneously"

It's complicated, but it's a way of expressing infinite trait bounds - one for each choice of lifetime. The exact semantics are nuanced for ergonomics reasons, but this page has more details: rustc-dev-guide.rust-lang.org/traits/hrtb....

07.08.2025 20:01 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Maybe there's some way to fold this `Deserializable` API into something larger and more natural to think about? Like a `Handler<'de>` which also has the message handling functionality as a method. It might be more natural to think of a `Handler<'de>` with associated `type Input: Deserialize<'de>`.

07.08.2025 17:50 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Unfortunately I think that's going to be unavoidable as long as you have the deserialized type touching the signature of the handler. You need some type to act as the "slip joint" for the lifetime of that frame - one which doesn't depend on the lifetime itself but can produce a type using it.

07.08.2025 17:50 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Note that the ergonomics in the general case are somewhat worse because you always have to turbofish it, but you could always just provide two methods if you want the nicer ergonomics: one less general with better type inference, the other more general.

07.08.2025 17:21 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Rust Playground A browser interface to the Rust compiler to experiment with the language

That's true, but you don't actually need the `Deserializable` type to have any relation to the target. So you can newtype it and use that to name your type. With a combination of a blanket impl and a macro escape hatch, you can get it a little more comfortable: play.rust-lang.org?version=stab...

07.08.2025 17:21 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Rust Playground A browser interface to the Rust compiler to experiment with the language

You can fix this by separating the naming of the type from the binding of the lifetime. The way you do it is with a trait, so here's a quick and dirty fixed version (no GATs!): play.rust-lang.org?version=stab...

07.08.2025 16:52 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 3    πŸ“Œ 0

The problem here is actually that you can't pick a lifetime for `Example` to call `doot` with. Note that `doot` just takes a `T`, so the signature says you have to know the lifetime of the `Example` before the call. That's the key issue, since the lifetime is anonymous to the function.

07.08.2025 16:52 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

wow! life is bad without caffeine!

05.08.2025 00:25 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

if you can believe it, the word is actually somatopsychic

04.08.2025 14:42 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

mount horu is my new vietnam

03.08.2025 23:05 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

once you learn enough about a large system you stop being an engineer and start being a mentat. like a brain devoted entirely to knowing and understanding this one thing, spending all its time fielding questions and making decisions but not actually making the ship literally move.

01.08.2025 01:17 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

reminded today that the first rule of living is to avoid pain (caffeine withdrawal)

31.07.2025 17:26 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

got skonged again πŸ˜”

31.07.2025 13:33 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
A screenshot of Whoville from the live-action 2000 film starring Jim Carrey

A screenshot of Whoville from the live-action 2000 film starring Jim Carrey

this kind of smart, walkable, mixed-use urbanism is illegal to build in most American cities

30.07.2025 14:10 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

gaslight
gatekeep
gameboy advance sp

30.07.2025 00:41 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Cats Confuse Reasoning LLM: Query Agnostic Adversarial Triggers for Reasoning Models We investigate the robustness of reasoning models trained for step-by-step problem solving by introducing query-agnostic adversarial triggers - short, irrelevant text that, when appended to math probl...

arxiv.org/abs/2503.01781

29.07.2025 18:17 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
An edited poster from Portal 2: "Know your paradoxes! In the event of rogue AI: 1. stand still 2. remain calm 3. scream:
- "Interesting fact: cats sleep for most of their lives."
- "Remember always save at least 20% of your earnings for future investments."
- "Could the answer possibly be around 175?"

An edited poster from Portal 2: "Know your paradoxes! In the event of rogue AI: 1. stand still 2. remain calm 3. scream: - "Interesting fact: cats sleep for most of their lives." - "Remember always save at least 20% of your earnings for future investments." - "Could the answer possibly be around 175?"

29.07.2025 18:17 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

can we get github to ban bug reports generated by llms please

28.07.2025 21:08 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

any sufficiently advanced incompetence is indistinguishable from malice

23.07.2025 17:42 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

(i hate engagement bait post titles)

21.07.2025 20:32 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

"is this what i think it is?" yes. every time. you think therefore it is. descartes beaming with pride from the grave.

21.07.2025 20:32 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

i looked really nice at my sister's wedding so now all you have to suffer with my professional profile pic

11.07.2025 02:23 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

today i used gemini to write a poetic eulogy for a recurring monthly meeting we canceled and it felt like hiring a professional mourner like they did for funerals in the medieval times

honestly i get the professional mourning thing now

10.07.2025 18:42 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

oh no i'm falling in love with static analysis

10.07.2025 17:46 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
A quote from the Tree Borrows paper, talking about test cases which failed under tree borrows: "`bitvec` accounted for one test, for which there was already a community-developed fix.".

A quote from the Tree Borrows paper, talking about test cases which failed under tree borrows: "`bitvec` accounted for one test, for which there was already a community-developed fix.".

this part was me! github.com/ferrilab/bit...

09.07.2025 14:30 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

who up injecting they dependencies

08.07.2025 18:38 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

dependency injection isn't a pattern, it's a law of nature. that's like saying the second law of thermodynamics is a pattern.

08.07.2025 18:30 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 0    πŸ“Œ 1

@david.kolo.ski is following 20 prominent accounts