r/Common_Lisp
Senior/Staff Software Engineer (Common Lisp) - job offer at Keepit
careers.keepit.comWhat are the active/good Lisp communities?
Especially now that I'm working on a larger project and may have more moderate to advanced questions. However, most of the stuff on the sidebar is deprecated, 404ed, or dead.
Where would I look towards now?
DotNet Common Lisp
As seen on Hacker News. Now I know what my day will be spent on.
cl-ssh: pure common lisp SSH
I always missed this in CL, but thought it too much work to add it. However, since vibe-coding has improved over the past year, I thought I'd give it a go and see how powerful opencode + claude sonnet 4.6 with medium reasoning, and a little gpt 5.5 with medium reasoning.
It took me a little more than a full night and ~$47 to vibe code a pure CL SSH client library. It at least supports rsa & ed25519 keys with and without passphrase, or simple password authentication. On the client end, interactive shell is supported and simple command running. I've not added multithreading yet, because I have no use for it currently.
Enjoy!
How to improve this terribly slow reading?
I was reading TaDa and want to read the lineitem.csv example in Common Lisp, so I wrote:
(with-open-file (stream file)
(loop :for line := (read-line stream nil) :while line
:summing (parse-integer (nth 4 (str:split "|" line)))))
However, on my computer, it took about 17sec to run!
Maybe it was my fault, so I change to cl-csv:
(let ((sum 0))
(cl-csv:do-csv (row #P"lineitem.csv" :separator #\|)
(incf sum (parse-integer (nth 4 row))))
sum)
and it is even worse...
Profiling shows that
Self Total Cumul
Nr Count % Count % Count % Calls Function
------------------------------------------------------------------------
1 9903 80.0 9903 80.0 9903 80.0 - foreign function read
2 414 3.3 414 3.3 10317 83.3 - foreign function __semwait_signal
3 218 1.8 1878 15.2 10535 85.1 - cl-ppcre:split
4 182 1.5 404 3.3 10717 86.5 - (lambda (string cl-ppcre::start cl-ppcre::end) :in cl-ppcre::create-scanner-aux)
5 147 1.2 820 6.6 10864 87.7 - (sb-pcl::emf cl-ppcre:scan)
6 131 1.1 159 1.3 10995 88.8 - sb-pcl::check-applicable-keywords
7 122 1.0 122 1.0 11117 89.8 - (lambda (cl-ppcre::start-pos) :in cl-ppcre::create-char-searcher)
8 98 0.8 509 4.1 11215 90.6 - (sb-pcl::fast-method cl-ppcre:scan (function t))
9 88 0.7 103 0.8 11303 91.3 - (lambda (sb-pcl::.arg0. sb-pcl::.arg1. &rest sb-pcl::.rest.) :in "SYS:SRC;PCL;DLISP3.LISP")
10 83 0.7 121 1.0 11386 91.9 - sb-kernel:ub32-bash-copy
This is really wired.
Notes: I was running SBCL 2.6.3 on macOS 26 (MacBook Air M2). The lineitem.csv (~=750MB) is generated via (duckdb):
.bail on
ATTACH IF NOT EXISTS ':memory:';
USE memory;
INSTALL tpch;
LOAD tpch;
CALL dbgen(sf = 1);
.shell rm -f lineitem.csv
COPY (SELECT * REPLACE (l_quantity :: bigint AS l_quantity)
FROM lineitem)
TO 'lineitem.csv' (delimiter '|', header false);
I updated my game made in common lisp, now the game uses sdl2 instead of terminal, the AI can remember topics, track the player's emotional tone, notice repitition and ask better follow-up questions, there is also 13 achievements for the players to collect, it was a wide update, the source code is there for download.
Senior Lisp Developer (m/w/d), Berlin/Remote, Germany
rulemapping.jobs.personio.comNotes missing in my copy of Lisp Metaprogramming?
I just got a copy of LISP Metaprogramming: A Hands-On Guide to Macros, Syntax Transformation, and DSLs by James C. Shepherd. It's a softcover book with 179 pages and cover art of a train made of a colorful collection of circuit board wires.
For the life of me, I can't find where the endnotes are. They aren't footnotes, nor at the end of the chapters, nor end of the book (either before or after the appendixes).
Anyone have a copy of the book that has the notes?
ELS 2026, Kraków - European Lisp Symposium
european-lisp-symposium.orgCL-CODEGRAPH - a live Knowledge Graph of your Common Lisp code, built from the running SBCL image.
cl-codegraph: https://sr.ht/~hajovonta/cl-codegraph/
> Given a package loaded in the SBCL image, builds and maintains a graph of its symbols, class hierarchies, method specializations, call relationships, and metadata — all without parsing source code. Includes a live Emacs integration that shows code intelligence as you navigate.
Screencast: https://drive.proton.me/urls/JE5EQ6KNMR#tN7CcgN96YL7
Seen on: https://mastodon.online/@hajovonta/116501259663689389
File compilation without a file
Greetings!
I know one can use COMPILE to compile a function for later use in the current image, and COMPILE-FILE to read a file, compile the code in it, and save a loadable version of the code (FASL).
I'm working on a system that generates Lisp forms programmatically, however it does so outside of the usual read-compile-load cycle. You can imagine a DSL with its own syntax, that is mapped to Lisp forms.
Now, at some point I would like to compile the generated code "as if" it was normal Lisp code, and save it into a FASL. I know I can PRINT it to a temporary file and call COMPILE-FILE on that, however, it feels like a suboptimal solution.
Perhaps there's no portable way of doing that, but I would be happy with implementation-specific code, and the temporary file hack as a fallback.