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!
https://www.journeyman.cc/blog/posts-outpu
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!
https://www.journeyman.cc/blog/posts-outpu
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
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, `…
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
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…