Skip to content
Tree: 869553a4dd
Commits on Nov 8, 2019
  1. [cpack] Move from PackageMaker to productbuild:

    Axel-Naumann committed Nov 7, 2019
    PackageMaker is 32bit and cannot run on Catalina.
    (cherry picked from commit be51cae)
  2. Do not install into /root when generating DEB/RPM packages

    amadio authored and Axel-Naumann committed Jul 11, 2019
    (cherry picked from commit a275b6a)
Commits on Nov 3, 2019
  1. [RF] Fix assignment operator of RooRealVar.

    hageboeck committed Oct 14, 2019
    (cherry picked from commit 2474779)
  2. [RF] Implement assignment operators for important RooFit base classes.

    hageboeck committed Oct 24, 2019
    (cherry picked from commit c2e5e50)
  3. [RF] Fix problems in RooAddPdf.

    hageboeck committed Oct 29, 2019
    - Improve input validation.
    RooAddPdf can only work with PDFs as arguments, but wasn't properly
    checking that only PDFs are passed.
    [ROOT-6008] Replace fixed-size array by vector in RooAddPdf.
    RooAddPdf was using a fixed-size array of 100 elements to store
    coefficients. This is obviously not safe, and therefore needed to be
    replaced by something with dynamic allocation.
    (cherry picked from commit 31e637e)
  4. [RF][ROOT-10367] Fix crash when plotting a RooFormulaVar.

    hageboeck committed Oct 17, 2019
    (cherry picked from commit b0d3340)
Commits on Oct 29, 2019
  1. [tree] Update release notes

    pcanal committed Oct 29, 2019
  2. [tree] Add support for 'Folder' branch in GatherArtificialElements.

    pcanal committed Oct 28, 2019
    When a branch is created from a TFolder (or if the top level branch name contains a non trailing dot, case
    which is 'inadvertently confused with the TFolder case), the top level branch name is prefixed (+ a trailing
    dot) to the sub-branch name *but* the name of base class is not suffixed to the name of their corresponding
    branches.  GatherArtificialElements was not handling this case correctly and thus tried 'too hard' to
    find (non-missing) branches for the base classes.
  3. Mark pointer TStreamerElement as 'CannotSplit'

    pcanal committed Oct 26, 2019
    This prevents TBranchElement's GatherArtificialElements from
    infinitely recursing (pointlessly) through a setup like:
       class Vertex;
       class Event {
         Vertex *fVertex;
       class Vertex {
         Event *fEvent;
Commits on Oct 25, 2019
  1. Fix Jira issue #ROOT-10369

    bellenot committed Oct 25, 2019
    Revert the logic in the if statement replacing static_assert on Windows (fix Jira issue #ROOT-10369), add a comment explaining why the #ifdef is needed, and add a FIXME: check if the error is fixed when upgrading llvm/clang
    The #ifdef R__WIN32 is needed to fix the following error when generating libEve_rdict.pcm:
    C:/Users/bellenot/build/debug/include/TEveVector.h(62,21): error G34C21FBE: static_assert expression is not an integral constant expression [C:\Users\bellenot\build\debug\graf3d\eve\G__Eve.vcxproj]
    static_assert(offsetof(TEveVectorT, fZ) == offsetof(TEveVectorT, fX) + 2 * sizeof(TT),
    C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt\stddef.h:43:31: note: expanded from macro 'offsetof'
    C:/Users/bellenot/build/debug/include\TEveProjections.h:174:71: note: in instantiation of member function 'TEveVectorT<float>::Arr' requested here
    virtual Float_t* GetProjectedCenter() { return fProjectedCenter.Arr(); }
    C:/Users/bellenot/build/debug/include/TEveVector.h:62:21: note: cast that performs the conversions of a reinterpret_cast is not allowed in a constant expression
    static_assert(offsetof(TEveVectorT, fZ) == offsetof(TEveVectorT, fX) + 2 * sizeof(TT),
    C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt\stddef.h:43:32: note: expanded from macro 'offsetof'
    CUSTOMBUILD : error : C:/Users/bellenot/build/debug/bin/rootcling.exe: compilation failure
Commits on Oct 24, 2019
  1. [hadd] Delete the directory from the input file as soon as done with it.

    pcanal committed Oct 9, 2019
    So far only the directory for the _first_ input file were delete immmediately, all the other were kept in memory until
    the files were close.
    This reduces memory consumption and speedup file closing (tear down) speed.
Commits on Oct 15, 2019
  1. TMessage: do not access not-allocated buffer ROOT-10340

    linev committed Oct 15, 2019
    When wrong-formatted TMessage is received, length of buffer may be 0.
    As result, buffer may not be allocated at all.
    One should avoid that in such case memory is accessed
  2. [cxxmodules] Mark the overridden transient file.

    vgvassilev authored and oshadura committed Oct 8, 2019
    This patch is a complementary chenge to d2c0929
    It will turn off the isOutOfDate checks for transient files with different
    size on disk. This is quite dangerous but we are supposed to control the
    build environment which prepares the distributable binaries.
    This should fix the cmssw issue:
    input_line_8:1:22: error: file '/usr/include/linux/falloc.h' from the precompiled header has been overridden
    rootcling: /build/cmsbld/jenkins/workspace/build-any-ib/w/BUILD/slc7_amd64_gcc820/lcg/root/6.17.01/root-6.17.01/interpreter/llvm/src/tools/clang/include/clang/Serialization/Module.h:72: clang::serialization::InputFile::InputFile(const clang::FileEntry*, bool, bool): Assertion `!(isOverridden && isOutOfDate) && "an overridden cannot be out-of-date"' failed.
    The error tells us that `falloc.h` has different file size on the build machine and
    on the distribution machine. We should probably rely on an environment variable
    to turn off this diagnostic selectively and more the reponsibility if something goes
    wrong to the distribution team. They should have better knowledge what is safe to
    be ignored anyway.
  3. [cxxmodules][pch] Disable validation of transent files.

    vgvassilev authored and oshadura committed Oct 4, 2019
    In clang a transient file is a header file which is stored in the pch/pcm file.
    If this file does not exist, clang creates a virtual file of the unzipped stored
    file. However, if the file exists it compares the size of the file on disk and
    the size of the transent file. If the two sizes are different it does not
    complain (as validation is off) but it triggers an assert in when constructing
    and outdated clang::InputFile. The implementation disallows a overridden or
    transient file to be out of date.
    This patch extends the DisableValidation abilities to span not only for timestamps
    but we avoid checking the file sizes if the file is on the disk. And, instead we
    just create a virtual file of the file that we already have.
    This patch should fix a relocation issue for cmssw and some of the reported LCG
Commits on Oct 7, 2019
  1. Avoid recursing for anonymous struct/union in InspectMembers.

    pcanal committed Oct 7, 2019
    At best, it will fail to find the class for the anonymous union/struct and at worse it will mistakenly find the
    top/current class and do an infinite recursion.
    This fixes ROOT-10344
  2. In TMemberInspector::TParentBuf::Append fix off-by-one and missing re…

    pcanal committed Oct 6, 2019
    This fixes ROOT-10343.
    First of all, it's not legal to write to memory through the indexing operator of a vector if it has only been reserved, you need to do resize() for that. I presume you're trying to skip the initialization here.
    Second, the resize/reserve should be 'fLen + addlen + 1' to allow that write of '\0' if fLen is 0. I understand the thinking here otherwise, namely that once a +1 is done, you don't need it anymore for any subsequent Append, as you're just overwriting the old '\0'. But if you don't do it on fLen == 0, then it never happens.
Commits on Oct 5, 2019
  1. [Cling] print the value of the pointer when value printing smart poin…

    pcanal committed Oct 4, 2019
    This fixes ROOT-10333.
    Since the printValue set of functions always takes a pointer and dereferences it without any checks,
    the previous implementation was attempting to valuePrint the pointee (rather than the pointer value)
    but this lead to a segmentation fault whenever the smart pointer was set to nullptr.
    Now, the valuePrinting for the smart pointers behaves the same as for regular pointer.
Commits on Oct 3, 2019
Commits on Oct 2, 2019
  1. Add missing call to TTree::ResetBranchAddresses.

    pcanal committed Oct 2, 2019
    This fixes ROOT-10339
  2. Remove inadvertent deletion of TBuffer in TBranch::GetFreshBasket.

    pcanal committed Oct 1, 2019
    This problem was introduced by 61c9927 with the introduction of the call
    to basket->AdoptBuffer(user_buffer); which was misplaced and in the normal case has user_buffer==nullptr resulting
    in the TBuffer deletion.  With combined with a preexisting problem (leak of TBufferFile objects when TBranch::GetFreshBasket
    is called with fBufferRef being a nullptr) lead to a memory leak when reading uncommpressed file.
  3. Avoid memory lead in TBasket::ReadBasketBuffers.

    pcanal committed Oct 1, 2019
    If fBufferRef (or fCompressedBufferRef) was null and we were reading a uncompressed (or compressed)
    basket, a new TBuffer was created by R__InitializeReadBasketBuffer but never recorded in the TBasket.
    This problem was 'per se' introduce in d9af372
    but until the inadvertently buffer deletion introduced in 61c9927
    fBufferRef was never null (and fCompressedBufferRef was/is never null)
    This resulted since v6.18/00 in a memory leak (of TBufferFile object) when reading uncompressed file
  4. Update release notes

    pcanal committed Oct 2, 2019
  5. No longer strip/ignore std in ResolveTypedef. Adapt reference file.

    pcanal committed Oct 1, 2019
    This is needed to solve ROOT-10337.
    root [0] struct Complex {};
    root [1] auto v = std::vector<Complex>{};
    root [2] TClassEdit::ResolveTypedef("std::vector<Complex>::value_type")
    (std::string) "std::Complex"
Commits on Sep 28, 2019
  1. [IO] Do not include base classes of pair in CheckSum calculation.

    pcanal committed Sep 27, 2019
    This fixes ROOT-10244
    This is an addendum to 6983ad8
    and thus related to ROOT-9808.
Commits on Sep 27, 2019
  1. Avoid interger overflow in TFile::GetBestBuffer.

    pcanal committed Sep 27, 2019
    This fixes ROOT-10334.
  2. [textinput] Fixes issue ROOT-10285; introduced in 0e90d01.

    jalopezg-uc3m authored and Axel-Naumann committed Sep 24, 2019
    Defer translation of Ctrl-D to a delete command.
    (cherry picked from commit 9d86ce6)
Commits on Sep 25, 2019
  1. Fix handling of inline namespace std::__cxx11 in TClassEdit::GetSplit

    pcanal committed Sep 24, 2019
    This fixes ROOT-8396
    The issues was the normalization of
       "std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >"
    into vector<string> due to the inline namespace (__cxx11).
    Prior to this commit, it would work but only if the name for normalized twice.
    This because the order of operation was
       1. check if the name is std::basic_string or basic_string
       2. do more stuff
       3. remove std and std::[any-inlined-namespace-name]
    now we extended 1 to also search for std::[any-inlined-namespace-name]::basic_string
Commits on Sep 23, 2019
  1. [cxxmodules] Ignore import decls to delay the running module inits.

    vgvassilev authored and Axel-Naumann committed Sep 20, 2019
    If we preload modules using cling::Interpreter::loadModule the
    deserializations of the module initializers (such as global variables).
    We want the behavior of clang::Sema::ActOnModuleImport, however, it requires
    valid source locations.
    This patch ignores the ImportDecls which presumably came from loadModule.
  2. [cxxmodules] Quote the imported module.

    vgvassilev authored and Axel-Naumann committed Sep 14, 2019
    In some cases we have dict.C which the modules system considers as two
    components: one top-level module and one submodule.
You can’t perform that action at this time.