blog.yoshuawuyts.com
§ 1IntroductionThe goal of in-place initialization is to enable the construction of types directly into a memory location without any additional moves or copies. When working with big types this can be more efficient and even prevent stack...
Observations/Thoughts
2026-08-19
~7 min read
blog.yoshuawuyts.com
blog.yoshuawuyts.com Topics: Async Rust, effects, WASI, keyword generics, error handling Why RustGrep includes it: Rust lang team. async-std co-creator. Categories: core, async, wasm
Blog
2026-07-27
~1 min read
blog.yoshuawuyts.com
§ 1IntroductionIn my post on Hoisting Expressions I discussed the move($expr) feature and how it works much like an inverse of the defer feature many languages have. Instead of creating expressions which run after the scope ends, move($expr...
Observations/Thoughts
2026-07-22
~13 min read
blog.yoshuawuyts.com
§ 1IntroductionThere is an RFC open on Rust which proposes what I’m calling hoisting expressions into the language. These are expressions which can be introduced inside of closures-only (for now), and are hoisted by the compiler to run befo...
Observations/Thoughts
2026-07-01
~7 min read
blog.yoshuawuyts.com
what are effects? keywords simple effects effects with generic params effect polymorphism effect algebra effect operators assuming totality conclusion A bad habit of mine is that I’ll write 10.000 or 20.000 words on a topic, and then never...
Observations/Thoughts
2026-03-25
~26 min read
blog.yoshuawuyts.com
Why WebAssembly components— 2026-03-12 Yesterday Making WebAssembly a First-Class Language on the Web was making the rounds on social media, and I saw some people express confusion about this Wasm Component business. Why would the folks wor...
Observations/Thoughts
2026-03-18
~3 min read
blog.yoshuawuyts.com
defining the problem space fallible functions fallible blocks and closures operating on fallibility notes on effect naming motivating reification into an abstract type closing words I believe it must have been about three or four years ago...
Observations/Thoughts
2025-12-24
~11 min read
blog.yoshuawuyts.com
Placing Arguments— 2025-08-13 introduction placing functions closures edition-dependent path resolution Introduction In my last post I introduced placing functions, which are functions that can “return” values without copying them. This is...
Observations/Thoughts
2025-08-20
~6 min read
blog.yoshuawuyts.com
placing functions— 2025-07-08 what are placing functions? a basic desugaring thinking in placing functions prior art in rust q&a what about placing arguments? what about borrows / local lifetime extensions? what about pinning? are annotatio...
Observations/Thoughts
2025-07-16
~25 min read
blog.yoshuawuyts.com
structured concurrency the background task problem the actor pattern how are actors different from globals? conclusion appendix a: actor pattern template Structured concurrency (Tree-)Structured Concurrency is neat because it greatly simpli...
Observations/Thoughts
2025-07-09
~6 min read
blog.yoshuawuyts.com
introduction naively backing afits with manual future impls directly backing afits with manual future impls simple inline poll state machines conclusion acknowledgements Introduction There’s a fun little tidbit that most people don’t seem t...
Rust Walkthroughs
2025-06-04
~7 min read
blog.yoshuawuyts.com
introduction the problem the solution further reading Introduction When working with low-level concurrency (atomics), programming languages are generally quite eager for compilers to reorder operations if it leads to better performance. Inf...
Observations/Thoughts
2025-05-07
~4 min read
blog.yoshuawuyts.com
introduction logical and logical or if let-evaluation ordering closing words Introduction One of the things that stands out to me is how similar match and if..else are semantically, while being diverging a fair bit syntactically. The reason...
Observations/Thoughts
2025-04-30
~10 min read
blog.yoshuawuyts.com
introduction base iterator bounded iterator fused iterator thread-safe iterator dyn-compatible iterator double-ended iterator seeking iterator compile-time iterator lending iterator iterator with a return value iterator with a next argument...
Observations/Thoughts
2025-02-12
~42 min read
blog.yoshuawuyts.com
verbs, nouns, and traits a verb for iteration collecting items async conclusion At the end of my last post I mentioned that one of the main issues with the IntoIterator trait is that it’s kind of a pain to write. I wasn’t around when it was...
Observations/Thoughts
2025-01-29
~7 min read
blog.yoshuawuyts.com
The gen auto-trait problem— 2025-01-13 leaking auto-traits from gen bodies preventing the leakage what about other effects and auto-traits? conclusion One of the open questions surrounding the unstable gen {} feature is whether it should re...
Observations/Thoughts
2025-01-15
~5 min read
blog.yoshuawuyts.com
The lovely folks working on security over at Google have recently been writing about "temporal (memory) safety" and "spatial (memory) safety". When I first saw these terms it took me a minute to figure out what they meant, as searching for...
Observations/Thoughts
2024-12-18
~1 min read
blog.yoshuawuyts.com
why pin is part of method signatures implications conclusion I've been wondering for a little while why the Future::poll methods takes self: Pin<&mut Self> in its signature. I assumed there must have been a good reason, but when I asked my...
Observations/Thoughts
2024-10-16
~6 min read
blog.yoshuawuyts.com
Archived: primary link replaced with an archive on 2026-09-12T11:35:11.099Z (UTC; replacement date, not snapshot date)
not all self-referential types are !move the 'self lifetime is insufficient automatic referential stability raw pointer operations and automatic referential stability relocate should probably take &own self motivating example, reworked agai...
Observations/Thoughts
2024-07-10
~12 min read
blog.yoshuawuyts.com
motivating example self-referential lifetimes constructing types in-place converting into immovable types immovable types motivating example, reworked phased initialization migrating from pin to move making immovable types movable further r...
Observations/Thoughts
2024-07-03
~34 min read