ROOT Version v6-02-00 Patch Release Notes

The first release candidate of the new production version ROOT v6-02-00 has been released Sept 25, 2014.

Get the source from Git using:

git clone http://root.cern/git/root.git root-v6-02; cd root-v6-02; git checkout -b v6-02-00-patches

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

Note for MaxOsX 10.10 (Yosemite)

When installing ROOT from sources the XCode command line tools need to be re-installed with:

xcode-select --install

Changes in head of v6-02-00-patches branch

  • Core
    • Do not treat Mac OSX's "cl_kernels" dylinker entry as a library ((ROOT-7436).
    • Added TMethodCall::GetCallFunc to allow direct access to the function wrapper.
    • Reduced thread serialization in TClass::GetCheckSum, TClass::GetBaseClassOffset and TClass::Property
    • Allow caller of TObjArray::Delete to explicitly avoid costly checks (extra RecursiveRemove and lock)
    • Fix thread safety of the creation of `TMethodCall` from a `TFunction`.
    • Fixes to clean undefined behavior (see ROOT-6710) detected by running all the tests and tutorials with gcc4.9.0 and -fsanitize=undefined
    • Add missing protection when creating new StreamerInfo
  • I/O
    • Resolve an issue when space is freed in a large `ROOT` file and a TDirectory is updated and stored the lower (less than 2GB) freed portion of the file (ROOT-8055).
  • TTree
    • Fix ROOT-6885 (Affect very large TChain with friend trees).
    • Fix ROOT-7423 (TTreeCache may not stop the learning phase when asynchronous prefetching is enabled.).
    • </u> </li>
    • Hist
      • Reduce thread serialization cost of TFormula::ClearFormula
      • </u> </li>
      • Minuit
        • Make function pointer held by TMinuitMinimize and static members of TVirtualFitter thread local
        • </u> </li>
        • TNetXNGFileStager
          • Fix ROOT-7703 This restores the behavior of Locate() to that found with TXNetFileStager: Rather than return only the xrootd server's reply, the endpoint hostname is looked up and Locate() returns the full url, including the path.
          • </u> </li>

          Changes in version v6.02/12 (24 June 2015)

          • core
            • Fix a thread safety issue in TMVA by updating TDirectory::TContext. We added a default constructor to TDirectory::TContext which record the current directory and will restore it at destruction time and does not change the current directory. The constructor for TDirectory::TContext that takes a single TDirectory pointer as an argument was changed to set gDirectory to zero when being passed a null pointer; previously it was interpreting a null pointer as a request to *not* change the current directory - this behavior is now implement by the default constructor.
          • Hist
            • Fix single-axis extensions for TProfile2D and TProfile3D (ROOT-7389)
          • Proof
            • Add support for aliases (ROOT-7392)
            • Fix issue with trees in sub-directories causing stressProof test #29 to fail
          • XRootD support
            • Port fix for out of source builds (forgot in the previous cherry-picking)
          • Interpreter
            • Handle relocation of ROOT and non-PCH-able glibc headers.
            • Do not check OS version on MacOS when loading the PCH.
            • Fix parsing of definition for forward declared enums (ROOT-7419)

          Changes in version v6.02/10 (1 June 2015)

          • Core
            • Add support for XCode 6.3 / MacOS 10.10.3
            • Fix name normalization when type has a trailing const keyword. (fixes ROOT-7321)
          • I/O.
            • Properly skip the content of base class onfile that have been removed from the in-memory class layout.
            • Always delete the array when the array size goes down to zero. This fixes a problem seen by CMS when using TH1::Copy on histograms read from a TTree and also fixes ROOT-7245
            • Fix the ordering of the keys in a TFile being written; in particular fixing the result of GetKey and FindKey which were no longer returning the lastest cycle for a TFile being written since v5.34/11.
          • Interpreter.
            • Support CXXDependentScopeMemberExpr for EvalT (ROOT-7163).
            • Accelerate costly Value functions by storing results.
            • Check that the pointer is valid before printing (ROOT-7095)
            • Fix for double tab completion crash (ROOT-ROOT-7094)
            • Fix for .x command redirection (ROOT-7053).
          • Tree
            • Fixes a regression: allow supported URLs to contain wildcards in TChain Add (ROOT-7296).
            • Fixes a crash possible after using TChain::AddBranchToCache with the automatic cache creation enabled (ROOT-7015).
          • Graphics
          • Proof
            • Port back patches to fix the nasty problem with second loading of selector
          • XRootD support
            • Port bunch of patches to build with recent XRootD

          Changes in version v6.02/08 (13 April 2015)

          • Hists
            • Fix the problem reported here.
          • Graphics
            • Fix an issue with transparent pad in TTexDump.
            • In TMathText \mu is now working for Postscript output.
            • Make sure that "/" and "." are not part of the method name when a canvas is saved as a .C file (ROOT-7071).
            • Better adjustment of the tilde accent position in case of Cocoa backend.
            • When printing a coloured 2D histograms (with option COLZ) into a PDF or PostScript file, the preview on screen using many standard PDF previewer tools showed very thin white lines between the bins as well as in the color palette. This made very ugly the final output. This problem is due to bad implementation of anti-aliasing in these previewers. A way to bypass this issue was to turn off the anti-aliasing in the previewer but then the rest of the document does not look nice. This problem is now bypassed with a fix in both PDF and PostScript output.
            • The axis titles in case of a TTree x:y:z plot with the option COLZ were not correct.
            • New option "Rotate scene" in the "Extras" tab of the GL Viewer. It allows to do a real rotation instead of a wobbling when the "Auto Rotator" is launched.
            • Implement TStyle::SetLineScalePS() to control le global basic line width in TTeXDump.
            • When a TGraph2D was entirely in the plane Z=0 the 3D could not be defined.
          • Interpreter
            • Enable value printing of nullptr (ROOT-7092).
            • Support interpreter include paths with whitespace (ROOT-7226).
            • Register $PWD with its full name at ROOT startup for -I (ROOT-7114).
            • Survive empty sources.
            • Fixed parsing of '\'' at the prompt (ROOT-7159).
          • NetxNG
            • Restore functionality to TNetXNGFile, which is available when access root files by other methods, and allow access to root files within a zip archive (ROOT-7185)

          Changes in version v6.02/05 (9 February 2015)

          • Core
            • Increase robustness of rootcling cli (ROOT-6999)
            • Support multiple libraries for an autoload key which is a header file name (ROOT-7020)
            • Propagate to the TClass instances the properties specified in selection rules matching classes via typedef nanames (ROOT-6796)
            • Fix crash in TClonesArray::ExpandCreateFast ROOT-7046.
            • Add TClass::HasDictionarySelection() to query whether a class has been selected (and if not loaded is available through a rootmap).
            • Optimise code generated for forward declarations in the rootmaps to speed up startup and reduce memory footprint in presence of large sets of selected classes.
            • Avoid duplicates in rootmaps selectively avoiding to use as keys external class names
            • Do not autoparse for template names if they are known to the interpreter and not forward declared.
          • I/O
            • xml: support all standard symbols in node names
            • Correct generation of code coming from IO rules in presence of escaped characters ROOT-7040.
            • Prompt error and bail out when trying to persist a proxied collection on file without its dictionary ROOT-7043
          • Math
            • Reduce memory usage resizing ("shrink to fit") arrays of parameters and variables of TFormula
          • MVA
            • Eliminate memory hoarding in TMultilayerPerceptron
          • Interpreter
            • Add ability to unload ACLIC'ed sources (ROOT-7027).
            • Reduce memory usage trying to update only existing TClass instances in fwd declared or emulated state

           

          Changes in version v6.02/04 (17 January 2015)

          • I/O.
            • Prevent crashes when using default constructed TFile and TDirectoryFile ( ROOT-7005)
          • TTree
            • Fix memory leak of CollectionProxy for non split branch for an STL collection. ( ROOT-7019)
            • Significantly improve the scheduling of I/O rules in split TTree solving ROOT-7009.
          • Interpreter.
            • Handle re-emission of referenced weak symbols as real symbols later (ROOT-7024)
            • Simplify creation of pch input header using the __has_include macro
            • Remove system header sys/time.h in favour of ctime
            • Add in the pch all stl headers. On mac, exclude regex to workaround ROOT-7004
            • Do not construct a class's interpreter info while its TClass is initialized, and don't refuse to construct it permanently just because autoparsing was suspended when tried first.

          Changes in version v6.02/03 (10 January 2015)

          • Interpreter
            • Named macros (those with functions) must now be proper C++; interpreter extensions ("dynamic scopes") are only available in unnamed macros (those starting with '{'). This might be reverted at a later stage; we appreciate your feedback on this change. (ROOT-6802)
            • Reduce disk access for headers in PCH (ROOT-6942).
            • Reduce memory usage in cling::Value (ROOT-6909).
            • Handle more dynamic scope cases correctly (ROOT-6650).
            • Return unhappiness on declaration errors (ROOT-5698).
            • Improve autoparsing behavior in case of #includes (commit 4fc27cc, 1bcbc84, 0b7de5d).
            • In dynamic lookup, react only on lookups of regular identifiers (#include of ROOT-6976).
            • Fix vetoing of autoloading; reduces memory usage for experiments' frameworks: autoloading took place with autoparsing disabled.
            • Lookup had effects on subsequent parsing; fixed that (ROOT-6976).
          • TTree
            • Improved TChain Add and AddFile handling of URLs. TChain Add will no longer try to match wildcard characters if the filename is a URL, and URLs can now include both a treename and a query string ('?') at the end. Alternatively a treename may be given as a fragment identifier ('#') after a query string. ROOT-6869
          • Graphics
            • When a text size was equal or smaller than 0 the PDF file was corrupted.
            • In TTeXDump the underscore `_` produced an error outside the TeX math context.
            • TLatex: Improve the square-root drawing in case it is small.
            • Use float numbers instead of integer to describe graphics paths in SVG output in order to avoid rounding problems (ROOT-6994).
            • Implement missing math symbols in SVG output.
            • Improvements in TPDF and TPostScript for fill patterns 1, 2 and 3.
          • Hists
            • Implement GetNhists() in THStack to return the number of histograms in the stack.
          • Core
            • Disable autoload when constructing TProtoClass's bases, else libraries were loaded with autoparse disabled i.e. immediately parsing the payload and causing additional memory usage due to non-lazy parsing (commit d637388).
            • Add validity return value to GetCheckSum. This offers a solution to ROOT-6989.
            • Implement TDictionary::op=() given that it has a copy ctor (Coverity).
          • TMVA
            • Do not rely on ROOT_SVN_REVISION to enable features but on ROOT_VERSION.

          Changes in version v6.02/02 (26 November 2014)

          • Graphics
            • TLatex with the Cocoa backend: In some cases, the character positioning was not correct .
            • In some some cases an extra point was drawn when a TGraph2D was drawn with P, P0 or PCOL options.
            • The hollow fill style was not rendered correctly by TTexDump. (ROOT-6841)
            • It was possible to interactively zoom outside the histograms' limits. Protections have been added.
            • Fix an issue with E0 option and log scale.
            • Better line width matching with screen and pdf output (ROOT-6858)
            • With the Cocoa backend on Mac, the PDF and PS output produced miss-aligned exponents because the GetTextExtend method behaved differently in batch mode and "screen" mode. This is now fixed.
            • In TTextDump the text color was ignored. It was always black.
          • TTree
            • Fix compilation on OSX 10.10 (Yosemite), see ROOT-6856]
          • Interpreter.
            • Do not use compiler to check ABI compatibility (ROOT-6794)
            • Suppress linking with libextension.dylib; fixes ACLiC on MacOS 10.10 Yosemite (commit cee1670).
            • Survive failure in building a dynamic expression (ROOT-6824).
            • Implement TInterpreter::Declare() for PyCOOL.
            • Better missing symbol diagnostics (requested by ATLAS).
            • Do not expose llvm, clang, cling #includes in ROOT's API.
            • Replace environment variables inside ROOT_INCLUDE_PATH (requested by ATLAS).
            • More flexible matching of files on filesystem versus PCH content (ROOT-6865).
            • Fix crash in argument parsing for MethodCall and friends (ROOT-6625).
          • Core/Rint
            • Fix order of initialization (TObject::Class vs TROOT) when the user application has no TApplication. (ROOT-6787).
            • Tab completion fixed (ROOT-6847).
          • Core/Meta
            • New version of TProtoclass optimised for memory to reduce ROOT PCM (ROOT-6773)
          • Build System
            • Provide mechanism for creating derived (experiment framework) PCHs.
          • Roostats
            • Fix memory issue in RooStats::FillTree causing (amongst other problem crash at the end of the process), (see ROOT-6819).
          • MathCore
            • New version of TStatistic class
          • IO
            • Set the default for Davix to enable Davix.GSI.GridMode, to be consistent with the comment in the default system rootrc. GridMode is needed to use https with usual grid https endpoints such as SEs. ROOT-6897

          Changes in version v6.02/01 (14 October 2014)

          • Core/Meta
            • Fix for signal slot error and method invocation with more than one parameter (discovered via Proof usage). Fixes ROOT-6654.
            • Do not replace member types in templates unless the replacement pattern contains a typedef.
          • I/O.
            • Fix reading large files (2Gb+) containing a memberwise streamed classes with bases.
          • Interpreter.
            • Fix for old-style streamers ROOT-6750
            • Fix for unloading issues (ROOT-6217, ROOT-6219)
            • Reduced memory usage: prevent parsing of headers already in the PCH.
            • Reduced memory usage: no ROOT-PCM for ROOT modules that are in the PCH
          • Hist.
            • Fix several thread safety problems in the handling of TFormulas.
          • XNet.
            • Fix for wrong ReadV size from dCache ROOT-6639.

          Changes in version v6.02/00 (30 September 2014)

          • Interpreter
          • TTree
            • Prevent the possible implicit invalidation of a TTree's TTreeCache pointer, e.g. found with GetCacheRead(), after the cache has been explicitly requested with SetCacheSize(-1) (ROOT-6698

           

          </div>