rntz
rntz
@rntz.net
Michael Arntzenius irl. Postdoc at UC Berkeley doing PL + DB + incremental computation. PL design, math, calligraphy, idle musings, &c.

rntz.net
🐘 @rntz@recurse.social
🐦 @arntzenius

Attempting to use bsky more now that people are showing up.
My miniKanren 2025 paper, "Fair intersection of seekable iterators", about an efficient, compositional way to implement relational joins on sorted data structures, and how it (sorta) requires "fairness", is now on arXiv: arxiv.org/abs/2510.26016

talk slides: www.rntz.net/files/minika...
October 31, 2025 at 6:58 PM
Slides for my HOPE 2025 presentation, "Finite Functional Programming via Graded Effects & Relevance Types": www.rntz.net/files/hope-2...
October 13, 2025 at 1:35 AM
i go halfway around the world for a conference in a famous tourist city and first day what do I do?

go to a bookstore
October 11, 2025 at 1:27 AM
October 4, 2025 at 5:53 PM
guess the subject of the paper
September 27, 2025 at 8:05 PM
just a bit onward Hansen cites Dijkstra 1971b, "Hierarchical Ordering of Sequential Processes", which invokes a fairness property ("each process... is guaranteed to proceed with some unknown, but finite speed") but reserves the actual term "fair" only for a much stronger property
September 25, 2025 at 10:28 PM
I got irritated at how tightly spaced EB Garamond 08 (the version intended for use at smaller sizes) is, so I tried my hand at re-spacing the 26 lower-case letters manually in FontForge. Here's the result (original spacing first, then my adjustments).

github.com/georgd/EB-Ga...
September 15, 2025 at 10:29 PM
I repeat: computers are mostly about sorting
September 10, 2025 at 8:54 PM
the All-Seeing Eye has fallen up on my work and deemed it good

(implications status: uncomfortable. spotted by @mwillsey.com.)
September 8, 2025 at 11:23 PM
new book haul
August 30, 2025 at 5:38 PM
btw, the "better version" of the linear merge-intersection is leapfrog intersection: keep pointers into each list, starting at front. repeatedly "leapfrog" the pointer whose element is smaller by searching it forward toward the larger element. binary search will work, but galloping search is better.
August 9, 2025 at 9:37 AM
I do not understand inlining in Rust. Even with #[inline(always)], I get worse performance than if I inline manually. Wat?
August 7, 2025 at 8:43 PM
full code, including the seekable iterators with worst-case optimal/fair intersection, here: gist.github.com/rntz/9c10db3...
August 7, 2025 at 4:18 PM
I tried optimizing my worst-case optimal seekable iterators in Rust and thought I did pretty good. Then I tried hand-optimizing a little "count the intersection" loop and discovered it's 2x as fast as the iterators. Feh!
August 7, 2025 at 3:54 PM
the four genders: Twitter, Discord, Github, Lichess
July 27, 2025 at 3:27 PM
signature of elements for completeness:

fn elements<X: Ord + Copy>(elems: &[X]) -> Elements<X>
June 17, 2025 at 12:41 AM
I figured it out by blindly stumbling around until I added the right lifetime annotations to seek().
June 17, 2025 at 12:38 AM
ran into my first true Rust borrow-checker head-scratcher, trying to implement transitive closure in my nascent query engine...
June 17, 2025 at 12:29 AM
I was told Rust's declarative macros had hygiene. I was lied to. I seriously can't export a declarative macro that uses other un-exported declarative macros and have it work? wtf?
June 13, 2025 at 11:40 PM
I have spent entirely too much time this week writing sorted list search algorithms (>2x speedup over binary search on triangle-finding with this one, though!). Time to go write some parsers instead.
June 12, 2025 at 8:00 AM
triangle query goes brrrrrrr

github.com/rntz/dijkstr...
June 7, 2025 at 12:01 AM
triangle query goes brrrr

github.com/rntz/dijkstr...
June 7, 2025 at 12:00 AM
> error[E0277]: the trait bound `!: iter::Seek` is not satisfied

cursed error messages
June 4, 2025 at 9:17 AM
May 23, 2025 at 5:59 PM
unifying inner, outer, left outer, and right outer joins; credit to @mwillsey.com for the idea.

source at github.com/rntz/dijkstr...
May 22, 2025 at 10:43 PM