A comment about Christian Queinnec's book Lisp in Small Pieces (1996)
pages.lip6.fr
pages.lip6.fr
Incidentally, there is a 2nd edition in French, but not (yet?!) in English.
Yes, it is hard, but reading is not a contest of "how many pages can I read per day". With this book, sometimes I just read one/day. Other times it's a negative number. Meaning, I need to go back a few pages. What matters most is the content, and this book has it. No pauses, no cheap humour, just pearls on every paragraph. That puts the burden on the reader. It's a book to be studied, not read.
Looking up the translator, she seems well respected in both technical writing and translation between French and English, so it may also be weird in French.
The code of this book is here (3)
I read it some twenty years ago. The terminology was new to me, something like fexpresion, nexpresion, ..., the difference being when and how the arguments are evaluated. At the same time I was reading macsima code, to learn how to develop a mathematical symbolic system. The book is mainly about the function eval, closures, and how to construct compiler. In a way is the reverse of 'practical common lisp'. It doesn't discuss any concrete implementation of Lisp, gc, servers, sockets or ffi. It is deep in how evaluation is done in Lisp but lacks a lot of other topics.
Perhaps a more practical approach to construct an optimizer compiler in Lisp is to study the code of sbcl, how it for example propagate constraints and declarations to optimize the code. Perhaps something like a JIT compiler (like hava hotspot) added to sbcl could be interesting. Also the code of Racket would be another source of interesting ideas, for example (2). Another idea is to study the code of Lush (by Yann LeCun and Leon Bottou)
(1) https://hackernewsbooks.com/book/lisp-in-small-pieces/dbb8b5...(2) https://blog.racket-lang.org/2021/01/racket-status.html
(3) https://pages.lip6.fr/Christian.Queinnec/Books/LiSP-2ndEditi...
About low level interfaces, there's another french book from back in the days:
La programmation applicative : de LISP à la machine en passant par le lambda-calcul by Emmanuel Saint-James (also a colleague of C.Queinnec) (https://www.amazon.com/programmation-applicative-Emmanuel-Sa...)
Which, IIRC talks about IO at least (maybe gc, i forgot).
Lisp in Small Pieces: Table of Contents and Code - https://news.ycombinator.com/item?id=8600048 - Nov 2014 (40 comments)
Comments over the years: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
It is bonkers, for the reasons described by Dr. Wilson in this comment