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

@simon_brooke Hmm, I can see this is basically you thinking out loud, and it is intriguing to see these thought processes put into words, if only to get an idea of the shape of the problem. But I don't think anybody will follow this too well as many concepts are used without introduction (like your notion of namespace as manifested in memory).

1/2

@simon_brooke

I would hardly describe it as hardware of the deep future, so much as architectural ideas that have been around since the 1980s (transputer), and are embedded in today's APUs as SMP.

But I did enjoy the read, thank you for writing it, and I hope it helped you formulate your ideas!

2/2

@khleedril Well, strictly, one of my primary inspirations is Danny Hillis' Connection Machine; there was one in a lab I worked in back in the 1980s, so yes, it's old tech, to a degree. But the other primary inspiration is Iain Banks General Systems Vehicles, so...

@khleedril Speaking of dynamically generated blogs, my blog used to run on Smeagol, and was thus dynamically generated.

But Smeagol depended on a lot of JavaScript written by other people, and keeping on top of security updates became too much effort... so now I do static generation with LuminusWeb instead.

https://github.com/journeyman-cc/smeagol/wiki/Introduction

Introduction

Simple Wiki engine inspired by Gollum. Contribute to journeyman-cc/smeagol development by creating an account on GitHub.

GitHub
@khleedril You start with the conceptual ideas you want to build, and you imagine how you can build those things with the technology around you. I think about computing without limits, and find myself worrying about exactly how many bits I need to allocate to implement a lock. It's a very paradoxical process.