What a wonderful excuse to dive back into Clojure! This looks fantastic. I wonder what neat stuff might be made in Clojure thanks to a C FFI that wasn’t doable on top of the JVM.
pjmlp 2 hours ago [-]
Note that nowadays with Panama, there are more FFI opportunities in JVM implementations as well.
Although it is rather verbose, and it is easier to have a C header and run jextract on it, instead of the manual boilerplate.
I understand some don’t like having a JVM, but for running in the browser, what does Jolt on Gambit offer over plain ClojureScript?
pmkary 2 hours ago [-]
How many years have it been there? My memory reminds me of Jolt but I very hardly remember what was it, all I remember is that it was a LISP.
taolson 2 hours ago [-]
You're probably thinking of Ian Piumarta's COLA project (Combined Object Lambda Architecture), which had parts named after cola soft-drinks (Coke was a lisp-like language, Pepsi was a Smalltalk-like language, and Jolt was an early implementation of Coke):
Author here, glad to answer any questions about Jolt.
iainctduncan 29 minutes ago [-]
Congrats, this is awesome! I have followed your writing and have your book, so was excited to see this was you.
I have one question, can one drop into Scheme the way one can call Java in clojure, or is one totally firewalled from the underlying Scheme implementation?
Great to see Gambit getting love to. Gambit and Chez are amazing achievements.
micro2588 3 hours ago [-]
Awesome work, have you looked into using Racket's fork of Chez? It supports some additional extensions and architectures from base Chez that would seem to beneficial as a compiler target, at least that was the case a couple years ago.
yogthos 2 hours ago [-]
Thanks, and I have good news on that front actually. I recently factored out a portable Scheme layer and got Jolt to compile against Gambit as a backend. And given that Racket is basically an extension of Chez, it should be trivial to build against it now.
Really cool, I see now that most all the the Racket extensions to Chez have been up-streamed which is positive for the health of both projects.
yogthos 2 hours ago [-]
Indeed, it's a nice ecosystem to be part of. :)
tosh 3 hours ago [-]
it's good to have even more (and more slim!) ways to run Clojure
(not just JVM and JavaScript runtimes)
pjmlp 2 hours ago [-]
Nice to see further adoption from Chez Scheme.
Have to give it a try.
mark_l_watson 3 days ago [-]
I just saw this - works great to build small self contained apps. (I just tested on macOS, also supports Linux).
mark_l_watson 3 days ago [-]
Clojure hosted on Chez Scheme (same as Racket). So cool. I tried building a standalone executable for the Chess game in my Clojure book using "jolt build -m chess-game.cli -o chess_jolt" and it simply worked great.
I tried again with a datomic demo and it needed the source code to the open source version of datomic, so I need to do some work on that.
eggy 3 hours ago [-]
Curious about the executable size and performance. Mark, you started me on AI with your, "Common LISP Modules: Artificial Intelligence in the Era of Neural Networks and Chaos Theory". I have never been able to fully leave Lisp behind. I'll have to try this on my linux box. What's your take on using jolt practically for work vs. learning? Thanks!
What does this have to do with Jolt, the Clojure compiler other than in name? Is there a port to Clojure or other connection?
Ohentis 3 hours ago [-]
I think the name being the same is worth bringing up. Ideally you would avoid name collisions with big projects but admittedly it does happen all the time.
pjmlp 2 hours ago [-]
There are other collisions, like Jolt computer, Dr Dobbs Jolt awards.
However to be fair, none of it came to mind when I saw the title.
How much "production ready" / "battle tested" would this be ?
(Not to start a flame war, I'm genuinely curious about the differences.)
[1] https://github.com/jank-lang/jank
Although it is rather verbose, and it is easier to have a C header and run jextract on it, instead of the manual boilerplate.
No idea how well AI tooling would manage.
For example look at this arc from sqlite4clj https://github.com/andersmurphy/sqlite4clj/blob/master/src/s... it's very elegant.
(Also can plug my own libvips wrapper using coffi https://github.com/outskirtslabs/vips)
Using FFI/FFM "vanilla" with java interop is also viable, and in my experience the SOTA models do just fine with it (with or without jextract).
https://janet-lang.org/
https://www.piumarta.com/software/cola/
I have one question, can one drop into Scheme the way one can call Java in clojure, or is one totally firewalled from the underlying Scheme implementation?
Great to see Gambit getting love to. Gambit and Chez are amazing achievements.
I wrote up a post on how this works here https://yogthos.net/posts/2026-08-07-portable-jolt.html
(not just JVM and JavaScript runtimes)
Have to give it a try.
I tried again with a datomic demo and it needed the source code to the open source version of datomic, so I need to do some work on that.
However to be fair, none of it came to mind when I saw the title.