Annually-Funded Developers' Update: Jan./Feb. 2025

By Kathy Davis

Hello Fellow Clojurists! This is the first report from the 5 developers receivng Annual Funding in 2025. (Highlights listed on the list below - but the reports include much more).

Dragan Duric: Apple M Engine Neanderthal
Eric Dallo: lsp-intellij, repl-intellij. lsp, lsp4clj
Michiel Borkent: clj-kondo, squint, babashka, fs, SCI, and more…
Peter Taoussanis: Truss v2, Telemere v1 RC3
Oleksandr Yakushev: CIDER, clj-async-profiler and Flamebin, clj-memory-meter

Dragan Duric

2025 Annual Funding Report 1. Published February 27, 2025.

My goal with this funding in 2025 is to support Apple silicon (M cpus) in Neanderthal (and other Uncomplicate libraries where that makes sense and where it’s possible).

In January and February, I released the first version of Neanderhal that can run on Mac/Apple M!

My grant proposal: Here’s what I’ve proposed when applying for the CT grant.
I propose to * Implement an Apple M engine for Neanderthal.* This involves:

Projects directly involved:
https://github.com/uncomplicate/neanderthal
https://github.com/uncomplicate/deep-diamond
https://github.com/uncomplicate/clojure-cpp

First, I set to the task of tidying up the existing versions of Uncomplicate libraries (Neanderthal, Deep Diamond, etc.) to bring them up with the latest versions of native libraries, cuda, etc., and to fix some outstanding issues/bugs that might complicate work on Apple M support. After that, it was time for the main task, the beginnings of Apple M support.

The plan was to buy an Apple M2/M3, but in the meantime the nice Clojurians from Prague donated a used (but fantastically beefed up) MacBook Pro Max M1, so this was covered quickly!

I explored OpenBLAS as the first choice (the other is Apple Accelerate), as it can also work on Linux and Windows, and could be immediately beneficial to all users and easier to start with (I didn’t need to switch to Apple yet).

I implemented the OpenBLAS engine for the part of functionality that was supported by JavaCPP’s openblas preset. A lot of critical functionality was not present there (although some of it was there in the openblas itself), so I jumped at the opportunity to learn some JavaCPP preset building, and improved JavaCPP’s OpenBLAS. After a bit of experimentation and lot of waiting on the compiler and github tools, this is now contributed upstream.

Next, I returned to the pleasant part of work - programming in Clojure - and completed the first Neanderthal engine that runs in Apple M Macs. This covers the core and linalg namespace, because this is what OpenBLAS covers. The rest of Neanderthal functionality is waiting for me to explore Apple Accelerate, and to create engine based on that.

I managed to release Neanderthal 0.53.2, which enables Clojurians to use this on their Macs, just in time for this report.

I hope they’ll have immediate benefits, and have fun doing some high performance hacking on their Macs.

Many thanks for CT for sponsoring this work!


Eric Dallo

2025 Annual Funding Report 1. Published February 27, 2025.

In the first two months of sponsorship I could work on so many things related to IDE development which made me really glad of this sponsorship! :heart:

I spend most of the time improving the Clojure development on IntelliJ, improving both clojure-lsp-intellij and clojure-repl-intellij plugins releasing 2 major extremally important versions. The IntelliJ Clojure development using those plugins are way better and mature, please test and give feedback!

clojure-lsp-intellij

The 3.0.0 major version was a refactor on most of the plugin to use lsp4ij, an OSS plugin for IntelliJ which makes easier to code and use LSP features, so this integration removed tons of code from this plugin that I needed to implement manually (and some had some bugs) and added support for lots of missing features that I didn’t even plan to add. The lsp4ij plugin is used by multiple languages already which makes this plugin more resilient and stable. Check it out the call hieararchy feature on the image.
call-hierarchy dallo feb 2025

Kudos to @angelozerr for the help during lsp4ij integration on their side.

3.0.0 - 3.1.0

clojure-repl-intellij

This 2.0.0 major release included multiple fixes and new features like the new _Inlay hint eval result + _REPL syntax coloring.

clojure-repl-intellij dallo feb 2025

Kudos to @afucher for the help on some of those features.

2.0.0 - 2.2.0

clojure-lsp

clojure-lsp is the base for all Clojure language handle logic and analysis, so lots of fixes and improvements are made all the time.

2025.01.22-23.28.23 - 2025.02.07-16.11.24

lsp4clj

lsp4lj is the base of clojure-lsp, it’s the layer that has all the LSP communication layer, making easy to build LSP clients/servers of any language in Clojure.

v1.11.0

clj4intellij

clj4intellij is a lib that makes possible to code IntelliJ plugins in Clojure, it’s used by both clojure-lsp-intellij and clojure-repl-intellij plugins.

0.6.0 - 0.6.3


Michiel Borkent

2025 Annual Funding Report 1. Published February 28, 2025.

Sponsors

I’d like to thank all the sponsors and contributors that make this work possible. Without you, the below projects would not be as mature or wouldn’t exist or be maintained at all. Top sponsors:

If you want to ensure that the projects I work on are sustainably maintained, you can sponsor this work in the following ways. Thank you!

If you’re used to sponsoring through some other means which isn’t listed above, please get in touch. Thank you! On to the projects that I’ve been working on!

As I’m writing this I’m still recovering from a flu that has kept me bedridden for a good few days, but I’m starting to feel better now. Here are updates about the projects/libraries I’ve worked on in the last two months.
As I’m writing this I’m still recovering from a flu that has kept me bedridden for a good few days, but I’m starting to feel better now.

Here are updates about the projects/libraries I’ve worked on in the last two months.

Other projects I’ve been working on this month. See Click for More Details.


Peter Taoussanis

2025 Annual Funding Report 1. Published February 27, 2025.

A big thanks to Clojurists Together, Nubank, and other sponsors of my open source work! I realise that it’s a tough time for a lot of folks and businesses lately, and that sponsorships aren’t always easy 🙏
- Peter Taoussanis

Hi everyone! 👋

I’ve been focused recently on getting Telemere v1 over the finish line. That’s been a lot of ongoing work, in part because I’m trying to establish patterns that can be easily shared between a suite of complementary libs (Telemere, Tufte, and Truss).

I’ve also been considering long-term plans for how to better modularize Encore to help reduce dependency and build sizes where relevant. More on that later in the year.

Truss v2 - an opinionated micro toolkit for Clj/s errors

I’ve recently released Truss v2, which has enlarged the scope of the library from just assertion utils to a general error toolkit for Clojure and ClojureScript.

v2 includes:

Telemere v1 RC3 - structured logging and telemetry for Clj/s

I was hoping to release Telemere v1 final this month, but decided that a third release candidate was warranted.

The latest improvements are focused on harmonizing relevant terminology, concepts, and API between Telemere, Truss, and the forthcoming v3 of Tufte.

Big thanks to everyone that’s been helping test and give feedback! v1 final really should (finally) be available next month 🙏

Upcoming work

The next major release planned is Tufte v3. I’ve already got an early draft prepared, but there’s polish needed - and new docs.

v3 improves performance and significantly improves interop with Telemere, offering what I believe to be a pretty compelling combination for Clojure/Script observability and monitoring.

For plans after that, you can see my 2025 roadmap), which as usual I’ll keep updated along the way 👍

Cheers everyone! :-)


Oleksandr Yakushev

2025 Annual Funding Report 1. Published February 28, 2025.

Hello friends! Here’s a short summary of my January-February Clojurists Together 2025 sponsorship work.

CIDER

clj-async-profiler and Flamebin

clj-memory-meter

Misc projects