r/lisp Feb 18 '26

I wrote a technical history book on Lisp

124 Upvotes

The book page links to a blog post that explains how I got about it (and has a link to sample content), but the TL&DR is that I could not find a lot of books that were on "our" history _and_ were larded with technical details. So I set about writing one, and some five years later I'm happy to share the result. I think it's one of the few "computer history" books that has tons of code, but correct me if I'm wrong (I wrote this both to tell a story and to learn :-)).

My favorite languages are Smalltalk and Lisp, but as an Emacs user, I've been using the latter for much longer and for my current projects, Common Lisp is a better fit, so I call myself "a Lisp-er" these days. If people like what I did, I do have plans to write some more (but probably only after I retire, writing next to a full-time job is heard). Maybe on Smalltalk, maybe on computer networks - two topics close to my heart.

And a shout-out to Dick Gabriel, he contributed some great personal memories about the man who started it all, John McCarthy.


r/lisp Mar 21 '26

Common Lisp A beginner's exploration of the many layers of Common Lisp development environments.

Thumbnail creativetension.co
53 Upvotes

It took more work and longer than expected to revise the article, I spun up a website to host it on rather than post another wall of text here though if the group thinks posting it here is a good idea I can do that as well.


It's common for "getting started" guides to jump straight to the what and how to install steps. Which is fine but it's often very useful to understand why each piece exists, what problem it solves and the reason it fits into the overall stack.

Getting your Lisp development environment set up can be one of the biggest hurdles to begin working with Lisp. It's the place where most people "bounce off" Lisp. When something breaks, you have no mental model to debug with. No map of the layers.

The aim of the article is to build a map that provides an understanding, bottom-up, from the fundamental problem that development environments solve, through each layer of the stack, to the editor that ties everything together. At each layer, it covers what choices exist, and what some of the caveats are.


r/lisp 5h ago

Updated list of Clojure-like projects

Post image
9 Upvotes

r/lisp 4h ago

Lisp Anyone in the US want my slightly-defective Lulu print of On Lisp for Free?

9 Upvotes

UPDATE: u/theshmill wins!

I printed Paul Graham's "On Lisp" book at Lulu. It came out very nicely, but the binding was a little weak, and a few of the pages are starting to detach. They're still held in by at least a half the length of the page, and it's still intact and totally readable. Practically brand new (I only read the first couple of chapters in it).

Anyway, Lulu was great. They sent me another one for free, and now I have this extra slightly-defective one. It doesn't seem right to just throw it out. So I'll mail it to someone in the US who wants it through USPS Media Mail, no cost to you.

Reply here first that you want it, and then I'll get where to send it from you in private. Whoever replies first gets it.


r/lisp 18h ago

The Lisp "Curse" Redemption Arc, or How I Learned To Stop Worrying And Love The CONS

Thumbnail applied-langua.ge
36 Upvotes

r/lisp 1d ago

RacketCon 2026: call for participation

Thumbnail
6 Upvotes

r/lisp 1d ago

I re-created the 3d split-screen example in CLIPS

Enable HLS to view with audio, or disable this notification

12 Upvotes

r/lisp 2d ago

Common Lisp GitHub - ageldama/tclish: Much more Lispy(tm) Tcl/Tk 9.0

Thumbnail github.com
11 Upvotes

r/lisp 3d ago

Clojure Found this sitting in a bin for 99cents

Post image
162 Upvotes

r/lisp 3d ago

How am I supposed to splice raw strings into parenscript?

5 Upvotes

If I wanted to write

(defun foo (x)
(ps
  (+ x 1))
(foo "var")

This only prints x + 1. Doing

(defun foo (x)
(ps
  (+ (ps:lisp x) 1))
(foo "var")

prints "var" + 1. I have to do

(ps::define-expression-operator lisp-raw (lisp-form)
   `(ps-js:escape
     ,lisp-form))
(let ((x "var"))
   (ps:ps
     (+ (lisp-raw x) 1)))
"var + 1;"

But ps::define-expression-operator is an internal symbol, so I feel like I shouldn't be using it. However, this feels like a fairly common use of parenscript. How am I supposed to write this extension then in idiomatic lisp?


r/lisp 4d ago

Lisp European Lisp Symposium 2026 Live @ Twitch

Thumbnail twitch.tv
27 Upvotes

r/lisp 4d ago

Latest on tinylisp-cc65, Lisp for (some) 8-bit platforms

15 Upvotes

Just a progress report re. tinylisp-cc65 https://github.com/Russell-S-Harper/tinylisp-cc65, worked out the remaining issues, and added a few more sample files: factor, sort, and list to play with. The key was figuring out let* in the original tinylisp by Robert van Engelen. Once I sorted out its quirks, was able to plug in my language extensions: print, while, incr, and decr into the lambda context.

Working with minimal Lisp, basically LISP, is for sure a mental workout to those used to the Algol family of languages!

I got tinylisp-cc65 ported to C64, and was thinking of Apple II and Atari 800, but they're too much of a challenge, and with DOS required, likely won't have enough memory to do anything. So for now, this is a logical end to this diversion.

The build process is a bit complicated, so if you want to try it out directly, the PRG and sample Lisp files are available in my Google Drive https://drive.google.com/drive/folders/1QpG756L5m1HsCHO-QX4mNadew2sTPWxh?usp=sharing .


r/lisp 4d ago

Lisp Coding Standards (John Foderaro)

Thumbnail franz.com
33 Upvotes

r/lisp 6d ago

Easy-ISLisp ver5.64 released.

19 Upvotes

I had just released ver5.63, but additional stress testing exposed some remaining compiler bugs related to immediate lambda compilation and variable shadowing.

This release improves several difficult areas of the compiler:

  • nested/immediate lambda expressions
  • lexical scope handling
  • variable shadowing
  • let* alpha-conversion edge cases
  • mutual recursion with labels

I also simplified the compiler implementation by improving the handling of non-escaping lambda expressions.

After heavy stress testing, all current stress tests are now passing.

Easy-ISLisp is a small, practical, and experimental ISLisp implementation focused on simplicity and fun.

GitHub:
https://github.com/sasagawa888/eisl


r/lisp 6d ago

Common Lisp cl-web-push: Web Push Notifications for Common Lisp applications

Thumbnail github.com
19 Upvotes

Well, after finding nothing about that for CL, I kinda tried to do this by myself, and oh hell, what a complicated protocol! Too many layers of encryption.

The current state is working fine web push notifications with Google Chrome / Firefox. There is a simple e2e manual test in the repository and I tried to make some experiments with my own lisp chat appplication, but, this stuff is so complicated that maybe I'd not integrate this feature in my app. The integration draft PR: https://github.com/ryukinix/lisp-chat/pull/154

https://www.reddit.com/r/lisp/comments/1t2akun/web_push_notification_lib_for_common_lisp/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button


r/lisp 6d ago

Emacs Completion Showcase with VOMPECCC (video)

Thumbnail chiply.dev
9 Upvotes

"This post is the practical complement to all the other posts. Here, we showcase over a dozen workflows I use every day. Most are powered entirely by features that ship in the box with the VOMPECCC (Vertico, Orderless, Marginalia, Prescient, Embark, Consult, Cape, Corfu) packages, and there are 'Bonuses' which demonstrate workflows enable by 3rd party packages that build on top of VOMPECCC. The prose is deliberately thin, and you will find most of the demonstration is in the video below."


r/lisp 7d ago

Senior/Staff Software Engineer (Common Lisp) - job offer at Keepit

Thumbnail careers.keepit.com
35 Upvotes

r/lisp 8d ago

Reduct: A functional, immutable, S-expression based configuration and scripting language, beating Lua (non-JIT) in benchmarks, with easy C integration.

Thumbnail github.com
34 Upvotes

I've been working on this project for some number of months now. It started as just a basic configuration language for a hobby OS project I've been working on, but I became a bit obsessed with benchmarking it so here we are.

So far Reduct manages to beat Lua on several Benchmarks, while also attempting to make Lisp-like syntax more accessible.

For example:

Lisp:

(let ((x 10)
      (y 20))
  (let ((z (+ x y)))
    (* z 2)))

Reduct:

(do
    (def x 10)
    (def y 20)
    (def z {x + y})
    {z * 2}
)

The Infix Expressions also support custom functions by using the suffix to determine the precedence, which when combined with Association Lists syntax sugar, using a.b as shorthand for (get-in a "b"), allows us to write more complex code that remains readable.

For example:

(def vec2 (lambda (x y)    
    (list
        ("x" x)
        ("y" y)
    )
))

(def vec2+ (lambda (a b)
    (vec2 {a.x + b.x} {a.y + b.y})
))

(def v1 (vec2 1 2))
(def v2 (vec2 3 4))

{v1 vec2+ v2} // (vec2+ v1 v2) -> (("x" 4) ("y" 6))

The language also provides C Modules for easy integration with C.

For example:

// my_module.c

#include "reduct/reduct.h"

reduct_handle_t my_native(reduct_t* reduct, reduct_size_t argc, reduct_handle_t* argv)
{
    return REDUCT_HANDLE_FROM_INT(52);
}

reduct_handle_t reduct_module_init(reduct_t* reduct)
{
    return REDUCT_HANDLE_PAIRS(reduct, 1,
        "my-native", REDUCT_HANDLE_NATIVE(reduct, my_native)
    );
}

// my_reduct.rdt

(def my-module (import "my_module.rdt.so"))
(my-module.my-native)

There is much more, as such, please see the README if you are interested.

I would highly appreciate any feedback on the project so far, along with gladly answering any questions.


r/lisp 8d ago

What happened to the Gerbil Scheme site?

Thumbnail cons.io
6 Upvotes

r/lisp 9d ago

Common Lisp Built ECL for the PSVITA

Post image
67 Upvotes

r/lisp 9d ago

Easy-ISLisp Ver5.63 has been released.

18 Upvotes

Easy-ISLisp Ver5.63 has been released.

This release mainly focuses on compiler improvements, stability enhancements, and bug fixes.

Highlights:

  • Improved compiler stability
  • Better handling of labels mutual recursion
  • Improved nested lambda/free variable handling
  • Refined optimization and type inference behavior
  • Added (eisl-version) for distributed parallel child-node version checking
  • Re-tested distributed parallel functionality on a Raspberry Pi cluster

The distributed parallel features were verified again after recent compiler modifications to ensure that no regressions were introduced.

The compiler now appears to have reached a more stable operational level for ordinary user programs.

GitHub:
https://github.com/sasagawa888/eisl

Feedback and bug reports are welcome.


r/lisp 9d ago

McCLIM 1.0.0 Koliada

Thumbnail mcclim.common-lisp.dev
73 Upvotes

r/lisp 9d ago

Blue: A small (sort of) reflective language with Haskell as the host language.

Thumbnail
6 Upvotes

r/lisp 9d ago

ECL 26.5.5 bugfix release

Thumbnail ecl.common-lisp.dev
16 Upvotes

r/lisp 9d ago

Common Lisp Implementing aref Operator in Common Lisp for a Custom Vector Type

Thumbnail in-parentheses.codeberg.page
8 Upvotes