ROOT Version v5-22-00 Patch Release Notes

A new production version ROOT v5-22-00j has been released Mar 31, 2010.

Binary tar balls are not available for patch releases.

The AFS version of v5-22-00i for many different platforms and compilers can be found at:


The complete source tree for all systems (23.5 MB) is available here:

Alternatively get the source from Subversion (broken) using:

svn co root

After obtaining the source read the file README/INSTALL (broken) (in short just do: cd root; ./configure; make).

To get the source of the head of the v5-22-00-patches branch do:

svn co root

Changes in the head of the v5-22-00-patches branch

  • IO
    • Added support for reading file written by 5.27/02 and containing a data member like:
           std::container *fDataObjects; which has been streamed member-wise (see revision r33173 of the trunk).
    • Prevent the use of an optimized StreamerInfo when reading a collection streamed member wise. The solves the issue 73642 reported in Atlas' Savannah.
    • Avoid spurrious warning message when reading file with a TTree writen with ROOT 5.29/03 or later:Warning in <tstreamerinfo::compile>: Counter fNClusterRange should not be skipped from class TTree</tstreamerinfo::compile>
  • Xrootd
    • Import fixes #33677 fixing a fake authentication failure with proxies created by voms-proxy-init when the input certificates are PKCS12-formatted
  • CINT
    • Prevent buffer overrun due to long include directives (issue #68546, r33793).

Changes in version v5-22-00j (Apr 23, 2010)

  • Core
    • Prevent object related to TClass and CINT from being allocated inside a TMapFile.
    • Support cross-compilation of 32-bit binaries on MacOS X 64-bit.

Changes in version v5-22-00i (Mar 31, 2010)

  • Xrootd
  • Meta
    • Add dictionary for vector<pair<int,int> > used in TSchemaRule (r32475, bug #53130).
  • I/O
    • Avoid spurrious warning message when reading file produced by ROOT v5.27 and above.

Changes in version v5-22-00h (Feb 8, 2010)

  • Xrootd
    • New version (v20100205-0000) containing several fixes needed in particular by ATLAS; this includes the new SSL module for authentication needed by Castor.
    • Import  crucial fix #32322 on for the krb5 security module
  • Krb5auth
    • Import patches #29438 and #29474 in krb5auth to fix building issues with current linux distribution (e.g. kubuntu)
  • Netx
    • Import the relevant parts of patch #30949 adding the possibility to set on the fly (via the option field of the URL) the new read-ahead policies explicitely introduced in XrdClient for ATLAS.
  • I/O
    • Fix in TXNetFile, TRFIOFile and TDCacheFile for accessing members in a zip archive [Bad link].
    • Add support reading TWebFiles via a web proxy.

Changes in version v5-22-00g (Jan 22, 2010)

  • Core
    • when using the --enable-explicitlink option make sure all ROOT libs are fully linked. In most cases -ld was missing. This fixes issue [Bad link].
    • Fix in rootcint when using the -p option ([Bad link]).
  • CINT
    • Fix deprecation warnings for Python 2.6 (r32033, issue #61490)
    • Work around warning "cast from pointer-to-function and pointer to object" in some Reflex dictionaries. (r32074 r32090, bug #61758)
  • I/O
    • TDCacheFile: fix regression which caused dcap://host:port/path to fail.

Changes in version v5-22-00f (Dec 7, 2009)

  • Core
    • On MacOS X determine correct ROOTSYS in case is a symlink (as was already done on Linux systems).
  • I/O
    • TDCacheFile: dCap client does not ignore ?filetype=raw and other options, so remove it. Fixes issue #57409.
    • TDCacheFile: increase readahead size from 8k to 128k and make it settable via DCACHE_RA_BUFFER env var.
    • Make vector<long> and vector<long long> equivalent (and hence suppress: TStreamerInfo::BuildOld:0: RuntimeWarning: Cannot convert DataHeaderElement_p2::m_Hashes from type:vector<unsigned long long> to type:vector<unsigned long>, skip element )
    • Fix the reading of the TFile title in the header for file produced with v3 or older and for file larger than 2G
    • Saves about 20% CPU time for I/O with Atlas AODs by not injecting the Streamer() trampolines in Cintex
  • TTree
    • Fix the FastCloner re-ordering of basket per entry when the baskets are synchronized across branches (this happens after a good OptimizeBasket of the tree).
  • PyROOT
    • Fix for issue [Bad link] and [Bad link].
  • Reflex
    • Allow softlinks when locating (r31534 r31543 r31556 r31563, issue #59896)

Changes in version v5-22-00e (Oct 11, 2009)

  • MacOS X Snow Leopard
    • Support for 32-bit build on 64-bit Snow Leopard.
  • TTree
  • Core
    • In TUnixSystem and TWinNTSystem, change the dynamic library search order. First look into LD_LIBRARY_PATH (or PATH on Windows) and then in what is specified in Root.DynamicPath. This allows by changing LD_LIBRARY_PATH to search for alternative versions of plugins without changing the rootrc file(s).
    • Fix in root-config a problem with relative symbolic links.

Changes in version v5-22-00d (July 27, 2009)

  • MySQL
    • Fix portability problem between 32 and 64 bit as long is not a portable type.
  • Core
    • Fix tab completion for the case
         root [0] .x tutorials/ [TAB]
    • Add support for skipping the reading of the $HOME/<name> (e.g. $HOME/.rootrc) resource file. To do this set the shell variable ROOTENV_NO_HOME. This might be useful in case the home directory resides on an automounted remote file system and one wants to avoid this file system from being mounted. Fix for issue [Bad link].
  • CINT
    • Speed up the dictionary initialization: nlogn instead of n^2. (r29297, issue #52457).
    • Fix the implementation of ShowMembers in the case where the members of a class with a genreflex dictionary are of type with a rootcint dictionary and no genreflex dictionary.
  • TTree
    • Insure that the TTreeCloner (fast merging) is able to also copy 'uninitialized' TStreamerInfo describing abstract classes (This fixed savannah report #52856)
    • Enhance support for reading class (A) stored in a vector where one the member is no longer part of the current class layout (of class A) and the member is a class type .
  • I/O
    • Fix the initialization of the checksum information for a TSchemaRule (hence fixing the lookup based on checksum)
  • PyROOT
    • Fix for issue [Bad link].

Changes in version v5-22-00c (June 27, 2009)

  • CINT
    • Only use workaround against Microsoft compiler bug ('unused' returned reference for forward declared classes, see v5-22-00b) on Windows; silences (correct) warnings on other platforms (r28683).
    • Typedefs that are defined in a scope that is not part of the dictionary will not get an entry in the rootmap file, (r29026, issue #51846).
  • TTree
    • Several fixes to properly support "flushing the write basket before streaming the branch".
  • PyROOT
    • Fix a crash while loading 'std::set'. This fixes issue #49779.
  • rootcint
    • Correct algorithm to find ROOTSYS, now it works also if rootcint is a symlink.

Changes in version v5-22-00b (May 14, 2009)

  • Base
    • In GetOptions() fix parsing of script names with + somewhere in path.
    • Roll back mod made in r25519 which was not a good idea as it required the user to make two gStyle->Set... statements to get a white canvas.
  • I/O
    • Prevent a potential infinite loop when reading the StreamerInfos.
  • TTree
    • Improve performance of read back of sub-branches contains stl container of simple types
    • Prevent an infinite loop when reading a file containing a class which is split and has a vector member that has been removed in the current class layout.
    • Enhance support for reading class (A) stored in a vector where one the member is no longer part of the current class layout (of class A)
  • Meta
    • Support the case where loading the library needed for an autoload entry does not lead to the loading of a CINT dictionary; This happens if the library has a Reflex dictionary and Cintex is not enabled.
    • In TClass::Clone, insure that the copy is using the same 'dictionary' as the original so that it is really setting up an alias.
    • Insure the autoloader is properly enabled when it is needed (for example after an explicit call to TSystem::Load even without a TApplication object).
  • Cint
    • Insure that the creation and deletion of object in Cintex matches the way object are created and delete by the compiler.
    • Fix a silent corruption of the I/O system that can be triggered by a call to UpdateMembers() before Cintex got invoked. (r28049, issue #48338)
    • Call TypeBase::Deallocate() instead of ::op delete in Reflex::Class::Destruct(), and only if requested. (r28086, issue #47076)
    • Allow transient declarations even for typedef-to-class. (r28335 + r28374, issue #49472)
    • Fix invalid memory access in ~ScopeBase() after UpdateMembers(). (r28337, issue #49533)
    • Silence warnings when compiling Reflex dictionaries with -pedantic (r28394, issue #49792)
    • Do not try to automatically create a dictionary for template classes that were loaded via CINTEX (r28415, issue 49926)
    • Work around a silly error generated by the Microsoft compiler when seeing an 'unused' returned reference to a forward declared class.
  • Graf
    • Fix in PaintAxis: the option "U", for unlabeled axis, was not implemented in case of alphanumeric axis' labels.
  • Hist
    • Fix bad side effect introduced in revision 28200 in TGraph::GetHistogram().
  • Geom
    • Fixed issue with un-initialized variable in TGeoScaledShape::DistFromInside(). This fixes issue [Bad link].
  • MathCore
    • Fix bug [Bad link] in fitting TGraphErrors 
    • Fix a problem in likelihood fit caused by negative pdf values
    • Fix a bug in creating the Integrator class when MathMore is not built.
  • SMatrix
    • Remove tolerance check when inverting matrices (both with BK or LU methods)
  • Xrootd
    • Import fixes in the security modules
  • Proof
    • Fix problem with handling entry lists
    • Fix problem with retrieving files from the cache
    • Fix problem with schema evolution
    • Fix problem causing random crashes when asking for the memory plot

Changes in version v5-22-00a (Feb 12, 2009)

  • Misc
    • Add support for Microsoft Visual C++ version 9.0
  • Base
    • Fix issue [Bad link], crash caused by PATH being larger than 8192 characters.
    • Fix issue [Bad link], determination of ROOTSYS broken when libCore is in a symlinked path.
    • Fix root-config, determination of ROOTSYS broken when root-config is in a symlinked path.
    • Fix issue in TFolder::ls() not handling wildcards properly.
  • Meta
    • Implement TClass::Clone (It replaces the copy constructor which was removed)
    • Suppress error message in TClass::BuildRealData if the class is used 'only' for a transient member.
    • Implement new mode 1<<7 for TClassEdit::ShortType() to strip off default template parameters.
    • Fix issue [Bad link], genreflex failing for functions taking multidimensional arrays.
    • Prevent a segmentation fault and reintroduce the proper warning message when a file contains an empty collection of long double.
  • TTree
    • Force the TStreamerInfo used by a split branch to be non-optimized.
    • Fix the logic when trying to match the branch from one tree to the other (avoid an infinite loop if the first branch is missing in the new tree).
  • PyROOT
    • Fix for issue [Bad link].
    • Windows: Create the Python module libPyROOT.pyd from libPyROOT.lib instead of copying it from libPyROOT.dll. This solves a problem in GaudiPython.
  • CINT / Reflex
    • Fix issue [Bad link], genreflex failing for functions taking multidimensional arrays. (r27214)
    • Don't cache Reflex::Members. Repairs Cintex for classes with duplicate dictionaries. (r27303)
    • genreflex: prepend return type of shadows' final overriders by '::' where applicable; fixes issue [Bad link]. Also keep constness of original return type. (r27305)
    • Correct CINT's handling of unsigned numbers larger than INT_MAX. (r27306)
    • When looking up list<A>::iterator, list<A> was looked up only as a struct, where in fact (for CINT) it's a typedef. This prevents template instantiation (which fails during library load) and autoloading in the case of rootmap (re-) registration for types like list<A>::iterator. (r27310)
    • Reflex::Type::SizeOf() was giving the wrong answer if the underlying type was not yet initialized when the derived type (e.g. array, typedef) was built; see issue [Bad link]. (r27325)
    • Remove stray spaces in genreflex-created rootmap files for types containing (basic_)string as template argument. (r27408)
    • Insert basic_string&ltchar> through Cintex for backward compatibility reasons. (r27408)
    • Rename unsigned int template arguments as provided by GCCXML to not end on "ul", fixing issue reported by Atlas with boost::array. (r27408)
  • Fitting (MathCore + Hist)
    • Fix issue [Bad link] for normalization of error resulting from fitting a TGraph
    • Fix a problem in Chi2 calculation in case of overflow
    • Fix issue [Bad link] when setting a function range outside histogram range
    • Fix issue [Bad link] for creating a list of functions when using TGraph default constructor
    • Fix issue  [Bad link] for avoiding crashes when a linear fit fails.
  • TAlienFile / xrootd
    • Fix issue [Bad link] TAlienFile size being recorded as size 0.
    • Fix issue [Bad link] concerning TFile::Cp() of AliEn files.
  • XrdProofd
    • Fix a free/delete mismatch possibly causing a segv when restarting the daemon
    • Fix a backward-incompatibility issue causing the error message "unknown action code: 5112"
  • Xrootd, import of fixes from the CVS head:
    • for possible crashes of the daemon after a 'prepare'.
    • improving the server hostname check in GSI authentication.
  • Hist
    • Fix issue [Bad link] in TH3::Project3D for the error calculation in case of weighted histogram (or when using option "E") and no axis range is set.