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). Dive into the full release notes and 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 share a single reader easily thanks to the “active entry tokens” added to the RNTupleReader: very useful in modern analysis and 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.