Home InternationalClojure 1.12.0-alpha5...
International⭐ Featured

Clojure 1.12.0-alpha5

Clojure 1.12.0-alpha5 is now available and we encourage you to try it and give us your feedback! Use locks instead of synchronized blocks around user code in lazy-seq and delay Clojure users want to use virtual threads on JDK 21. Prior to 1.12, Clojure lazy-seqs and delays, in order to enforce run-once behavior, ran user code under synchronized blocks, which don’t participate in cooperative blocking. Thus if that code did e.g. blocking I/O it would pin a real thread. JDK 21 may emit warnings for this when using -Djdk.tracePinnedThreads=full . To avoid this pinning, in 1.12 we’ve changed lazy-seqs and delay to use locks instead of synchronized blocks.

6 April 2026 at 08:44 pm
1 views
Clojure 1.12.0-alpha5

Clojure 1.12.0-alpha5 has been released, marking a significant update that introduces several improvements and changes to the language. The development team is eager for users to try out this new version and provide feedback to ensure the best possible experience. One of the key changes in this release is the shift from using synchronized blocks to locks around user code in lazy-seq and delay. This modification is aimed at addressing potential issues related to blocking I/O operations and improving compatibility with JDK 21's virtual threads.

Prior to the 1.12 release, Clojure's lazy-seq and delay constructs enforced a run-once behavior by executing user code under synchronized blocks. However, synchronized blocks do not participate in cooperative blocking, which means that if the user code performed blocking operations like I/O, it would pin a real thread. This could lead to inefficiencies and potential issues, especially with the advent of JDK 21. With the introduction of the -Djdk.tracePinnedThreads=full flag in JDK 21, warnings may be emitted for such pinned threads.

To prevent this pinning and ensure better compatibility with JDK 21's virtual threads, the Clojure team has opted to replace synchronized blocks with locks in lazy-seq and delay. This change ensures that blocking operations within these constructs do not pin real threads, thus improving overall performance and avoiding the warnings generated by JDK 21. This update is particularly important for Clojure users who plan to leverage virtual threads in their applications, as it ensures smoother integration and better performance.

The release of Clojure 1.12.0-alpha5 also highlights the ongoing commitment of the development team to refining the language and addressing user feedback. By encouraging users to try the new version and provide insights, the team aims to create a more robust and efficient Clojure ecosystem. As the alpha phase progresses, the community can expect further iterations and improvements based on the feedback received.

In conclusion, Clojure 1.12.0-alpha5 introduces a notable change by replacing synchronized blocks with locks in lazy-seq and delay, addressing potential thread-pinning issues and improving compatibility with JDK 21's virtual threads. This update underscores the language's continuous evolution and the importance of community involvement in shaping its future. As users adopt and test this new version, the Clojure community can look forward to a more efficient and robust platform for development.

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