https://clojure.org/news/2026/09/30/clojure-1-13-alpha8 is now available! Details in π§΅ . If you have follow up questions or concerns, please open a new thread in #C06E3HYPR so we can keep the conversation for each question independent.
Selectors
A developer may need to apply the same key-selection logic embedded in a map destructuring form (as directives, :keys!/:syms!/:strs!/etc., nesting, etc.) against multiple maps, or want to hand that selection logic to another part of the program. Currently that logic is oriented around binding in destructuring and not for programmatic use.
This release adds a new selector macro that takes a destructuring form and returns a function that can be applied to maps:
(selector [m])
Builds a selecting-fn from m, a map destructuring form that must
include one or more of the :select, :all, :missing, and :excess
directives. The return function takes a collection, destructures it
per m, and returns a map of the result(s).
If m has exactly one directive, the result is the value that
directive would yield. If m has more than one directive, then it
returns a map of directives to values.
As in destructuring, :missing controls whether missing required keys
throw or are collected.
While a map destructuring form may and sometimes must include
bindings, selector doesn't produce bindings, thus ignoring the
associated directive names.
Throws an exception if the argument is not a map.
β’ https://clojure.atlassian.net/browse/CLJ-2979 selector
Transient map performance
This release contains many performance improvements around the use of maps, particularly transient maps, and functions like into, merge, and merge-with.
Transient array maps now grow larger before transitioning to transient hash maps (similar to recent persistent array map changes), and can be loaded significantly faster. The increased use of persistent and transient array maps will also make many more call sites inside the Clojure runtime monomorphic, encouraging greater JVM inlining. For more info see https://clojure.atlassian.net/browse/CLJ-2980.
Improvements and bug fixes
β’ https://clojure.atlassian.net/browse/CLJ-2939 QualifiedMethodExpr field overload does not propagate field type - fixed
β’ https://clojure.atlassian.net/browse/CLJ-1468 merge-deep, merge-deep-with - added recursive merge fns
β’ https://clojure.atlassian.net/browse/CLJ-2981 merge - added tests
β’ https://clojure.atlassian.net/browse/CLJ-2623 tagged literals and Java constructors - allow full unicode for first char
β’ https://clojure.atlassian.net/browse/CLJ-2623 tagged-literal equality - check tag before form for performance
β’ https://clojure.atlassian.net/browse/CLJ-2842 defn - does not needlessly initialize class when defn returns class
β’ https://clojure.atlassian.net/browse/CLJ-2896 clojure.zip/next - only call zip/up once (not 3x)
β’ https://clojure.atlassian.net/browse/CLJ-2915 ExceptionInfo - added to default imports, so no import or qualification neededayyyy you included clj-2623 and clj-2896! my patches!!!!
What a release! Special thanks for https://clojure.atlassian.net/browse/CLJ-2915!
Highlights from this release:
Interactive Repl Launcher
- Add more dialects (total of 20) with in-1 installer http://github.com/paintparty/jus/issues/21
- Navigate user back to just after repl session http://github.com/paintparty/jus/issues/17
- Hand off missing REPL installation to copyable in-1 snippets.
New Project Wizard
- Auto-navigate user to newly created project dir after successful New Project Wizard flow exits TUI http://github.com/paintparty/jus/issues/19
- Show composite path for new project location below menu list http://github.com/paintparty/jus/issues/22
Community Resources
- Add official clj Cheatsheat to community resourceshttp://github.com/paintparty/jus/issues/25
- Add various jolt and jank commons links to resources http://github.com/paintparty/jus/issues/18
UI
- Add padding block + inline padding start to all menu lists by default. http://github.com/paintparty/jus/issues/26
- Fix βdown more / up moreβ scrolling http://github.com/paintparty/jus/issues/14
CLI
- Add --version option http://github.com/paintparty/jus/issues/14
Deps
- Bump deps-new to 0.14.1. Minimum bb version for generated projects is 1.13.222. http://github.com/paintparty/jus/issues/24
Misc
- Add βAboutβ page http://github.com/paintparty/jus/issues/11
- Extract the interactive Babashka task picker into the independently installable bbtl application. http://github.com/paintparty/jus/issues/23. <br>Running jus tasks now directs the user to install bbtl:
To list and run bb.edn tasks, install bbtl:
bbin install io.github.paintparty/bbtl
Clojurists Together Foundation is pleased to announce the recipients of our Q3 2026 funding: https://www.clojuriststogether.org/news/q3-2026-funding-announcement/. $9,000 USD β’ Jeremiah Coyle: Documentation and Design Services for Key Community Projects: Malli, Squint, Flowstorm, ECA β’ Ethan Miller: Tablecloth $2,000 USD β’ John Newman: EVE (Extended Value Encoding) β’ Peter Toausannis: Finish Carmine 4 Congratulations all! We're looking forward to your project updates!