We are proud to announce the production release ROOT 6.40.00
. Check it out on ROOT’s website and on GitHub.
The new ROOT comes with many great features that have the potential of making you even more productive - see the release notes and highlights below!
The effort made by the contributors, experiments and core developers is testified by the bug fixes and new features provided.
ROOT 6.40.00 will also soon arrive in your favorite package manager; thanks for all the packagers’ precious help in providing new versions!
As previously announced, the 6.40 cycle supersedes the STS 6.38 one. The last 6.38 patch release is scheduled for June 2026.
This release represents a massive leap toward the future of ROOT 7. We’ve unlocked game-changing capabilities, including the ability to opt-out of automatic class registration, experimental access to high-performance, multithreading-optimized histograms, and a sleek, ergonomic new file interface (RFile) designed for modern workflows.
But we didn’t stop there. We’ve streamlined the entire codebase for peak efficiency and addressed over 160 items in our trackers to ensure rock-solid stability and cutting-edge features (see the full list here). Explore the highlights below!
Opt-out of automatic class registration Break free from histograms and objects automatically attaching to the current (T)directory! Enable this game-changing capability invoking ROOT::Experimental::DisableObjectAutoRegistration(): unlock more control by exploring the documentation.
Histograms More features in the new histograms! Concurrent filling is now available, also to save memory in highly multithreaded applications. This feature is even integrated into RDataFrame: check out the tutorials!
Machine Learning The Data Loader has been reimagined as ROOT::Experimental::ML::RDataLoader! This powerful tool now performs cluster-aligned reads with a sophisticated shuffling strategy and supports multiple RDataFrames as input. Seamlessly output to NumPy, PyTorch, or TensorFlow, while leveraging new under- and oversampling support for dual-class eager loading.
I/O Experience a brand-new, streamlined HTTP I/O implementation powered by libcurl! This update delivers modern remote read capabilities, including advanced compression, secure transport, and S3 support, all across ![]()
![]()
.
RNTuple Multiple threads can share a single reader efficiently thanks to the “active entry tokens” added to the RNTupleReader: very useful for data processing frameworks!
Ready to evolve beyond TTree::Draw? We’ve provided a comprehensive Rosetta Stone to help you seamlessly transition to RDataFrame! This is the perfect path for high-performance RNTuple support or scaling your workflows across multithreaded and distributed environments.
RDataFrame analysis By streamlining the memory ownership model and implementing a sophisticated sharing mechanism, RDataFrame now minimizes redundant just-in-time compilation across computation graphs. Experience faster setup times and a significant reduction in memory footprint within a single application!
Builtins We’ve dramatically streamlined our codebase. The builtin package footprints have been slashed by a factor of 4x. This makes ROOT lighter and faster to build than ever, while pivoting toward a robust reliance on high-performance system packages.
Cheers,
Danilo for the ROOT Project