Gloat: Q2 Grant Halfway Report

tosh1 pts0 comments

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&para;

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&para;

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&para;

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&para;

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...

gloat repl glojure clojure grant compatibility

Related Articles