Sign in

Dion Dokter

@diondokter.nl
700 followers 107 following 1.1K posts

Embedded tech lead at Tweede golf. I love programming in Rust. Also at: @diondokter@fosstodon.org Check out device-driver.com Netherlands

PostsRepliesMedia
Dion Dokter @diondokter.nl · 8h
Got renames working in the LSP! Had to do a lot of internal refactoring to make this work well without hacky-ness. The internal MIR is now a couple of flat vecs instead of a tree. That makes the core compiler ~5-10% faster too as a bonus.
052
Dion Dokter @diondokter.nl · 12h
Huh, no I don't think I've heard of that. That links seems like an interesting read!
110
Dion Dokter @diondokter.nl · 13h
Ah... Yes that's hard
010
Dion Dokter @diondokter.nl · 14h
Yep! It was a 'not-quite-eq' key that carried the span of an AST node. The span was ignored for equality (and hash). I think that's legal, but I also now see it's a bit of a footgun
210
Dion Dokter @diondokter.nl · 14h
This got changed to a fully 'eq' key with the span in as the hashmap value. But now the insert would write a new span, which means I didn't have the original span anymore. This is all quite logical in the end, but still surprising in the moment.
100
Dion Dokter @diondokter.nl · 14h
Oh, I don't read this as antagonistic! In my case, the key was 'not-quite-eq' in that it ignored a span. This was for a duplicates check and if a duplicate was found, I wanted the original span to emit a diagnostic with.
110
Dion Dokter @diondokter.nl · 18h
Well, Rust doesn't call the values of a hashset keys: doc.rust-lang.org/std/collecti...
doc.rust-lang.org
HashSet in std::collections - Rust
A hash set implemented as a `HashMap` where the value is `()`.
310
Dion Dokter @diondokter.nl · 18h
Ah, annoying difference between HashSet and HashMap in #rustlang: With map, an insert updates the old value. With set, an insert keeps the old value. Good to look out for if you're changing between them!
1161
Dion Dokter @diondokter.nl · 22h
Bevy is still young and doing lots of breaking changes. Couldn't that be fixed? It's never going to be less painful than now
140
Dion Dokter @diondokter.nl · 01/10/2026
My Rust compiler dev achievements: - [x] Amanieu reviews your PR - [ ] Amanieu likes your PR More work to do :P
0210
Reposted by Dion Dokter
RustNL @rustnl.bsky.social · 01/10/2026
The Call for Proposals for RustWeek 2027 is now open! If you’d like to give a talk, go here: 2027.rustweek.org/blog/2026-10... The CFP closes Jan 10, 2027 #rustweek2027 #rustlang
0167
Dion Dokter @diondokter.nl · 30/09/2026
Apparently Firefox decided it would look better with that awful vibecodey LLM style. Gradients and neons, all the stuff I would have loved as an 8 year old. You can install this neutral theme to have it colored relatively normal again: addons.mozilla.org/en-US/firefo...
New updateWith the proton theme
030
Reposted by Dion Dokter
Nicholas Nethercote @nnethercote.bsky.social · 30/09/2026
New blog post: nnethercote.github.io/2026/09/30/h...
nnethercote.github.io
How to speed up the Rust compiler in September 2026
My last post on the Rust compiler’s performance was two months ago and a lot has happened since then.
05612
Dion Dokter @diondokter.nl · 29/09/2026
Love still having you around!
020
Dion Dokter @diondokter.nl · 29/09/2026
Want to have an SDR in the BLE/Wifi bands? You've probably already got one in your drawer! espargos.net/espsdr/ mastodon.social/@jakecopping...
espargos.net
ESPARGOS - ESP-SDR: Raw IQ Capture with Espressif's ESP32 Chips
ESPARGOS is a phase-coherent, ESP32-based WiFi antenna array designed for low-cost sensing applications.
042
Reposted by Dion Dokter
Glyph @glyph.im · 28/09/2026
New Blog: What Would A Serious AI Product Look Like? Every “AI” tool is missing critical features that you would need if you wanted to do real work with them. What would those look like, if they existed? blog.glyph.im/2026/09/serious-ai-pr…
blog.glyph.im
Deciphering Glyph :: What Would A Serious AI Product Look Like?
Deciphering Glyph, the blog of Glyph Lefkowitz.
4418
Dion Dokter @diondokter.nl · 25/09/2026
Now I can sleep soundly again 🤓
020
Dion Dokter @diondokter.nl · 25/09/2026
Who knew caching would make an LSP faster!? The change here is that the translations from byte spans to line/columns is now somewhat cached (line index to byte offset)
Very slow LSP operations with some of them pushing well into 200msVery fast LSP operations where those previously slow ones are now all less than a millisecond
1180
Dion Dokter @diondokter.nl · 25/09/2026
🙈
000
Reposted by Dion Dokter
reto @galactic-forensics.space · 23/09/2026
At long last: Here's an update on the instrumentRs v0.2.0 idea. I wrote a new driver for SMC HRR chillers, which communicate via MODBUS RTU. I think the framework is starting to get there. As always, questions, comments, ideas very welcome! #Rust blog.galactic-forensics.space/blog/11-smc-...
blog.galactic-forensics.space
Controlling an SMC HRR chiller via MODBUS
Thoughts and ideas...
053
Dion Dokter @diondokter.nl · 23/09/2026
You know, maybe one of the worst things of LLM output is that they simply don't know when to shut up.
0120
Dion Dokter @diondokter.nl · 22/09/2026
I've now also flattened the AST, but that hasn't given the perf bump I hoped for. Just an extra ~1%
010
Dion Dokter @diondokter.nl · 22/09/2026
Ooohhh, changing my spans from 2x usize to 2x u32 makes the compiler 2% faster, for free! The only downside is that the compiler can no longer work with >4GiB files. So, no downside pretty much
2120
Dion Dokter @diondokter.nl · 20/09/2026
Every time I touch embedded-storage I get frustrated with its design. So I spent some more time again on my unified-storage trait: github.com/diondokter/u... My conclusion is that fully unifying storage isn't possible. But I think we can provide a common interface with plenty of metadata.
github.com
GitHub - diondokter/unified-storage
Contribute to diondokter/unified-storage development by creating an account on GitHub.
030
Reposted by Dion Dokter
TheZoq2 @thezoq2.bsky.social · 20/09/2026
One of the coolest things to happen in Spade yet 👀 @breakingtaps.com wrote and taped out a Transport Triggered Architecture processor from scratch in a month with 0 prior experience! www.youtube.com/watch?v=q6yt...
youtube.com
I designed a microprocessor
YouTube video by Breaking Taps
0205
Dion Dokter @diondokter.nl · 20/09/2026
Happy new embedded-storage release day! github.com/rust-embedde...
github.com
Release v0.3.2 + v0.4.2 (async) · rust-embedded-community/embedded-storage
Includes 0.3.2 for blocking and 0.4.2 for async What's Changed Switch to stable toolchain by @aurelj in #50 Add async version of the Storage trait and RmwNorFlashStorage implementation by @aurelj ...
1132
Reposted by Dion Dokter
nia (cia asset) @nia.is.fckn.gay · 19/09/2026
allocator stabilisation FCP passed. we're getting stable allocators in rust 1.100. we've never been so back github.com/rust-lang/ru...
github.com
alloc: stabilise `Allocator` by nia-e · Pull Request #156882 · rust-lang/rust
View all comments See the current proposed stabilisation report for up-to-date information on the proposed stable API. outdated former status Stabilise a bare-minimum (dyn-incompatible, but cou...
39519
Dion Dokter @diondokter.nl · 19/09/2026
Btw, the device-driver *runtime* is completely dependency free and sequential-storage only relies on embedded-storage(-async) You can opt in to more functionality, but that's all behind feature flags. I mostly do that for compile times though, not security necessarily.
050
Dion Dokter @diondokter.nl · 19/09/2026
"We don't want to use Rust because we don't want hundreds of dependencies" Ok, then just don't add dependencies? You're in control of your own destiny here! sudo-rs has only 2 which they deemed better than 0
4441
Dion Dokter @diondokter.nl · 17/09/2026
Thanks for the links y'all! I've written down some ideas I'm having: github.com/diondokter/d... (feedback welcome 😊) It's gonna be a while before I can get to it, so I've got plenty more time to stew on it. Or maybe I decide this is all not worth it. Who knows!
github.com
Add native finite state machines · Issue #309 · diondokter/device-driver
Many of the bigger devices have explicit and implicit states. We should be able to encode those. They can range from simple ones to more complex ones: uninitialized | initialized shutdown | sleepin...
000
Reposted by Dion Dokter
Rust Language @rust-lang.org · 17/09/2026
⚠️ We believe that there is an ongoing campaign targeting owners of popular crates and rust-lang team members that is attempting to compromise devices and accounts in order to use them to publish malware. See our blog post for details: blog.rust-lang.org/2026/09/17/t...
blog.rust-lang.org
Be alert: targeted attacks on prominent Rustaceans | Rust Blog
Empowering everyone to build reliable and efficient software.
122190
Reposted by Dion Dokter
Mara Bos @mara.bsky.social · 17/09/2026
You can now sponsor RustNL's Rust Maintainer Team through GitHub Sponsors: github.com/sponsors/rus... The page also lists other options to send us money. With your support, we can make sure the Rust project stays well maintained and grow our team with new talent. 💛
github.com
Sponsor @rustnl on GitHub Sponsors
Support our Rust Maintainers Team: https://rustnl.org/maintainers/ Over 30% of all pull requests on https://github.com/rust-lang/rust/ are either authored by or reviewed by our team.
1279
Dion Dokter @diondokter.nl · 17/09/2026
I got this response on mastodon: discuss.systems/@miado/11728... Looks very cool
discuss.systems
amelia (@miado@discuss.systems)
@diondokter@fosstodon.org not really a language, but the FSM dialect in CIRCT/MLIR does this, here's an example: https://github.com/llvm/circt/blob/main/test%2FDialect%2FFSM%2Fbasics.mlir#L59 here's ...
000
Dion Dokter @diondokter.nl · 17/09/2026
Interesting! This is nice
000
Dion Dokter @diondokter.nl · 17/09/2026
I agree with all this! It may not be a good idea. But surely people have tried before and had some results. I'm thinking about this in the context of drivers. How do they change state and how could you encode that nicely? (In the general sense, not in Rust specifically)
100
Dion Dokter @diondokter.nl · 17/09/2026
Are there programming languages with built-in (finite) state machines that are actually part of the language? I want to get some inspiration
350
Reposted by Dion Dokter
DEI Speedwagon @myrrlyn.net · 16/09/2026
dang i heard drew got woke i didn’t realize he got WOKE
4387
Dion Dokter @diondokter.nl · 16/09/2026
> Not a runtime defect. Not a type error. *Code generation itself failed.*
080
Dion Dokter @diondokter.nl · 16/09/2026
Oh, variation! He's used a dot!
230
Dion Dokter @diondokter.nl · 16/09/2026
No joke, I think 1 in 3 text lines on the slides of the presentation I'm attending does *not* have an em dash
1111
Dion Dokter @diondokter.nl · 13/09/2026
Seems like updating one of the js deps fixed it. People do like to compare Cargo with npm. But with npm I'm just always lost as to what's actually going on in a way I don't have with Cargo.
000
Dion Dokter @diondokter.nl · 13/09/2026
I've got a problem where when I start the vscode window with my new extension in the debugger it often immediately closes and I have no idea what's going on. Very annoying
100
Dion Dokter @diondokter.nl · 13/09/2026
LSP preview! Outline, semantic highlighting and inlay hints. I was hoping to get away with not having to implement a textmate grammar, but I think I have to. Comments are not captured in the AST, so I can't give them a semantic highlight and thus will have the default text color
Vscode window with outline, semantic highlights and inlay hints
2110
Dion Dokter @diondokter.nl · 10/09/2026
RIP dioxuslabs.com/blog/joining... Hope Jonathan made bank at least
dioxuslabs.com
Dioxus | Fullstack crossplatform app framework for Rust
A fullstack crossplatform app framework for Rust. Supports Web, Desktop, SSR, Liveview, and Mobile.
0181
Dion Dokter @diondokter.nl · 10/09/2026
Working on an LSP is quite fun actually
260
Reposted by Dion Dokter
RustNL @rustnl.bsky.social · 10/09/2026
** Ticket sales now open ** Get your tickets for RustWeek 2027! We lowered the ticket prices: privately-paid tickets are now 199 instead of 249 euro. A checkbox enables a 100 euro discount for those who can't afford the full price ✨️. See you in Utrecht! 2027.rustweek.org #rustweek2027 #rust
2027.rustweek.org
RustWeek 2027 - RustWeek 2027
RustWeek 2027, The Netherlands - May 24–29 2027. The world's biggest Rust conference returns to beautiful Utrecht, welcoming over 900+ community members, professionals and the maintainers of Rust.
01810
Dion Dokter @diondokter.nl · 07/09/2026
Rust has dynamically sized structs and C has flexible array members. But C++ doesn't seem to have anything like it? That's strange. C++ can't even fully interop with C...
050
Dion Dokter @diondokter.nl · 07/09/2026
Ha, needs to land first 😋 But I'd be open to talking about it!
100
Dion Dokter @diondokter.nl · 07/09/2026
My async compiler work got funded! So here's my first PR: github.com/rust-lang/ru... Roughly, it changes match x { true => foo(1).await, false => foo(2).await, } to match x { true => foo(1), false => foo(2), }.await This means the future will only have 1 state instead of 2
github.com
Add merge yields by diondokter · Pull Request #162429 · rust-lang/rust
Part of Async statemachine optimisation project goal r? dingxiangfei2009 Added a pass that merges functionally identical yields right before the async StateTransform pass. The StateTransform pass c...
41126
Dion Dokter @diondokter.nl · 06/09/2026
Started work on an LSP for device-driver
Some DDSL code in vscode with error and warning squiggles
050