Home InternationalClojure 1.12.0-alpha6...
International⭐ Featured

Clojure 1.12.0-alpha6

Clojure 1.12.0-alpha6 is now available! Please read the release notes below. Clojure is a hosted language and fully embraces that host including the Java Virtual Machine, the JDK (Java Development Kit), and interop with Java APIs. Over the last decade, all of these have seen significant evolution and Java APIs are increasingly using recent Java features like streams, functional interfaces, and lambdas. Clojure 1.12 delivers significant enhancements to Java interop focusing on three main areas: Method values Functional interfaces Streams Method values Clojure programmers often want to use Java methods in higher-order functions (e.g. passing a Java method to map ). Until now, this has required programmers to manually wrap methods in functions. This is verbose, and might require manual hinting for overload disambiguation, or incur incidental reflection or boxing. With this release, programmers can now use Java qualified method symbols as ordinary functions in value contexts - the compiler will automatically generate the wrapping function. Method symbols signifying values must resolve to a single method at compile time, using the new qualified method symbols and/or :param-tags metadata as necessary. Qualified method symbols have value semantics when used in non-invocation positions: Classname/method - value is a Clojure function that invokes a static or instance method Classname/new - value is a Clojure function that invokes a constructor See: CLJ-2793 Uniform qualified method syntax - Class/method and Class/new Java members inherently exist in a class. For methods as values we need a way to explicitly specify the class of an instance method

6 April 2026 at 08:23 pm
1 views
Clojure 1.12.0-alpha6

Clojure 1.12.0-alpha6 has been released, bringing significant enhancements to Java interop, particularly focusing on three main areas: method values, functional interfaces, and streams. As a hosted language, Clojure fully embraces its Java host, including the Java Virtual Machine, the JDK, and interop with Java APIs. Over the past decade, these components have undergone significant evolution, with Java APIs increasingly utilizing recent features such as streams, functional interfaces, and lambdas.

One of the key improvements in Clojure 1.12 is the ability to use Java qualified method symbols as ordinary functions in value contexts. Previously, Clojure programmers had to manually wrap Java methods in functions, which was verbose and could require manual overload disambiguation or lead to incidental reflection and boxing. The new release automates this process, allowing developers to use Java methods directly in higher-order functions, such as passing a Java method to the map function.

To ensure that method symbols signifying values resolve to a single method at compile time, Clojure 1.12 introduces the use of qualified method symbols and :param-tags metadata. Qualified method symbols have value semantics when used in non-invocation positions. For example, "Classname/method" represents a Clojure function that invokes a static or instance method, while "Classname/new" invokes a constructor.

The uniform qualified method syntax, as described in CLJ-2793, allows for a consistent way to specify the class of an instance method. Previously, there was no possibility for inference, necessitating explicit specification. The "Classname/method" syntax now supports both static methods and instance methods, and "Classname/new" is used for constructors, in both invocation and value positions.

Class qualifiers can be either full class names or imported "short" class names, providing flexibility for developers. This enhancement simplifies the process of working with Java APIs in Clojure, making it more efficient and reducing the need for manual wrapping and disambiguation.

In summary, Clojure 1.12.0-alpha6 introduces substantial improvements to Java interop, particularly in handling method values, functional interfaces, and streams. By allowing direct use of Java qualified method symbols as functions, the release streamlines development and leverages the evolving features of the Java ecosystem, further solidifying Clojure's integration with Java.

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