ROOT Version 6.16 Release Notes

2019-01-23

Introduction

ROOT version 6.16/00 was released on January 23, 2019.

For more information, see:

http://root.cern

The following people have contributed to this new version:

Kim Albertsson, CERN/ATLAS,
Guilherme Amadio, CERN/SFT,
Bertrand Bellenot, CERN/SFT,
Iliana Betsou, CERN/SFT,
Brian Bockelman, UNL,
Rene Brun, CERN/SFT,
Philippe Canal, FNAL,
Olivier Couet, CERN/SFT,
Gerri Ganis, CERN/SFT,
Andrei Gheata, CERN/SFT,
Enrico Guiraud, CERN/SFT,
Stephan Hageboeck, CERN/SFT,
Siddhartha Rao Kamalakara, GSOC,
Sergey Linev, GSI,
Pere Mato, CERN/SFT,
Lorenzo Moneta, CERN/SFT,
Alja Mrak Tadel, UCSD/CMS,
Axel Naumann, CERN/SFT,
Danilo Piparo, CERN/SFT,
Fons Rademakers, CERN/SFT,
Enric Tejedor Saavedra, CERN/SFT,
Oksana Shadura, UNL,
Ravi Kiran Selvam, GSOC,
Manos, Stergiadis, GSOC,
Matevz Tadel, UCSD/CMS,
Yuka Takahashi, Princeton,
Massimo Tumolo, Politecnico di Torino,
Mohammad Uzair, CERN/SFT,
Xavier Valls, CERN/SFT,
Vassil Vassilev, Princeton/CMS,
Wouter Verkerke, NIKHEF/Atlas,
Stefan Wunsch, CERN/SFT

Deprecation and Removal

Ruby bindings

The ruby binding has been unmaintained for several years; it does not build with current ruby versions. Given that this effectively meant that Ruby was dysfunctional and given that nobody (but package maintainers) has complained, we decided to remove it.

Removal of previously deprecated or disabled packages

The packages afs, chirp, glite, sapdb, srp and ios have been removed from ROOT. They were deprecated before, or never ported from configure, make to CMake.

Remove GLUtesselator forward declaration from TVirtualX.h

It was never used in TVirtualX interfaces. If GLUtesselator forward declaration is required, use TGLUtil.h include instead.

C++ Modules Technology Preview

ROOT has several features which interact with libraries and require implicit header inclusion. This can be triggered by reading or writing data on disk, or user actions at the prompt. Often, the headers are immutable and reparsing is redundant. C++ Modules are designed to minimize the reparsing of the same header content by providing an efficient on-disk representation of C++ Code.

This is an experimental feature which can be enabled by compiling ROOT with -Druntime_cxxmodules=On. You can read more about the current state of the feature here.

Core Libraries

New command line flag “–version” for root

root --version now displays ROOT version and build info and quits:

ROOT Version: 6.16/00
Built for linuxx8664gcc on Jan 23 2019, 11:04:35
From tags/v6-16-00@v6-16-00

Fish support for thisroot script

. bin/thisroot.fish sets up the needed ROOT environment variables for one of the ROOT team’s favorite shells, the fish shell.

Change of setting the compression algorithm in rootrc

The previous setting called ROOT.ZipMode is now unused and ignored. Instead, use Root.CompressionAlgorithm which sets the compression algorithm according to the values of ECompression:

TRef

Parallelism

Type System

I/O Libraries

/opt/build/root_builds/rootcling.cmake/include/TSQLFile.h:225:19: error: declaration of 'GetStreamerInfoList' overrides a 'final' function
virtual TList *GetStreamerInfoList();
^
/opt/build/root_builds/rootcling.cmake/include/TFile.h:231:24: note: overridden virtual function is here
virtual TList      *GetStreamerInfoList() final; // Note: to override behavior, please override GetStreamerInfoListImpl
^

Instead you need to override the protected method:

InfoListRet GetStreamerInfoListImpl(bool lookupSICache);

which can be implemented as

InfoListRet DerivedClass::GetStreamerInfoListImpl(bool /*lookupSICache*/) {
ROOT::Internal::RConcurrentHashColl::HashValue hash;
TList *infolist = nullptr;
//
// Body of the former Derived::GetStreamerInfoList with the
// return statement replaced with something like:

// The second element indicates success or failure of the load.
// (i.e. {nullptr, 0, hash} indicates the list has already been processed
//  {nullptr, 1, hash} indicates the list failed to be loaded
return {infolist, 0, hash};
}

See TFile::GetStreamerInfoListImpl implementation for an example on how to implement the caching.

Attaching file hsimple.root as _file0...
(TFile *) 0x55f79b0e6360
root [1] _file0->GetCompressionAlgorithm()
(int) 1
root [2] _file0->GetCompressionLevel()
(int) 1
root [3] _file0->GetCompressionSettings()
(int) 101
root [4]

TTree Libraries

RDataFrame

TTreeProcessorMT

TTree

Math Libraries

Clad

VecOps

RooFit Libraries

TMVA Library

Deep Learning

This release contains several fixes and improvement for the MethodDL. The MethodDL is also now the recommended class to use for Deep Learning in TMVA and is replacing the previous existing MethodDNN, which is still available, but it has a limited functionality and it supports only dense layer.

The new features of MethodDL are:

Other New TMVA Features

2D Graphics Libraries

   canvas->Print("example.pdf","EmbedFonts");

3D Graphics Libraries

Web Graphics Libraries

Language Bindings

The Ruby binding has been removed.

PyROOT

Experimental PyROOT

Jupyter Notebook Integration

JavaScript ROOT

Tutorials

Command line tools

Build, Configuration and Testing Infrastructure

Bugs and Issues fixed in this release

HEAD of the v6-16-00-patches branch

These changes will be part of the future 6.16/02.

None so far!