ROOT Version v5-18-00 Patch Release Notes

A new production version ROOT v5.18-00f has been released Nov 3, 2008.

Binaries are currently not available for patch releases.

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-18-00-patches branch do:

svn co root

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

  • Netx, PROOF modules
    • Fix compilation warnings about deprecated headers and shadowed variables
  • Smatrix
    • Fix a compilation warning obtained when instantiating an SVector with size=1

Changes in version v5-18-00f (Nov 3, 2008)

  • TTree
    • Improve the way branches are matched for a Fast Merge. Now support the case where one of the branches in the output tree in not present. Also supports the case where branches are not the same order.
  • Reflex
    • Fix TEMPLATE_DEFAULTS and nested templates [savannah #36024].
    • Fix problem with template default arguments, introduced by the cache of name normalization results [savannah #43356].

Changes in version v5-18-00e (Oct 24, 2008)

  • TXNetFile
    • Add dynamic synchronization of the internal cache size to the one set in TTree; this allows to get by default a close to optimal working point (from F. Furano).
    • Correctly increment counters for read calls (from F. Furano).
  • xrootd
    • Import new version 20081007-0500 with many important fixes both on the client side (memory leaks, cache handling) and on the server side (e.g. fake disconnections in XrdLink)
    • Correct TUUID time code was inactive due to obsolete R__LONGLONG ifdef.
  • libAfterImage
    • Fix a compilation problem on Mac OS X 10.5.
  • CINT
    • Fix handling of pointer to bool (see savannah #37597)
    • Reflex: enable cache of normalized type name fragments to speed up dictionary generation.
    • Cintex: comply with SELinux.
  • Meta/IO
    • Fix reading of very long class names from a ROOT file.
    • Read the StreamerInfo for STL classes after the other classes to insure the Collection proxy will be set correctly and thus fix some case where the TBrowser could not drill through collection of objects in bare root.
  • Cintex
    • use mmap for trampoline; enables libCintex on SELinux protected OS (e.g. SLC5).

Changes in version v5-18-00d (May 29, 2008)

  • TXNetSystem
    • Go back to the redirector when relevant; this fixes problems of sequential operations on files in the same session, for example multiple calls to AccessPathName.
  • TPluginManager
    • Load plugin macros in alphabetical order. The most generic plugin should be loaded last (and should have a name like P0N0_xxxx.C, so it sorts last).
  • TDSetElement
    • Fix a bug in Validate(TDSetElement *) affecting correct element validation in multi-level-master setups.
  • TMessage
    • Uncompress could fail in certain cases.
  • TTree
    • Insure that kBranchAny or kBranchObject is set even if the file was created by a version of ROOT older than 5-18-00c and the top level branch is not split; this allows to properly read file written with ROOT 5.18/00 through 5.18/00b.

Changes in version v5-18-00c (May 19, 2008)

  • TRFIOFile, TCastorFile
    • Make sure the anchor part of the URL is not passed to the Castor low-level functions. This is needed to correctly open elements of archives files.
  • configure, config/, xrootd/
    • Add a new option '--with-xrootd-opts="..."' to 'configure' to specify additional configuration flags to xrootd; for example, to build the Perl interface the following should be used:
      ./configure --with-xrootd-opts="--enable-perlint" <other-options>
  • xrootd
    • disable the build by default of the client Perl interface: it generates several warnigs from SWIG and it does not build on some systems
  • TFile
    • Call TFile::Open() recursively on the path GetFileAndOptions() (instead of using the TFile constructor) in the case no dedicated plug-in is found. This fixes a problem with opening "srm://" and "/castor/..." as reported by Atlas.
  • TXNetFile
    • Correctly honor the create/recreate options coming from TFile::Open().
    • Allow the size of the (written) file to be retrieved after the Close() (solves several reported file size mismatches).
  • TDirectory
  • CINT
    • Fix support for array of pointer in an interpreted class/struct (this affect the result of MakeClass.
  • Cintex
    • Solve a mismatch (with CINT) on how the memory is allocated in new/delete functions.
  • Reflex
    • Add missing RFLX_API declarations, relevant e.g. for GCC's visibility=hidden.
  • TUnixSystem
    • Fix for MacOS X 64-bit support.
  • I/O
    • Repair writing Foreign class in XML files.
    • Avoid mistaking a Foreign class for which the StreamerInfo has not yet been built for a class coming from a ROOT file written by ROOT v2 or less. In particular this could lead to an unwanted call to TStreamerInfo::BuildEmulated() in the case where the object is being read from a TBuffer not attached to a TFile (TMessage for example) and lead to a Fatal error.
  • TTree
    • Remove the calls to MapObject introduce in revision 21384 when are unnecessary hence restoring lost performance in case where the TTree contains many simple type (double, int, etc.). Fixes issue 32940.
  • PyROOT
    • Do not remove DISPLAY from environ; this may lead to some warnings, but those can be fixed by the user, whereas that is not the case for setting DISPLAY back.

Changes in version v5-18-00b (March 10, 2008)

  • Xrootd
    • Fixes and optimizations in the client:
      • Potential cache thrashing problem with big blocks requests.
      • Optimization in closing files.
    • Fixes in the GSI module:
      • Double deletion in some specific cases.
      • Support for large (> 32 bits) certificate serial numbers in CRL handling.
  • TFile, TAlienFile, TXNetFile, TVirtualMonitoring, TMonalisaWriter
    • Add abstract monitoring interface for the relevant steps during file opening (bare open, initialization, ...).
    • Add concrete implementation in TMonalisaWriter.
    • Enable monitoring of the open steps in TAlienFile and TXNetFile.
  • TWebFile:
    • When in raw mode, don't try to read the "root" signature in TWebFile::Init(). This fixes the problem with TFile::Cp() returning a 4 byte difference and failing.
  • PyRoot:
    • A patch that allows direct assignment of unsigned int and unsigned long. Fixes issue 33890.
  • CINT:
    • Reflex: rootmap files end on ".rootmap". Fixes issue 34099.

Changes in version v5-18-00a (February 21, 2008)

  • CINT:
    • Correct the sizes of the internal structures (source line buffer, number of classes/enums/... and typedefs); they were too small.
    • Fix CINT's representation of size_t: use typeid instead of sizeof to identify the underlying type.
    • Remove a left-over bytecode debug statement.
    • Fix a problem with G__param_match() in the way enum are handled (enum are handled as in in parts of CINT).
    • Fix a problem with autoloading of templated classes, where the loaded class name (e.g. vector<MyClass,allocator<MyClass> > or A<long long>) is not the expected class name (e.g. vector<MyClass> or A<Long64_t>).
    • Allow selection of functions and exclusion of functions and methods using their prototype: attribute proto_name for exact match, proto_pattern for pattern matching.
    • Rename std::basic_string<char...> to string in genreflex-generated rootmap file.
  • TFile:
    • Add optimizations in TFile::Cp() for netx and add extra error handling to make the routine more robust.
    • Avoid an infinite loop under certain error conditions during the file open procedure via a local cache read.