Clojure 1.12.1
Clojure 1.12.1 is now available! Find download and usage information on the Downloads page. CLJ-2899 - Revert change in semantics of qualified symbol in invocation position if field and method of same name CLJ-2898 - Objects that are both IFn and FunctionalInterface unnecessarily get converted to FI CLJ-2888 - gen-class - did not support new array class symbol syntax CLJ-2886 - add-libs - send only procurer keys to tool invocation CLJ-2906 - Add missing :added metadata to 1.12 functions

Clojure 1.12.1 has been released, offering a new set of improvements and bug fixes for developers working with the popular functional programming language. The latest version, available for download on the official Clojure Downloads page, includes several enhancements that address common issues and refine the language's functionality.
One of the key changes in Clojure 1.12.1 is the reversion of a change in the semantics of qualified symbols in the invocation position when a field and method of the same name exist. This fix, identified as CLJ-2899, ensures that the language behaves consistently with user expectations. Previously, the semantics had been altered, causing potential confusion and unexpected behavior in certain scenarios. By reverting this change, Clojure 1.12.1 restores the original intended behavior, making it easier for developers to write and understand code.
Another significant improvement is the resolution of CLJ-2898, which addresses an issue where objects that are both IFn and FunctionalInterface were unnecessarily converted to FI. This conversion could lead to unexpected type errors and complicate the use of such objects in generic code. With this fix, Clojure 1.12.1 ensures that such objects retain their original types, preventing potential issues and enhancing the overall reliability of the language.
Clojure 1.12.1 also introduces support for the new array class symbol syntax in the `gen-class` function, as part of the CLJ-2888 enhancement. This change allows developers to more easily define Java classes with array types, expanding the range of data structures that can be used in Clojure programs. The updated syntax simplifies the process of working with arrays in Java interoperability scenarios, making it more straightforward to integrate Clojure with Java libraries that rely on array types.
In addition, the `add-libs` function has been modified to send only procurer keys to tool invocation, as per the CLJ-2886 change. This optimization improves the efficiency of library management in Clojure projects, reducing the amount of data that needs to be passed between components. By sending only the necessary keys, Clojure 1.12.1 enhances performance and reduces the risk of security vulnerabilities associated with exposing sensitive information.
Finally, Clojure 1.12.1 adds missing `:added` metadata to 1.12 functions, addressing the CLJ-2906 issue. This metadata is crucial for tools and build systems that rely on accurate information about the functions available in each Clojure release. By including the missing metadata, Clojure 1.12.1 ensures that developers can easily track changes and leverage the latest features in their projects.
In summary, Clojure 1.12.1 represents a significant update that refines the language's functionality and addresses key issues reported by the community. With improvements in symbol semantics, type handling, array support, library management, and metadata, this version offers a more robust and reliable development experience for Clojure programmers. Developers are encouraged to download and explore the new features, taking advantage of the enhancements provided in Clojure 1.12.1.










