OK, folks, I've written yet another incomprehensible essay on the intricacies of implementing a software environment for the hardware of the deep future.

Read this only if you're incurably geeky, and, ideally, interested in #Lisp.

#PostScarcitySoftware

https://www.journeyman.cc/blog/posts-output/2026-03-28-Nodes-threads-locks-links/

Nodes, threads, locks and links

Up to now, I've been building a single threaded Lisp. I haven't had to worry about who is mutating memory while I'm trying to read it. The idea that this is a mostly immutable Lisp has encouraged me to be blasé about this. But actually, it isn't entirely immutable, and that matters.

The Fool on the Hill

Unexpected numerological finding. I'm allocating memory for objects in sizes that are powers of two, in order to be able to manage separate freelists for each size to make GC easier. My hashtables have a header overhead of 4 words. My namespaces need a write access control list and a mutex in addition, so an overhead of 6.

It turns out that there are quite a lot more primes which are almost (- (expt 2 n) 4) for some n, than which are almost (- (expt 2 n) 6).

#Lisp
#PostScarcitySoftware