02 June 2023
Alex Miller
Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem. (@ClojureDeref RSS)
Over the course of the last few weeks, I’ve been moving all of the Clojure and contrib library continuous integration and release builds from the Clojure build box over to GitHub actions, which has been somewhat tedious, but has opened up some new opportunities for testing and automation. Ultimately I would like to move a lot of this towards tools.build and out of Maven, but one step at a time.
We did a Clojure CLI build this week that includes several important fixes that came in from the community via Ask Clojure, so thank you to everyone that is adding and voting on things there, it really does help as a central place. This release also contains some important changes to accept -X and -T args over stdin, which is groundwork for fixing some add-libs issues. We have a batch of things in the queue for another alpha soon.
I have also been working on our approach to improving functional interface Java interop. The crux of this is that when calling a Java API that accepts a functional interface argument (not just the java.util.function interfaces, but any "single abstract method" interface), wouldn’t it be nice if IFn’s could just be passed directly without needing to reify the functional interface and adapt? Sure would. We’ve looked at many possible approaches to this and are starting to prototype some primary contenders. This has also fed a lot of learning that might feed some other things we’re looking at.
Fogus has continued work on stream integration - CLJ-2775 is the first part of that, but there may be some additional work as well.
Thanks to Anton Fonarev for all the assistance on link aggregation! With me spending less time on that, I can spend more time writing status like above, so it really helps.
Clojure Goes Brrr: a quest for performance (by Oleksandr Yakushev) - London Clojurians
Clojure visual-tools meeting 18 - Mosaic and other updates - Sci Cloj
Creating static website with Clojure - Clojure Diary
Q2 2023 Funding Announcement - Clojurists Together
OpenGL example in Clojure using LWJGL version 3 - Jan Wedekind
Building Projects: tools.build and the Clojure CLI - Sean Corfield
Using extensions in ClojureDart - Etienne Théodore
Developing Clojure in Vim (2023 edition) - Nate Jones
New releases and tools this week:
tiara 0.2.1 - A small data structure library
babashka 1.3.180 - Native, fast starting Clojure interpreter for scripting
splint 1.7.0 - A Clojure linter focused on style and code shape
fulcro-rad 1.5.0 - Fulcro Rapid Application Development
cli-tools 0.7 - CLIs and subcommands for Clojure or Babashka
clj-kondo 2023.05.26 - Static analyzer and linter for Clojure code that sparks joy
clojure-ts-mode 0.1.0 - The next generation Clojure major mode for Emacs, powered by TreeSitter
fzf.clj - A small, data-driven and babashka-compatible wrapper around fzf
statecharts 1.1.0 - A Statechart library for CLJ(S)
slip 0.0.58 - A Clojure+Script micro-library for building systems of objects (IOC)
tools.gitlibs 2.5.197 - API for retrieving, caching, and programatically accessing git libraries
tools.deps 0.18.1354 - Deps as data and classpath generation
michelangelo 0.1.0 - Turtle transforming library
deps-try 0.5.0 - Try out Clojure libraries via rebel-readline
calva 2.0.367 - Clojure & ClojureScript Interactive Programming for VS Code