Gloat Q2 Grant Halfway Report - GloatHub
Skip to content
Initializing search
gloathub/gloat
Examples
Blog
Projects
Gloat Q2 Grant Halfway Report
We are halfway through the Q2 2026 Clojurists Together funding cycle, so this is a good time to<br>report what has been done for Gloat and<br>Glojure.
The grant officially started on May 1, but since I had learned that it was<br>accepted a couple weeks earlier, I got too excited and decided to start working<br>on it immediately.<br>I was able to quickly get Glojure to pass<br>the entire Clojure Compatibility Test Suite;<br>except for 9 tests that are skipped as being not feasible.<br>That gave Gloat a much stronger base to build on.
Since the start of the grant period, Gloat and Glojure have had over 20<br>releases, with Gloat moving from v0.1.26 to<br>v0.1.50.<br>The Glojure work was all being done on the long running fork<br>gloathub/glojure, but I'm thrilled to<br>announce that as of today, the work has been fully moved back to the upstream<br>glojurelang/glojure and will<br>continue to be maintained and released from there.
My overall ambition for Gloat is to have Clojure be as full featured and<br>prominent to Go programming as it is to Java.<br>The industry is crazy about Go.<br>Let's get it crazy about Clojure.
Furthermore, given that Go cross-compiles to almost everywhere, I am bullish on<br>Gloat being a serious alternative to GraalVM's native-image compiler.<br>An alternative with fast compilation, expansive compilation targets (including<br>WebAssembly) and completely open source licensing.
The Goals¶
In the funding announcement post I listed three main goals:
Smaller, faster binaries.
Pass the Clojure Compatibility Test Suite (CCTS).
Tutorial docs.
The CCTS goal landed early, just before the official grant start.<br>That did not mean compatibility was finished, but it meant the core language<br>was good enough to shift attention toward real-world use: interop, REPLs,<br>dependencies, docs, examples, and the missing pieces that appear when you stop<br>testing toy programs and start trying to use the system.
The short version: the first half of the grant has been mostly about making<br>Gloat usable and explainable.
Glojure Passed the Compatibility Test Suite¶
The most important foundation work happened in April: the Gloat/Glojure stack<br>got to the point where Glojure passed Jank's Clojure compatibility test suite.
For Gloat, that matters because Gloat is not trying to invent a new language.<br>The point is to take normal Clojure source, route it through Glojure and Go,<br>and end up with Go source, native binaries, Wasm modules, or shared libraries.<br>Every compatibility test that passes is one less place where user code can<br>surprise us later.
After that milestone, I added a report page<br>to the Gloat site so the compatibility state is easier to see for yourself.
The REPL Became a Real Tool¶
The most visible work this period was the REPL.
At the beginning of the cycle, Gloat was mostly an ahead-of-time compiler.<br>You pointed it at source code and got output.<br>That is still the center of the project, but a serious language tool needs an<br>interactive story too.
The Glojure glj binary already had a working CLI REPL, but I really wanted<br>to push Gloat's CLI REPL beyond anything I'd seen to date (in any language).
gloat --repl now starts a REPL CLI with:
Syntax highlighting w/ rainbow parens
Multiline editing and history
Auto-indent
Namespace-aware tab completion
Toggle vi/emacs readline behavior
Persistent history with multiline selection
Inline help
Better startup information
nREPL support
Socket REPL support
Editor integration
I also added client modes so Gloat can connect to other Clojure-family REPLs.<br>For example, gloat --repl=+bb, gloat --repl=+clj, and<br>gloat --repl=+let-go all use the same general idea: install the requested<br>tool if needed, start it in repl server mode and connect with Gloat's fancy UX.
You can also connect to any existing Clojure REPL with gloat --repl=12345 or<br>gloat --repl=.port-file.
This work was partly for Gloat itself and partly for comparison.<br>When you are building a Clojure implementation, it is extremely useful to be<br>able to jump between Clojure,<br>Babashka, Glojure,<br>let-go, and other dialects quickly.
I'm super proud of how far this CLI REPL has come so far.<br>I hope you take some time to kick the tires and take it for a test drive.<br>Let me know what you think!
Browser REPL¶
The REPL work also produced a browser REPL.
The Gloat website now has a Glojure REPL page<br>backed by a WebAssembly build of Glojure.<br>It has syntax highlighting, multiline input handling, toolbar controls, rainbow<br>brackets, and shareable sessions.
That matters for two reasons.
First, it makes the project easier to try.<br>People can evaluate Glojure in the browser without installing Go, Glojure,<br>Gloat, Java, or anything else.
Second, it proves out one of the promises of the stack: Clojure code can travel<br>through Glojure and Go into Wasm.<br>The demo is not just a toy on the side; it...