Tootfinder

Opt-in global Mastodon full text search. Join the index!

@simon_brooke@mastodon.scot
2026-02-25 08:08:02

Right, problems for today. First. #Lisp problems. I think the bug in `cond` fires when a clause succeeds but returns `nil`.
First, write a unit test which checks for that, but run that test on my laptop where it physically cannot generate millions of stack frames.
Second, rewrite `cond` to call a separate helper function, `cond_clause`, which takes one arg and returns `nil` on failure, `…

@simon_brooke@mastodon.scot
2026-02-26 10:28:42

Woohoo! I just typed
`(mapcar (lambda (n) (:documentation (meta n))) (keys (oblist)))`
into the REPL of my frankenlisp, and printed out the documentation of every function it knows.
I am getting close to the point that other people can play with this...
#Lisp

@simon_brooke@mastodon.scot
2026-03-23 23:38:33

Yet another blog post on #Lisp memory management. If you are not obsessively geeky, this one isn't for you.
journeyman.cc/blog/posts-outpu

@simon_brooke@mastodon.scot
2026-02-24 08:19:12

Last night I discovered a huge 'new' bug in the integer arithmetic of my #Lisp system which I'd been unaware of because I don't have a unit test for it and it isn't something I'd been worried about and don't normally do.
Weirdly, it makes me feel hopeful. It is this:
:: (- 5 4)
1
:: (- 4 5)
4,294,967,295
What's happening here? Integer…

@simon_brooke@mastodon.scot
2026-03-20 13:10:45

I've written another essay about my mad #PostScarcitySoftware #Lisp system.
"We don't need to know, or have known, these people to build on their work. We don't have to, and cannot in detail, fully understand their work. There is simply too much of it, its complexity wou…

@simon_brooke@mastodon.scot
2026-03-18 11:26:15

Oh, Jings, my own execution traces are REALLY hard to read. It's my own fault: these are my traces in my software, there's no-one else to blame, but...
#Lisp

Screenshot from my editor. In the bottom pane, a REPL, in which I'm defining and executing the function `member?`. I'm doing this because it exercises a particular bug in `cond` (I think), which I'm struggling to understand. In the upper pane, an execution trace shows what the Lisp evaluator is doing...

It's really hard to get the level of detail right when writing execution traces. There's far more detail here than I need to trace the particular but I'm working on, even though I have only ena…
@simon_brooke@mastodon.scot
2026-03-14 00:52:27

I have written another essay for my blog. This one is about where I'm up to with my mad #Lisp system, and is *really* obscure!
journeyman.cc/blog/posts-outpu

@simon_brooke@mastodon.scot
2026-03-01 12:08:09
Content warning: More Lisp semantics

Modern #Lisp systems distinguish between several different types of string-like-things:
1. symbols
2. strings
3. keywords
By convention we typically use symbols as handles on things bound in the environment, keywords as handles on things bound in maps (hash tables), and strings as data.
However, in all the Lisp specifications I can find, and certainly in

@simon_brooke@mastodon.scot
2026-02-03 14:26:47

In #Clojure, if you query a set for a member, and that member is present, that member is returned:
user=> (#{:a :b :c} :a)
:a
The traditional #Lisp function ASSOC has the signature
(ASSOC store key) => value
where store is assumed to be a list of (key . value) dotted pai…

@simon_brooke@mastodon.scot
2026-03-01 12:33:05

Two days ago, I had eight (out of one hundred and forty) unit tests failing, and I wasn't happy with my code. Last night, I had forty failing, and I thought things were improving. This morning I have one hundred and twenty four failing, so I *know* I'm on the right path!
#Software
#Lisp