Clojure
Clojure Deref (Jan 12, 2024)

Clojure Deref (Jan 12, 2024)

12 January 2024
Alex Miller

Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem (feed: RSS). Thanks to Anton Fonarev for link aggregation.

From the core

We have been diligently working through screening feedback on several 1.12 features, and that has led us into a few modifications in plans and scope:

  • Class array literals - after some further contemplation, we’ve switched back from String-* to String* syntax for class array literals (namespaced vars that happen to have overlapping names will continue to take precedence). We’ve also added resolution of class array literals from import mappings in syntax quote.

  • :arg-tags - renaming to :param-tags as it’s really about the signature types, not the argument types

  • Qualified instance methods - overhauled and simplified to "uniform Classname/member syntax" - this has always been supported for static fields (in value position) and static methods (in invocation position), but we are going to expand the semantics of what’s allowed here to also support instance methods and constructors (with Classname/new). There is then one syntax for all uses of qualified members, and :param-tags will only be used on this syntax. There are some interesting little implementation puzzles in the compiler, still working through those.

Hoping to get these changes locked down soon for an alpha.

Libraries and Tools

New releases and tools this week:

  • nvd-clojure 4.0.0 - National Vulnerability Database dependency checker for Clojure projects

  • cljfx 1.8.0 - Declarative, functional and extensible wrapper of JavaFX inspired by better parts of react and re-frame

  • babashka 1.3.187 - Native, fast starting Clojure interpreter for scripting

  • clj-watson 5.0.1 - clojure deps SCA

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

  • clojure-repl-intellij 0.1.3 - Free OpenSource IntelliJ plugin for Clojure REPL development

  • deps.clj 1.11.1.1435 - A faithful port of the clojure CLI bash script to Clojure

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

  • fulcro-rad 1.6.0 - Fulcro Rapid Application Development

  • statecharts 1.1.6 - A Statechart library for CLJ(S)

  • reveal 1.3.282 - Reveal: Read Eval Visualize Loop for Clojure

  • ring-jetty9-adapter 0.31.0 - An enhanced version of jetty adapter for ring, with additional features like websockets, http/2 and http/3