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, bringing a series of improvements and bug fixes to the popular functional programming language. Developers can now access the latest version on the Downloads page, where detailed instructions and the binary files are available. This release focuses on refining the language's functionality and addressing specific issues that were reported since the initial release of Clojure 1.12.
One of the key changes in this update is the reversion of a change in the semantics of qualified symbols in the invocation position. Specifically, when a field and a method of the same name exist, the qualified symbol's behavior has been adjusted to ensure consistency and prevent unexpected behavior. This change, documented as CLJ-2899, aims to resolve ambiguity and improve the overall reliability of Clojure code.
Another significant improvement is the fix for an issue related to objects that implement both the IFn and FunctionalInterface interfaces. In previous versions, such objects were unnecessarily converted to FunctionalInterface types, which could lead to unexpected type conversions and potential bugs. With the introduction of CLJ-2898, this conversion is now avoided, ensuring that objects retain their original types and preventing unintended side effects.
Clojure 1.12.1 also addresses a limitation in the `gen-class` function, which did not support the new array class symbol syntax. This update, identified as CLJ-2888, ensures that developers can now utilize the updated syntax for array classes when generating Java classes from Clojure code. This enhancement simplifies the process of working with Java interoperability and allows for more seamless integration between Clojure and Java projects.
In addition to these changes, the `add-libs` function has been modified to send only the procurer keys to the tool invocation. This optimization, known as CLJ-2886, enhances the efficiency of library management in Clojure projects. By reducing the amount of data sent during tool invocations, developers can expect improved performance and reduced overhead, particularly in larger projects with numerous dependencies.
Finally, the release includes the addition of missing `:added` metadata to functions introduced in Clojure 1.12. This update, documented as CLJ-2906, ensures that users have clear and accurate information about which functions were added in the 1.12 version, making it easier to track changes and understand the evolution of the language.
Overall, Clojure 1.12.1 represents a significant step forward in refining the language's functionality and addressing critical issues. With these improvements, developers can now benefit from a more reliable, efficient, and user-friendly Clojure experience. As always, the Clojure team continues to prioritize community feedback and collaboration, ensuring that the language remains a powerful and versatile tool for developers worldwide.










