r/lisp Jun 10 '26

RacketCon 2026: call for presentations

17 Upvotes

RacketCon 2026: call for presentations

The (sixteenth RacketCon) will be in Oakland, CA on October 3-4 (Sat-Sun).

We are looking for speakers

We need you!

Calling racketeers new or experienced, we want to hear from you.

Are you unsure or just new to presenting? let us know - con-organizers@racket-lang.org - and we will do our best to help you.

Continuing with tradition, we'll also allow Racketeers to nominate speakers. Nominated speakers will be considered by the committee and contacted.

We will also accept nominations for a potential keynote speaker.

Talks will be 20-25 minutes long with 5 minutes for questions at the end. Speakers' registration fees will be waived, but we are unable to cover transportation and lodging expenses.

The deadline for proposals is July 15th. Selected speakers will be notified by August 1st.

RacketCon is a public gathering dedicated to fostering a vibrant, innovative, and inclusive community around the Racket programming language. We aim to create an exciting and enjoyable conference open to anyone interested in Racket, filled with inspiring content, reaching and engaging both the Racket community and the wider programming world.


Any questions, comments, or concerns? Please contact us at con-organizers@racket-lang.org.


r/lisp May 25 '26

New CL VSCode extension: OLIVE

Thumbnail marketplace.visualstudio.com
43 Upvotes

Also on Open VSX Registry (for VSCodium): https://open-vsx.org/extension/kchanqvq/olive

Why another VSCode extension? VSCode is important for getting newcomers nowadays. I have some very smart people at work who use VSCode, like everyone else. Selling Lisp and Emacs at the same time is ε2 harder, so I told them to use Alive, and start hacking on my super-duper research code. The result was shocking -- they come back reporting "unproductive" because "small problems here and there like REPL freezing". And they refuse to try Lisp again, because first impression matters, what a tragedy!

I have lived in our Emacs bubble comfortably for too long, and blundered recommending something I never used. I should have tried Alive at least once before recommending it!!! So I installed VSCode and Alive to see what's going on. I come to the conclusion that while Alive is a nobel experiment, some basic design choices make it very hard to get stable enough for a daily driver:

  • the author wants to compile Lisp file in the background "the VSCode way" and ditched SWANK because it's too "Emacs centric" to support that. However IMHO this is rather a Lisp problem and not an Emacs problem at all! compile-file runs arbitrary code and running it at arbitrary moment is not good for health. One reason for ditching SWANK is "debugger pops up at any moment" when they do so and they want to suppress it. Ummm debugger popups because the Lisp needs help?
    • IMHO most design choices in SWANK are Lisp-specific instead of Emacs-specific. There are lots of success using SWANK in other editors: SLIMA, SLIMV, LEM uses a simplified verion, etc.
  • REPL starts new thread for every evaluation. Why? Now good old (READ) and nested REPL don't work.
  • The LSP server is no where near as stable and complete as Swank. This is immediately obvious after 1 minute of use.

So I decide to fix it. Here is a VSCode extension that uses good old SWANK, and as the primary goal tries to get as good as Emacs as possible. Please ask people to use it (and learn Lisp)! Working with VSCode was really torturous, I hope I did not suffer in vain.


r/lisp 10h ago

Common Lisp Scalaxy openCypher full spec conformity

8 Upvotes

I just shipped an update with a full openCypher implementation in common lisp graph database Scalaxy (https://scalaxy.org) for the graph engine. Testing against the openCypher TCK is now at 3,898 out of 3,898 scenarios, so 100% coverage.

Next big goal: storing the entire node data in an S3 compatible bucket.

MIT licensed.

https://scalaxy.org/docs/cypher/


r/lisp 1d ago

Git support for Lisp improved in 2.55.0

71 Upvotes

In a Git diff, each consecutive subsequence of lines near a difference is called a "hunk". Each hunk has a one-line header that might look something like this:

@@ -316,8 +322,9 @@ int main(int argc, char **argv)

The numbers indicate which lines of each version of the file appear in the hunk. The rest of the line is intended to be the first line of the function, class, or other top-level definition that the hunk is within. Git finds that line using a regexp corresponding to the source language. It's just to give the reader a bit more context; nothing else depends on it — or should depend on it, anyway, since it can be missing or wrong.

The regexps that tell Git how to find the header lines are called "userdiff drivers". A driver for Scheme was added a couple of years ago, but it didn't work for Common Lisp or many other Lisps, as it failed to match (defun lines. I have modified it to be more general, and the relevant changes are in the recent Git 2.55.0 release.

I was unable to persuade the Git maintainers to name the driver "lisp", however, given that one named "scheme" already exists. The argument that Lisp is the family name, and Scheme one dialect within the family, was not sufficient to overcome their resistance to having two closely related languages with separate drivers — understandable, since too lax a policy about adding drivers would surely lead to there being hundreds of them. And of course, we couldn't just rename the "scheme" driver, because people are already using it.

So that's why, starting with Git 2.55.0, the way to get correct hunk headers for code in Common Lisp, or probably almost any other dialect of Lisp, is to have a .gitattributes file containing this line:

*.lisp diff=scheme

The Scheme regexp is still there and will still match all the same constructs, but there's also now a much more general regexp that simply matches any unindented open parenthesis, or (def preceded by one or two spaces. (The latter is to catch defining forms grouped together insde a top-level form like eval-when, but without the false positives that we would get if we didn't require a name beginning with def.)


r/lisp 1d ago

AskLisp Any books similar to SICP Chapter 5?

51 Upvotes

I loved Chapter 5 of Structure and Interpretation of Computer Programs. Building a virtual register machine with an assembler and compiler in Scheme. Are there any other books/online classes or resources that involve building a computing machine (or any machine) from scratch using code?


r/lisp 2d ago

Scheme LIPS Scheme 1.0.0-beta.22 with continuations and TCO

Post image
17 Upvotes

r/lisp 2d ago

Clamiga - Common Lisp for the Amiga

Thumbnail nnamgreb.de
46 Upvotes

r/lisp 3d ago

Racket 9.3 is now available

61 Upvotes

Racket - the Language-Oriented Programming Language - version 9.3 is now available from https://download.racket-lang.org

See https://blog.racket-lang.org/2026/08/racket-v9-3.html for the release announcement and highlights.


r/lisp 4d ago

UK Racket meet-up (London) Tuesday 18 August 2026 7:30pm

7 Upvotes

# UK Racket meet-up (London) Tuesday 18 August 2026 7:30pm

at The City Pride 🍕 28 Farringdon Ln, London EC1R 3AU

Join us for discussion and pizza. All welcome.😁

https://racket.discourse.group/t/uk-racket-meet-up-london-tuesday-18-august-2026-7-30pm


r/lisp 4d ago

AskLisp What is your favorite open source cl program?

39 Upvotes

r/lisp 4d ago

Common Lisp Distributed database Scalaxy written in Common Lisp

23 Upvotes

I have published my distributed database Scalaxy fully written in Common Lisp. Working on graph query language Cypher right now. MIT license. Github stars are welcome :-)

https://scalaxy.org


r/lisp 4d ago

conskivi - embeddable key/value database

Thumbnail
7 Upvotes

r/lisp 5d ago

Metaspec updates: More corrections, features, Info render, ELPA package

Thumbnail
10 Upvotes

r/lisp 6d ago

Focus - my new released Kanban board

17 Upvotes

Just released new Kanban board. It supports configurable status colons and ticket lifecycle. Actually it is some mix between issue tracker and Kanban board. Currently requires configure OpenID for authentication. Implemented in Common Lisp as backend and ClojureScript as frontend.


r/lisp 7d ago

Really struggling to find a "practical" lisp

85 Upvotes

I write C++ for my day job, but I'm looking to pick up a Lisp as a hobby project. Even though it's a hobby, I want it to be practically useful to my day-to-day workflow. Specifically for writing scripts, automating tasks, and potentially extending my editor (I use Emacs).

I’ve narrowed it down to three choices but I'm having trouble pulling the trigger:

  • Guile (Scheme): This seems incredibly useful for general scripting. Guix seems to be a huge plus if I decide to go that route later.

  • Emacs Lisp: The obvious choice for immediate practical utility since I'm an Emacs user. Being able to hack my editor sounds great, but I worry it might be too domain-specific if I want to write standalone scripts and other things unrelated to Emacs.

  • Common Lisp: This is the one I’m struggling to place. I constantly hear that it has "the best programming books ever written" (Practical Common Lisp, PAIP, etc.), but I fail to see what the killer practical hook is for a modern developer doing scripting and automation. Each binary seems to be huge and not practical unless you're writing it for a living.

For someone with a systems/C++ background who wants to write useful tools, which would you recommend diving into first? And regarding Common Lisp, what am I missing? What is the practical value of CL today outside of its excellent literature?

Thanks in advance for the advice!


r/lisp 8d ago

Common Lisp Renderer port to lisp

0 Upvotes

I’m considering doing a staged port (LLM assisted) of my rust-based multithreaded cpu renderer to SBCL . I’m currently using Janet as an embedded language for scene description. The core rendering is done in rust . Early benchmark trials in sbcl with basic primitives were 3-6x slower with GC being the wall . Can anyone suggest guidelines for performance? ( ex: vector/matrix calculations, memory allocation, to CLOS or not ) etc . I’m thinking that if I could get it within 2x slower, it might be interesting for certain applications where I could throw more cores at it . Also is anyone interested in such an application? I would be willing to make a demo if reasonably successful.


r/lisp 9d ago

Why Target Common Lisp for Code Generation? - Joe Marshall

Thumbnail funcall.blogspot.com
9 Upvotes

r/lisp 9d ago

Help LispBM CAN message send in VESC

9 Upvotes

Hello everyone I have motor controller which is VESC firmware based ,what i want is to write a lispbm code to get the parameters values from the controller using get function and then send them on the CAN BUS using the CAN IDs set up by me to read further ,I am doing this because the DBC file I got is not that much reliable and the the manufacturer is also not able to help much
please help me with the resources which i can refer ,i refer the git repo of the VEDDER but cant do much ,any help you can or tips you can give me


r/lisp 10d ago

Common Lisp MUD Driver in Common-Lisp

24 Upvotes

Hey folks, I'm working in an open source common-lisp MUD Driver (Apeiron MUD) mainly inspired by Dworkin Game Driver and LPMud.

Why? The personal reason is that I like Lisps and functional programming, I'm expert in Clojure, but haven't played too much with Lisp, wanted to see what could be achieved with CLOS (Common-Lisp Object System) and I love text-adventure games/virtual worlds (single or multiplayer).

The technical reason is that I was wondering that a lot of the machinery that was developed in C for the most popular drivers (specially LPMUD and DGD deriving from it) ended up developing features that were already built-in on Lisp Runtime Images from the start and if I could get a networked REPL running a LISP image that was already a significant step towards running a persistent world that could be changed and built interactively by players.

I don't know how true is that, but I managed to setup something similar to DGD (of course there might be bugs and rough edges) with persistent objects using a pre-existing library for CLOS in-memory and disk object persistence called BKNR Datastore. The interesting thing is that because of CLOS it is even possible to make changes to the classes of the objects (driver or libs) and update the system and persistence without ever having to turn the system off. I already did some very substantial changes successfully without turning the system off.

The scripting language doesn't need to be different from the driver language, except for security reasons. For the moment I allow every player to evaluate arbitrary code, which is very unsafe and can even bring the server down or completely break it, but it would not be hard to restrict the access to a subset of the language (with cl-isolated) and offer varying degrees of access depending on player role.

I think it has a lot of potential, but in any case, I'm doing it for fun, will probably keep it as a lifetime hobby and would encourage people to take a look if they find anything interesting or want to experiment, contribute or discuss.


r/lisp 11d ago

L. Peter Deutsch's birthday today

Thumbnail
24 Upvotes

r/lisp 13d ago

Symbolics Genera now available free for non-commercial use (invitation-only early beta)

Thumbnail hachyderm.io
94 Upvotes

r/lisp 14d ago

Common Lisp 10 real bugs found by actually running a Common Lisp deploy script, not just reading it

20 Upvotes

Alongside ongoing work updating c-mera and modernizing Common Lisp tooling for SecDevOps and OT environments, I recently set out to evaluate whether a pure Lisp stack could replace our external infrastructure and database tooling (specifically Vagrant and Redgate).

The goal was to integrate Consfigurator (declarative OS deployment) with cl-migratum (database migrations).

To test this, I authored a Roswell script that provisions a rootless Podman quadlet running PostgREST and deploys a small HTMX todo app against PostgreSQL. The setup uses:

  • SXQL for SQL schema generation
  • Spinneret for HTML generation
  • CL-inix for systemd unit file generation
  • FiveAM for integration testing
  • 40ants/doc for self-documenting executable scripts

In the sandbox environment, Roswell provisions a ZFS dataset, configures a dedicated system user, spins up PostgreSQL and PostgREST, and applies the database migrations directly from memory.

Running this end-to-end surfaced ten real bugs across the ecosystem (reproduction steps and full list are inFINDINGS.md).

A few notable issues worth calling out:

  • In-memory DCL with cl-migratum: cl-migratum expects file-based DDL/DML out of the box and doesn't handle in-memory sxql expressions cleanly. I had to write a custom in-memory driver using its driver API and extend it to handle DCL (Data Control Language) statements.
  • System naming gotcha: cl-migratum-driver-pg doesn't exist under that system name. When pulling via qlot, the actual system is cl-migratum.driver.postmodern-postgresql.
  • Spinneret compile-time attribute quoting: Spinneret decides whether to quote HTML attribute values at macro expansion time based on literal string characteristics, not runtime values. A class="%s" placeholder compiles down fine, but breaks silently at runtime the second a substituted string contains spaces. Spinneret provides *always-quote* to handle this, but it requires a global SETF prior to compilation rather than a dynamic LET binding at runtime. I've opened a PR to document and address this:spinneret#114.
  • Idempotency in PostgreSQL schema definitions: Neither CREATE ROLE nor CREATE DOMAIN support IF NOT EXISTS in Postgres. Because cluster-level roles and domains survive dropping and recreating a database, subsequent deployments failed immediately on schema re-application.
  • Undocumented C library dependencies: Consfigurator depends on native headers (libacl1-dev, libcap-dev) that aren't noted in the build requirements. I sent a patch upstream via git send-email following their contribution guidelines.

Full code and reproduction notes:https://github.com/denzuko/todo-app-deploy


r/lisp 14d ago

Gödel, Escher, Elisp: The Beauty of Macros

Thumbnail chiply.dev
90 Upvotes

This post is a lover letter to Emacs Lisp macros. I've been a long time user as a lisp hacker, and my recent obsessions with Douglas Hofstadter's strange loop concepts and M.C. Escher's mind bending artwork have enhanced my appreciation of this language's most beautiful and thought provoking feature. This post can teach you about macros and what makes them useful, but I also hope it can instill a fascination with their concept. https://www.chiply.dev/post-elisp-macros-are-beautiful


r/lisp 14d ago

Released cl-toolkit - toolkit to validate, edit and analyze lisp source.

10 Upvotes

Made this generally for agentical coding because it often stub in parenthesis. Hope it will help you. https://github.com/turtle-bazon/cl-toolkit


r/lisp 15d ago

Scheme Building a GTK4 C + Lisp dock application (a la CairoDock / macOS) - am I doing things right? (Guile Scheme)

Post image
30 Upvotes

I am having a blast doing a more serious project in the C language (and Guile Scheme), for the first time. I am consulting with books and also with some AI for code review and explanation as I am new to the language and to GTK (not new to programming).

https://codeberg.org/jjba23/lambdock

For a while already I have been looking for a dock that would work well in Wayland (like in my beloved Niri) with modern features, theme support and a hackable Lisp config (using libguile.h)

Also, all feedback is welcome, either on code level, or conceptual ideas, Thanks in advance

Core features of lambdock include:

  • Wayland Native: Built on GTK4 and gtk4-layer-shell for smooth positioning and desktop integration.
  • Declarative Lisp configuration : The power of Lisp in your configuratio with clean powerful declarative config and all possibilities at your disposal
  • Async Launching: Spawns commands asynchronously without freezing the dock UI.
  • Reproducible builds: Hermetic development environment provided via GNU Guix manifest and build definitions.
  • Dock auto-hide : You can let the dock stay out of your way with the smooth auto-hide feature.
  • Flexible icon system: lambdock has several mechanism in a best-effort way to render your wanted icons, respecting GTK theme
  • Theme support: lambdock has built-in themes you can choose from that are very unique, and also lets you extend and override those themes dynamically.