Working on @radiant.computer
Previously @radicle.xyz
I've been dissatisfied with the state of personal computing for many years now, so it's time I did something about it.
If you think computers could be so much better than what they are, this is for you.
radiant.computer
h/t @lorenz.leutgeb.xyz
www.youtube.com/watch?v=v0Jj...
h/t @lorenz.leutgeb.xyz
www.youtube.com/watch?v=v0Jj...
web.cs.ucdavis.edu/~rogaway/pap...
web.cs.ucdavis.edu/~rogaway/pap...
I had Claude generate this compiler pass from scratch, which resulted in...
I had Claude generate this compiler pass from scratch, which resulted in...
This lets you immediately tell, without reading the code, whether it doesn't account for something (code too short), or it's overcomplicating the solution (code too long).
This lets you immediately tell, without reading the code, whether it doesn't account for something (code too short), or it's overcomplicating the solution (code too long).
This is still a major bottleneck.
This is still a major bottleneck.
This is still a major bottleneck.
Compiled languages have an edge because they created more effective agentic loops.
Languages with optional type-checking probably are the best of both worlds in this respect.
Compiled languages have an edge because they created more effective agentic loops.
Languages with optional type-checking probably are the best of both worlds in this respect.
This doesn't raise any eyebrows because we've become used to software inertia.
@radiant.computer will change this.
michael.stapelberg.ch/posts/2026-0...
This doesn't raise any eyebrows because we've become used to software inertia.
@radiant.computer will change this.
michael.stapelberg.ch/posts/2026-0...
Great read.
chrisloy.dev/post/2025/12...
Great read.
chrisloy.dev/post/2025/12...
1. Writing tests for specific functions or branches
2. Documenting code
3. Finding the bug (regression) that causes a test to fail
4. Refactoring: renaming things, moving code around, changing function signatures, etc.
1. Writing tests for specific functions or branches
2. Documenting code
3. Finding the bug (regression) that causes a test to fail
4. Refactoring: renaming things, moving code around, changing function signatures, etc.
Rust has MIR, Zig has ZIR, Swift has SIL.. I think I should just start simple and see what design falls out of it
Rust has MIR, Zig has ZIR, Swift has SIL.. I think I should just start simple and see what design falls out of it
For example, there is no distinction between sum types and product types; they make it work by allowing field access without destructuring in simple cases. Very cool.
gleam.run
For example, there is no distinction between sum types and product types; they make it work by allowing field access without destructuring in simple cases. Very cool.
gleam.run
Previously, I'd avoid large mechanical code changes that weren't absolutely necessary, due to how much time it would take.
Now, changing my mind about a certain design decision is no big deal.
Previously, I'd avoid large mechanical code changes that weren't absolutely necessary, due to how much time it would take.
Now, changing my mind about a certain design decision is no big deal.
Making a compiler self-hosting is hard when the bootstrapping compiler isn't stable yet, but I'm eager to not touch C anymore!
Making a compiler self-hosting is hard when the bootstrapping compiler isn't stable yet, but I'm eager to not touch C anymore!