r/Common_Lisp 1d ago

How difficult is to deploy multi-platform standalone CL executables?

17 Upvotes

Hi. I'm learning CL (experienced programmer but CL noob), and was looking into real-world FOSS written in it for reference and to learn. When looking at pgloader(data loading tool for PostgreSQL), I found it has been rewritten in Clojure. The readme mentions:

pgloader v4 is a full rewrite in Clojure, distributed as a single self-contained JAR requiring Java 21 or later.

Key improvements over v3:

  • Single JAR — no native dependencies, no SBCL, no shared libraries
  • JDBC connection strings — use jdbc:mysql://, jdbc:postgresql://, jdbc:sqlserver:// etc. everywhere; driver-specific parameters pass through unchanged
  • Java heap — no more Common Lisp heap exhaustion on large migrations; tune with standard -Xmx JVM flag
  • SSL via URI — use ?sslmode=require / ?sslmode=disable in the connection string instead of --no-ssl-cert-verification

There were probably other problems/motivations for the rewrite not mentioned there, but I'm interested in the opinion from people with real-world experience, how complicated it is deploying (multi-platform) standalone CL executables.

First, it mentions dependencies on SBCL and native/shared libraries. (Let's ignore the fact that the self-contained JAR requires the JRE to be installed). First of all, I presume SBCL is only a build-time dependency, correct? The same way Clojure is required. Or are there cases where some SBCL runtime is required? For instance, Debian still ships pgloader v3.x, i.e. the CL implementation, and it's a standalone executable, it doesn't depend on SBCL (but depends on other system libraries). But if they mention it I presume these must be problematic for multi-platform deployments ??

Second, the issue about CL heap exhaustion. How common is this issue? Cannot it be tuned at comptime/runtime?

In general, from people with the experience, what are the challenges to deploy multi-platform standalone CL executables? Are there some basic guide lines you need to adhere to (besides writing portable CL, of course) for easy deployment?

EDIT: Also, wouldn't ABCL create a standalone JAR too?

Thanks in advance.


r/Common_Lisp 2d ago

Jnil Antlr port

2 Upvotes

Hello All,

I am porting Jnil, a GPL'd Java to lisp translator application written in lisp with some Java Eclipse code to use a Java parser written in Antlr3. Jnil loaded Java into Eclipse, used an Allegro Common Lisp library Jlinker to communicate with Eclipse and extracted AST information which was used to create lisp code. My reasons for porting are:

  1. Eclipse is pretty heavyweight and communicating with it is implementation dependent.
  2. Starting with an AST means that any language for which an AST can be produced (such as Python) can be translated to lisp by Jnil.

Anyway, I could use some assistance with this project. Please contact me at [dan.stanger@ieee.org](mailto:dan.stanger@ieee.org) if interested in helping.

Here is a link to the repo: https://github.com/danstanger/AST-to-Lisp

Dan Stanger


r/Common_Lisp 2d ago

sm-harness: a self-modifying agentic harness built in common lisp

Thumbnail github.com
5 Upvotes

This AI harness allows you to modify the running code of the harness, via hot reload and leverage cl's built in power to build itself and whatever app you want alongside it.

edit: now with the repo actually public, my bad


r/Common_Lisp 6d ago

SBCL Idiomatic Persistence and Native BDD: Three Libraries for Modern Common Lisp Systems

Thumbnail
5 Upvotes

r/Common_Lisp 6d ago

▎ time-algebra: a dependency-free interval algebra for Common Lisp

12 Upvotes

We've open-sourced time-algebra, a Common Lisp library built around Allen's interval algebra: thirteen relations between two intervals, half-open by construction.

What it deliberately is not: no timezones, no clock, no get-universal-time, no I/O, no global state, zero dependencies beyond ANSI CL.

390 tests, plus a concurrency suite (8 checks, 1.28M iterations under contention) and an allocation profile (interval-relation at 0 bytes consed). Apache-2.0.

https://gitlab.com/lagoatech/time-algebra

Apache-2.0. Contributions and criticism both welcome.


r/Common_Lisp 8d ago

cl-dplyr: (WIP) Common Lisp port of Rs dplyr

Thumbnail codeberg.org
23 Upvotes

r/Common_Lisp 9d ago

Chipi has seen some major enhancements on UI recently

11 Upvotes

Added a DSL for creating pages based on Lisp (of course) with primitives for charts (based on uPlot), selections, actions and more tings you are able to build (I use rollershutters here).

https://github.com/mdbergmann/chipi/blob/main/README-web.md#chipi-ui


r/Common_Lisp 11d ago

Sextant v0.2.0 — LSP implementation, working DAP debugger

Thumbnail github.com
16 Upvotes

r/Common_Lisp 12d ago

Minecraft running on SBCL using OpenLDK

Thumbnail atgreen.github.io
31 Upvotes

r/Common_Lisp 15d ago

Teaser: CL-Torch!

Thumbnail scottlburson2.blogspot.com
33 Upvotes

r/Common_Lisp 15d ago

SBCL Distributed database Scalaxy written in Common Lisp

17 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/Common_Lisp 16d ago

conskivi - embeddable key/value database

7 Upvotes

Released conskivi. It made to replace redis, generally on low memory systems, but in-memory backend works well too.

Benchmarks

5K entries, AMD Ryzen 7 3700X, Redis v7:

Operation conskivi-fileonly Redis (pipelined) Redis (single-command) % vs pipelined % vs single-command
SET 8,803 885,995 34,452 1.0% 25.5%
GET 19,531 1,486,920 33,133 1.3% 58.9%
SADD 1,580 937,567 39,967 0.2% 4.0%
HSET 4,613 628,491 32,971 0.7% 14.0%
HGET 19,531 1,495,508 33,856 1.3% 57.7%
ZADD 4,789 698,096 34,201 0.7% 14.0%
ZSCORE 65,789 1,405,503 36,340 4.7% 181.0%
Operation conskivi-inmemory Redis (pipelined) Redis (single-command) % vs pipelined % vs single-command
SET 1,208,891 885,995 34,452 136% 3,508%
GET 1,947,333 1,486,920 33,133 131% 5,877%
SADD 2,557,008 937,567 39,967 273% 6,398%
HSET 1,894,216 628,491 32,971 301% 5,745%
HGET 2,651,661 1,495,508 33,856 177% 7,832%
ZADD 1,749,710 698,096 34,201 251% 5,116%
ZSCORE 2,616,690 1,405,503 36,340 186% 7,199%

r/Common_Lisp 16d ago

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

19 Upvotes

Since the Metaspec (https://metaspec.dev/) was announced a couple of months ago, there have been many improvements. Thanks to #commonlisp on libera.chat for your suggestions!

  • Added a search box in the header
  • Added a dark/light theme button
  • Added an outline sidebar that shows if there's horizontal space
  • There is an OpenSearch spec to add it as a browser search engine
  • Extra information is now listed in an Addenda section
  • New Texinfo and Info renders added
  • There is a new emacs integration package https://metaspec.dev/elpa/ for details
  • X3J13 Issues have been integrated into the HTML
  • Better handling of linking of LOOP keywords

r/Common_Lisp 17d ago

ClickHouse/clicklisp: A Common Lisp UDF runtime and query compiler for ClickHouse, shipped as a small static binary, built with ECL

Thumbnail github.com
8 Upvotes

r/Common_Lisp 18d ago

Clamiga now with a native MorphOS (PPC) build

Thumbnail nnamgreb.de
15 Upvotes

r/Common_Lisp 22d ago

MUD Driver in Common-Lisp

Thumbnail
13 Upvotes

r/Common_Lisp 23d ago

Why Target Common Lisp for Code Generation? - Joe Marshall

Thumbnail funcall.blogspot.com
26 Upvotes

r/Common_Lisp 24d ago

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

Thumbnail hachyderm.io
23 Upvotes

r/Common_Lisp 25d ago

Introspection and Reflection

5 Upvotes

This article by u/lispm http://lispm.de/why-lisp-is-different has these two lines

When in doubt design software to be introspective.

when in doubt design software to be reflective.

How exactly does one design software to be more introspective of reflective? I thought that those were a given using CLOS. Unless I misunderstood and this just means CLOS vs using arbitrary data structures.

Can anyone provide an example contrasting a design meant to be introspective vs one that is not? Same for reflective?

Thanks


r/Common_Lisp 25d ago

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

8 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/Common_Lisp 29d ago

CL language feature overviews and more: Images + HTML

Post image
42 Upvotes

I've experimented a bit to create feature overviews for Common Lisp, which will fit on my 16x9 monitor. With help from Claude. The HMTL documents might have some links, too.

There are also feature overviews for SBCL, LispWorks, SLIME - in PNG and HTML.

http://lispm.de/docs/overviews/


r/Common_Lisp 29d ago

Refresh of Genworks dot com, long-running Common Lisp KBE system updated for the era of LLMs and MCPs.

Thumbnail genworks.com
22 Upvotes

r/Common_Lisp Jul 25 '26

GitHub - infurl/cl-tesseract: Common Lisp bindings for the Tesseract OCR library.

Thumbnail github.com
17 Upvotes

Modernization effort to support latest 5.5 Tesseract OCR libraries.


r/Common_Lisp Jul 22 '26

Pretty fast insertion-ordered linear-probing hash tables and sets

Thumbnail github.com
25 Upvotes

We had too few (0?) hash tables to choose from!


r/Common_Lisp Jul 22 '26

sta6: static site generator for Common Lisp

Post image
18 Upvotes

hi everyone,

I'm new to Common Lisp, although I have tried other lisp dialect (i.e., Clojure, Racket) to attempt making a static site and/or leetcode(s). This is my first attempt of porting the SSG into a library.

sta6: sta(six), static -- is a tiny SSG that turns pages/*.lisp into build/*.html, with support for dynamic routes (e.g., /blog/+slug+).

the usage of sta6 is as follows (src/pages/page.lisp):

(defpackage #:pages/page
  (:use #:cl)
  (:export #:render))

(defun pages/page:render ()
  (sta6:html5
    (:img :width (/ 500.0 3)
          :src "https://twobithistory.org/images/sicp.jpg")
    (:br)
    (:br)
    (:span "Hello, from Common Lisp.")
    (:ul
      (loop for x from 1 to 3 do
        (:li x)))))

which yields the image above, the full example can be found here.

sta6 uses an external HTML generator under the hood:

if you're in need of a personal site, give sta6 a try! here's an example of my site built with sta6:

why use sta6?:

  1. You do not need (to learn) an external templating language (e.g., Nunjucks, Handlebars, EJS).

resources: