Releases: root-project/root
Release list
v6-40-04
A patch of the 6.40 release series. A few items were addressed: see list below.
Items addressed for this release
- #23036 - system.rootrc ships three settings that nothing reads (WebGui.HttpLoopback, WebGui.WaitForTmout, Browser.StartUrl)
- #23026 - ROOT fails to configure with CMake 4.4
- #22981 - [ntuple] streamer field end up using wrong type name
- #22959 - [RF] Bug with RooExtendPdf produces inconsistency in rf204b_extendedLikelihood_rangedFit.C between before 6.26 and after 6.28
- #22938 -
R__memcompressfails with limited stack size - #22858 - [RF] RooBinIntegreator gives wrong result for integrals that cut thought bin boundaries
- #22855 - [ntuple] double free when resizing small RVec
- #22843 - TMath::Laplacian computes wrong finite differences
- #22831 - TGDMLParse silently drops elements whose name collides with a material name after
0xpointer-suffix stripping - #22769 - Histogram with fit function not correctly drawn to canvas in Jupyter notebook with JsROOT on
- #22727 - [jsroot] Scroll breaks on SWAN when using %rootbrowse
- #22692 - Providing analytical Hessian reduces robustness of minimization to initial values in Minuit2
- #22656 - [rootcling] external software no longer compiles with ROOT 6.40 (regression)
- #22501 - THttpServer/TRootSniffer: exe.json leaks the object returned by the executed method (e.g. TH2::ProjectionY)
- #22473 - [tmva][sofie] Conv generates invalid code and crashes for dilation > 1
- #22395 - TGeoTessellated volumes read from GDML impossible to be closed (6.40.00 regression)
- #22359 - "Second registration of" error with a template argument "missing"
- #21402 - [RF] Building of Histograms/Errors from a workspace with a region with many bins is super slow
- #20697 - [RF] Add support to set the nominal value and limits for the ShapeFactor parameters in HistFactory
- #20116 - Wrong integrals for RooHistPdf with interpolation order = 1
- #20018 - ROOT.TColor.DefinedColors(1) problematic in jupyter notebooks
- #19560 - TTreeIndex fails under Valgrind due to long double emulation
- #18683 - [RF] Parallelize per-channel workspace creation in MakeModelAndMeasurementsFast
- #17483 - wsl2 menu display issue
- #14255 - [RF] Asymmetry plots with RooFit
- #10784 - TKDTreeBinning missing bins
- #10240 - TTree: Creating a branch with std::vector can raise an internal error when mixing I/O systems.
- #6378 - TTreeFormula
Alt$gives (silently) wrong result when used by itself.
v6-36-14
This patch delivers minor fixes, see release notes for more details.
v6-32-24
This patch delivers minor fixes, see release notes for more details.
v6-30-12
This patch delivers minor fixes, see release notes for more details.
v6-28-16
This patch delivers minor fixes, see release notes for more details.
v6-38-06
Last patch release of the 6.38 STS series, now superseded by the superior 6.40, LTS. Please see the release notes for the details.
Items addressed in this release
The following items were addressed for this release:
- #22501] - THttpServer/TRootSniffer: exe.json leaks the object returned by the executed method (e.g. TH2::ProjectionY)
- #22496] - root -q -e '.gh bug' doesn't work on ssh connections
- #22367] - Wrong interaction of DefinePerSample with downstream varied action
- #22015 - Non uniquess of the UUID inside TFile
- #21997 - Memory leak in TFile::Open with UPDATE mode
- #21933 - Web canvas saves files in the wrong format if extension is not specified
- #21881 - [gui,asimage] crash when opening xpm icon in batch mode
- #21880 - [asimage] crash with DrawCircle
- #21787 - ROOT and Python 3.15
- #21758 - [RDF] "error: macro name must be an identifier" when declaring C++ code for a distributed RDF
- #21756 - [RDF] RDF.RSnapshotOptions with a distributed RDF
- #21732 - invalid looping over the
std::array<long double,..>objects in PyROOT - #21716 - Strange error message when reading RNTuples
- #21693 - [PyROOT] ROOT package import method changes gDirectory.pwd() result
- #21431 - [cppyy] cast to long long pointer result in unsigned long long pointer
- #21367 - Stack corruption in TColorGradient with clang 20 to 22
- #20066 - [Python] cppyy cannot bind select types
- #18733 - Get list of top-level fields from RDataFrame
- #16601 - [6.32/master] Fail to materialise symbols from
libMatrix - #8125 - BMP TASImage artefacts and crashes
v6-40-02
This is the first patch of the 6.40 release series. A few items were addressed: see list below.
Items addressed for this release
The following items were addressed:
- #22538 - [ntuple] Late model extension of untyped records broken
- #22496 - root -q -e '.gh bug' doesn't work on ssh connections
- #22471 - issue with transparency and interactive mode on macOS
- #22447 - 6.40: Glitch in TTree::Draw for 3D (missing bins)
- #22436 - [tmva][sofie] MaxPool and AveragePool generates wrong code for asymmetric padding
- #22427 - Failing ML Dataloader test on alma10 builds with auto-registration off
- #22417 - 6.40: TBox added to TH1::GetListOfFunctions() appears to be freed before Write
- #22415 - [ftgl] FTGL builtin build fails due to missing src/FTLibrary.h
- #22414 - TFileMerger: when using kOnlyListed, any 'listed' key will bring in any unlisted keys that are a suffix of a listed key
- #22396 - Crash in PyROOT in 6.40 (GIL issue?)
- #22395 - TGeoTessellated volumes read from GDML impossible to be closed (6.40.00 regression)
- #22394 - Unable to build ROOT 6.40 against free-threaded python 3.14t (6.40.00 regression)
- #22378 - SetOSX_SDK.cmake overrides requested
CMAKE_OSX_SYSROOT - #22370 - ROOT 6.40.00 seems won't compile with Clang + GCC 16 standard library
- #22367 - Wrong interaction of DefinePerSample with downstream varied action
- #22300 - Compilation failure with Ubuntu 26.04
Versions of built-in packages
The version of the following packages has been updated:
- xrootd: 5.9.5
v6-26-20
v6-40-00
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 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.