Home InternationalClojure 1.12.0-alpha12...
International⭐ Featured

Clojure 1.12.0-alpha12

Clojure 1.12.0-alpha12 is now available! Find download and usage information on the Downloads page. Functional interfaces Java programs define "functions" with Java functional interfaces (marked with the @FunctionalInterface annotation), which have a single method. Clojure developers can now invoke Java methods taking functional interfaces by passing functions with matching arity. The Clojure compiler implicitly converts Clojure functions to the required functional interface by constructing a lambda adapter. You can explicitly coerce a Clojure function to a functional interface by hinting the binding name in a let binding, e.g. to avoid repeated adapter construction in a loop. See: CLJ-2799 Other changes Added: CLJ-2717 - nthrest now returns rest output on n=0 or past end of seq CLJ-2852 - Updated all deps, test deps, and plugin versions to latest Reverted: CLJ-2803 - #inst printer - no longer uses a ThreadLocal formatter

6 April 2026 at 07:58 pm
1 views
Clojure 1.12.0-alpha12

Clojure 1.12.0-alpha12 has been released, bringing new features and improvements to the popular functional programming language. Developers can now access the latest version from the Downloads page, where detailed instructions and download links are provided. This release introduces several key enhancements, particularly in how Clojure interacts with Java functional interfaces.

Java programs often define "functions" using functional interfaces, which are Java interfaces annotated with @FunctionalInterface and have a single abstract method. With Clojure 1.12.0-alpha12, developers can now invoke Java methods that accept functional interfaces by passing Clojure functions with the appropriate arity. The Clojure compiler automatically converts Clojure functions to the required functional interface by constructing a lambda adapter. This means that Clojure code can seamlessly integrate with Java libraries that use functional interfaces, eliminating the need for manual adapter implementations.

In addition to this implicit conversion, the release provides an explicit coercion mechanism. Developers can hint the binding name in a let binding to coerce a Clojure function directly to a functional interface. This feature is particularly useful in scenarios where repeated adapter construction might be inefficient, such as within loops or recursive functions. By explicitly coercing the function, Clojure programmers can optimize performance and reduce boilerplate code.

Beyond the Java interoperability improvements, Clojure 1.12.0-alpha12 includes several other noteworthy changes. The nthrest function has been updated to return the rest of the sequence when the input index is 0 or beyond the end of the sequence. This modification, tracked as CLJ-2717, ensures that nthrest behaves consistently and predictably in edge cases.

Furthermore, the release updates all dependencies, test dependencies, and plugins to their latest versions, as part of CLJ-2852. This ensures that Clojure remains compatible with the latest Java versions and leverages the most recent improvements in its underlying libraries.

One change that stands out is the reversion of CLJ-2803, which affects the #inst printer. In previous versions, the printer used a ThreadLocal formatter to handle date and time formatting. However, in Clojure 1.12.0-alpha12, this behavior has been reverted, and the #inst printer no longer employs a ThreadLocal formatter. This change is likely aimed at simplifying the implementation and improving thread safety.

In summary, Clojure 1.12.0-alpha12 offers significant enhancements in Java interoperability, making it easier for Clojure developers to work with functional interfaces. The explicit coercion feature and updated nthrest behavior are welcome additions that improve both performance and code clarity. Additionally, the release updates dependencies and reverts a change related to the #inst printer, ensuring compatibility and stability. As always, the Clojure team continues to refine the language and address user feedback, solidifying its position as a powerful and versatile tool for functional programming.

Source: Clojure News
📰 Related News
Ollama 0.2.6 Released with Native Gemma 4 Support and Enhanced Performance
Ollama 0.2.6 Released with Native Gemma 4 Support and Enhanced Performance
Ollama 0.2.6 is now live, featuring native support for Google's Gemma 4 models and improved local inference performance for Windows, macOS, and Linux.
14 Apr
Weekly news roundup: Shortages spread to MLCCs; SK Hynix reportedly in talks with Microsoft and Google
Weekly news roundup: Shortages spread to MLCCs; SK Hynix reportedly in talks with Microsoft and Google
Below are the most-read DIGITIMES Asia stories from the week of April 6-April 13, 2026:
14 Apr
cutile-stencil 0.2.0
cutile-stencil 0.2.0
An xDSL-based stencil compiler that generates optimized GPU kernels via NVIDIA cuTile
14 Apr
merlin-llm added to PyPI
merlin-llm added to PyPI
Merlin — a fast local LLM for agentic coding on Apple Silicon
14 Apr
Fluent Cut - Craft and compose videos programmatically in PHP with an elegant fluent API
Fluent Cut - Craft and compose videos programmatically in PHP with an elegant fluent API
Craft and compose videos programmatically in PHP with an elegant fluent API - b7s/fluentcut
14 Apr
Crypto Investor at Center of Trump Corruption Allegations Now Sees Himself as ‘Victim’
Crypto Investor at Center of Trump Corruption Allegations Now Sees Himself as ‘Victim’
Justin Sun has accused Trump-affiliated World Liberty Financial of misconduct and a general lack of transparency.
14 Apr
nvidia-nat-weave 1.7.0a20260413
nvidia-nat-weave 1.7.0a20260413
Subpackage for Weave integration in NeMo Agent Toolkit
14 Apr
nvidia-nat-s3 1.7.0a20260413
nvidia-nat-s3 1.7.0a20260413
Subpackage for S3-compatible integration in NeMo Agent Toolkit
14 Apr
Social Security Trust Fund to Run Dry in 2032: Just 6 Years From Now
Social Security Trust Fund to Run Dry in 2032: Just 6 Years From Now
Six years. That is how much time separates retirees from a Social Security system that, by its own projections, runs out of money. If you are 56 years old...
14 Apr
cane-gpu-perf added to PyPI
cane-gpu-perf added to PyPI
GPU inference benchmarking with opinionated diagnostics
13 Apr