Clojure
Share your thoughts in the 2024 State of Clojure Survey!
Clojure Deref (June 30, 2023)

Clojure Deref (June 30, 2023)

30 June 2023
Alex Miller

Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem. (@ClojureDeref RSS)

From the core

This week we released Clojure 1.12.0-alpha4 which is mostly bug fixes to previously released 1.12.0-alpha features (mainly IDrop, add-lib, and clojure.java.process). We really appreciate all the feedback and bug reports on those things. In particular, one of the IDrop fixes this week was the result of tracking down a somewhat obscure crash with Sean Corfield - he patiently ran a lot of stuff and provided some key insight near the end as we tracked down the difference, which had to do with partition on non-integers! Anyways, that’s fixed. The add-libs and related changes cover some important ground too, but make sure that you are using the latest Clojure CLI - that is required for add-lib to work.

Work continues this week on functional interface adapters. We ran into a bit of a corner and took a step back to think a bit more broadly about what would be useful which redirect us slightly, still puzzling through that. I also did a bit more exploratory work on varargs support, and Fogus continues to work on the ability to use Java methods as IFns - we are trying to be careful there in combination with the functional interface adapter work so we don’t end up taking a Java functional interface, wrapping it as an IFn, and then adapting it back to the functional interface - we think we have a strategy to do that.

And as always, big thanks to Anton Fonarev for all the assistance on link aggregation!

Blogs, articles, and projects

Libraries and Tools

New releases and tools this week:

  • martian 0.1.24 - The HTTP abstraction library for Clojure/script, supporting OpenAPI, Swagger, Schema, re-frame and more

  • re-dash 0.3.0 - A ClojureDart (re)framework for building user interfaces, leveraging Flutter

  • calva 2.0.374 - Clojure & ClojureScript Interactive Programming for VS Code

  • lacinia-pedestal 1.2 - Expose Lacinia GraphQL as Pedestal endpoints

  • lang-clojure-eval 0.0.17 - Clojure plugin for Codemirror 6 with live inline evaluation

  • robot 0.3.1 - Clojure wrapper to simplify writing desktop scripts with java.awt Robot and Clipboard

  • emmy-viewers 0.1.0 - High-performance symbolic, 2D and 3D visual extensions to the Emmy computer algebra system

  • simple-http-server - A simple http server implemented as thin Clojure wrapper around SimpleWebServer from JEP 408 for JDK 18+

  • sci 0.8.40 - Configurable Clojure/Script interpreter suitable for scripting and Clojure DSLs

  • REPLey - A web REPL made with Ripley

  • clong 1.0 - A wrapper for libclang and a generator that can turn c header files into clojure apis

  • pretty 2.0-beta-1 - Library for helping print things prettily, in Clojure - ANSI fonts, formatted exceptions

  • aleph 0.6.3 - Asynchronous communication for Clojure

  • next-jdbc 1.3.883 - A modern low-level Clojure wrapper for JDBC-based access to databases

  • honeysql 2.4.1045 - Turn Clojure data structures into SQL

  • fulcro 3.6.6 - A library for development of single-page full-stack web applications in clj/cljs

  • fulcro-rad 1.5.2 - Fulcro Rapid Application Development

  • clj-graphviz 0.5.1 - A clojure wrapper for the libgraphviz c libraries