https://github.com/root-project/root

sort by:
Revision Author Date Message Commit Date
ab2e7d8 [math] Use correct type when invoking the GSLIntegrator plugin, otherwise heavy checks in the PluginHandler take place that perform interpreter lookups. Fixes #15579 12 June 2024, 18:57:33 UTC
34b559d [df] Ensure execution order of Define operations is guaranteed In the RDataFrame computation graph execution, the `RAction::Run` method is responsible for requesting the values from the readers that are necessary for that action. This is done by calling `RColumnReaderBase::Get` with the correct template type given by the variadic argument type list of the action, which corresponds to the list of column types that action requires. So far, this variadic template function call was done by simply unpacking the argument pack as the arguments to the `Exec` function of the action helper data member. This meant that the execution order was never guaranteed (undefined until C++17, unspecified since), according to the explanation at https://en.cppreference.com/w/cpp/language/eval_order. This commit ensures that the execution order of the calls to the `Get` method of the readers is done left to right, following the same order of the template parameter pack. This is done by using the sequenced-before feature of the list-initialization of any C++ struct/class. A simple struct helper is used to this end. 04 June 2024, 15:03:40 UTC
d15d597 [df] Add tests for order of execution of Define operations 04 June 2024, 15:03:40 UTC
27f8636 [ci] Remove ubu2310 build 03 June 2024, 07:58:24 UTC
9be64f9 [io] convert argument to long to prevent overflow on caller side [core,io] clarify intent and comments 31 May 2024, 21:30:13 UTC
e9f024e [io] fix crash due to overflow in buffer length variable Fixes https://github.com/root-project/root/issues/14644 ROOT is known to have a 1 GB maximum IO size, but did not provide since safety checks against this (since 18y). This lead to silent crashes. The length of the buffer Int_t l takes a negative value if we do not add these checks and n is high enough. [io] add underflow safety checks for writefastarray-objects [io] check for already preallocated elements apply pcanals suggestion [io] prevent underflow in SetByteCount cnt variable could go into negative otherwise [io] simplify width Co-authored-by: Philippe Canal <pcanal@fnal.gov> [io] more detailed assertion [io] raise fatal error instead of silently skipping apply pcanals suggestion 31 May 2024, 21:30:13 UTC
6e6b835 [meta] Clarify comment in TCling::InspectMembers 29 May 2024, 15:57:19 UTC
a4670ca [meta] Assert in case of unexpected access property 29 May 2024, 15:57:19 UTC
a6c2f53 [meta] TCling::InspectMembers be silent about errors within unique_ptr 29 May 2024, 15:57:19 UTC
dd3516d [meta] TMemberInspector::GenericShowMembers pass isSilent to GetClass 29 May 2024, 15:57:19 UTC
433a14a [meta] Apply kIsNotReacheable to DataMember and Functions 29 May 2024, 15:57:19 UTC
71be55c [meta] AlternateTuple take scope accessibility in consideration to reject code generation 29 May 2024, 15:57:19 UTC
0bfc0e6 [meta] Add kIsUnreachable property (first to TClingTypeInfo) 29 May 2024, 15:57:19 UTC
8aca5a6 [meta] Add routine to calculate decl accessiblity from global ctxt. //______________________________________________________________________________ // Return true if the DeclContext is representing an entity reacheable from the // global namespace bool IsCtxtReacheable(const clang::DeclContext &ctxt); //______________________________________________________________________________ // Return true if the decl is representing an entity reacheable from the // global namespace bool IsDeclReacheable(const clang::TagDecl &decl); 29 May 2024, 15:57:19 UTC
018fe8e [dict] Make IsUnsupportedUniquePointer silent. This addresses in part #13574 29 May 2024, 15:57:19 UTC
c47d9df [meta] Allow AlternateTuple to be silent (for transient members) 29 May 2024, 15:57:19 UTC
a1628cd [meta] Allow SetClassInfo to be silent (for transient members) 29 May 2024, 15:57:19 UTC
8fdc5b3 [meta] AlternateTuple fail explicitly if one of the member is not accessible 29 May 2024, 15:57:19 UTC
b2dec0e [meta] TClingTypeInfo add access information to Property 29 May 2024, 15:57:19 UTC
6f26840 [meta] TDataMember properly combine the access property. We need to keep only the strictest access information between the member and its type. 29 May 2024, 15:57:19 UTC
263e8cd [meta] AlternateTuple fix code comments. 29 May 2024, 15:57:19 UTC
4ba7a6e [tree] Avoid buffer overflow in TBranch Introduced by https://github.com/root-project/root/commit/617f5fb4fab9b92b2a95e506b4801364473672bc The change to a variable length size was not properly propagated to the rest of the `TBranch::Init` function. Co-authored-by: Philippe Canal <pcanal@fnal.gov> 24 May 2024, 07:07:18 UTC
51f7db2 io: Avoid infinite recursion in TFile::Open This fixes #15590 23 May 2024, 20:18:33 UTC
85af553 [asimage] AfterImage needs to look at builtin zlib headers 21 May 2024, 19:38:26 UTC
6eba200 [core] Test builtin_zlib on mac13 21 May 2024, 19:38:26 UTC
e842b37 [TO REVERT] Never run TMVA GNN tests and tutorials as unit tests The last commit adds the dependencies for the TMVA GNN unit tests to the docker images via the `requirements.txt`. However, this will only have a delayed effect until the images are re-built. Therefore, we can't validate for now that the tests actually work. Once the missing packages make it into the CI images, a PR should be opened to revert this commit. 21 May 2024, 15:22:27 UTC
eef6551 [TMVA] Add missing TMVA python dependencies to requirements.txt Closes #14553. 21 May 2024, 15:22:27 UTC
0b22337 Make projected geo shape outlines non-transparent 20 May 2024, 11:10:19 UTC
1a25fba Set the viewer background color only in tone map shader. Use black background in all other render passes 20 May 2024, 11:10:19 UTC
f142e68 Update RenderCore with fix in tonemap fragement shader 20 May 2024, 11:10:19 UTC
82ec902 [ci] Enable distributed RDataFrame testing on MacOS 17 May 2024, 13:43:12 UTC
e972eb8 [core] Upgrade openssl and davix builtin versions to 0.8.6 and 3.0.13 respectively 16 May 2024, 14:51:04 UTC
8f594ff Remove the K&R style definitions from builtin zlib (part 2) No longer supported by (future) C standards. Currently just emits warnings (eg. MacOS 14) 09 May 2024, 19:14:48 UTC
a165f3d TEnum::GetUnderlying add support for typedefs. This fixes #15460. Extend the test accordingly. 09 May 2024, 16:05:03 UTC
c971083 TEnum::GetEnum normalize name before search. This allows to resolve using statement and find the target enum. This fixes #15406 08 May 2024, 20:39:09 UTC
48179bc [ci] Remove Fedora 38 builds The distribution is at its EOL. 01 May 2024, 13:01:13 UTC
d3bfc03 [core] Simplify and explain define of R__SIZEDDELETE With Clang and GNU libstdc++, we cannot just enable R__SIZEDDELETE unconditionally because Clang only defines __cpp_sized_deallocation if passed -fsized-deallocation. 27 April 2024, 06:15:11 UTC
80db26d Revert "core: Remove obsolete R__SIZEDDELETE (always true)" It is, in fact, not always true: Clang "[imitates] GCC 4.2.1 by default" and defines __GNUC__ accordingly. This reverts commit 766c2d270c1129c9d40db2965e3850696481d866. 27 April 2024, 06:15:11 UTC
50e610c TClass: remove dead code 26 April 2024, 21:10:22 UTC
a35836d TClass: reduce PR churn keep kFALSE for now 26 April 2024, 21:10:22 UTC
455726a Add missing lock in TCling::FindSym. This fixes https://github.com/cms-sw/cmssw/issues/44438 26 April 2024, 21:10:22 UTC
2673330 TClass::GetClassInfo: Improve thread safety by moving TestBit behind lock As described https://github.com/root-project/root/issues/15090 the use of TestBit (which reads fBits) in concurrent code is undefined behavior as it can be updated in concurrent thread by the user (and previously to the PR https://github.com/root-project/root/pull/15113 it was also updated by some of the non-locked code). Since the bit tested here (kLoading) is changed only behind the lock during the creation of the TClass (i.e. it should not yet be accessible by other thread), it is save to just but the reading behind the lock that is taken by `LoadClassInfo`. 26 April 2024, 21:10:22 UTC
3c63094 TClass: split kHasCustomStreamerMember on its own. Since this is set right after construction but before it can be accessed by using code, this avoid concern about possible update while reading. For kHasCustomStreamerMember removal 26 April 2024, 21:10:22 UTC
ae543d7 TClass: make fCanSplit atomic. This is needed as it can be changed after construction. 26 April 2024, 21:10:22 UTC
3a6e90b TClass: remove usage of deprecated bit kIsEmulation 26 April 2024, 21:10:22 UTC
e06ef48 meta: Remove kClassSaved in favor of a thread local set. Remove (rather than deprecate) TClass::kClassSaved has using it will no longer have any effect. Rather than updating `fBits` in the TClass which leads to other usage of the same bits to become undetermined behavior in multi-thread mode, we now record the same information in a thread local std::set. This has the added benefit of moving towards the SavePrimitives function to be one step closer to be thread safe. 26 April 2024, 21:10:22 UTC
c1b7fa5 TMapFileTest: disable on Mac 12 and older. In Optimized build it appears that libNew is not used (when it should) during the execution of dictionary code. Given than Mac 12/Monterey will be (likely) end of life in 6 months, there is no benefit in investigating this issue 26 April 2024, 13:47:28 UTC
b729fb2 Disable TMapFile test on Windows since libNewDelete is not built 26 April 2024, 13:47:28 UTC
37c1ca3 Core: survive use of TMapFile without explicit TApplication 26 April 2024, 13:47:28 UTC
434e2e1 io: Add trivial test of TMapFile 26 April 2024, 13:47:28 UTC
4ac0362 TMapFile: Add TVirtualMapFile so TROOT can actually call Close. The previous code in R__ListSlowClose and thus TROOT::CloseFiles was incorrectly using TDirectory::Close on the unrelated class TMapFile :( 26 April 2024, 13:47:28 UTC
df73099 TMapFile hprod: remove location spec. This is no longer needed 26 April 2024, 13:47:28 UTC
f8eb7e0 TMapFile reduce further the use of gMmallocDesc. This insures that only the intended part of being allocated within the memory mapped file 26 April 2024, 13:47:28 UTC
81b715d Do NOT use MAP_FIXED for mmap. MAP_FIXED is evil. The mmap documentation states: ... the mapping established by mmap() replacesany previous mappings for the process' pages in the range from addr to addr + len. and ** literaly ** it will silenty free-up and reuse any allocation done by malloc/new within the requested range. In bygone days, this worked out okay by simply specifying a "high enough" memory location to avoid overlap. However we the advent of memory randomization finding an area of memory that is "a priori" guaranteed to not be used by something else is essentially impossible. In previous implementation of TMapFile (a long long time ago) having a matching memory location for the memory map in the client and server was necessary as data pointers (it was even tried to re-used virtual function table!) were used. This is no longer the case and thus relaxing the actual location will not affect the functionality. 26 April 2024, 13:47:28 UTC
7bf5461 mmalloc_update_mapping: core handling of relocated mapped file.: The indicates the displacement between the requested location and the actual memory location (Essential once we remove the dreaded MAP_FIXED 26 April 2024, 13:47:28 UTC
62a8676 NewDelete/TStorage automatically discovery TMapFile for realloc addresss. Introduce new callback ROOT::Internal::gGetMapFileMallocDesc 26 April 2024, 13:47:28 UTC
9058a0d TMapFile tutorial: update mapped memory location 26 April 2024, 13:47:28 UTC
2d1cbc2 TMapFile: better error handling in read tutorials 26 April 2024, 13:47:28 UTC
3878c3a TMapFile: don't put core/meta object in mmap file 26 April 2024, 13:47:28 UTC
7a7a156 TMapFile: enable semaphore synchronization on MacOS 26 April 2024, 13:47:28 UTC
545dccb core: Remove obsolete R__SIZEDDELETE (always true) 26 April 2024, 13:47:28 UTC
8ea7ecb core: Remove obsolete R__VECNEWDELETE (always true) 26 April 2024, 13:47:28 UTC
d890db1 core: Remove obsolete R__PLACEMENTDELETE (always true) 26 April 2024, 13:47:28 UTC
bcef35a core: Remove obsolete R__PLACEMENTINLINE (always true) 26 April 2024, 13:47:28 UTC
5cdccc1 newdelete: enable operator delete with size and alignment 26 April 2024, 13:47:28 UTC
4cd24e6 mmap: add error message 26 April 2024, 13:47:28 UTC
73b988f mmap: report error when input is not properly aligned. 26 April 2024, 13:47:28 UTC
c30855a newdelete: add support for odd alignment. Meta data is extended to include the requested alignment (in case we need to call re-alloc) and the offset from the actual start of the allocated memory since this is no longer calculatable from just the address of the data and the alignment. Remove specialization from not R__B64, assume size_t is always the right type 26 April 2024, 13:47:28 UTC
571975f newdelete: Remove Fatal from operator with std::align_val_t. Note both the new (catastrophically) or the old operator new are return an address that are misaligned. The old version was (and still) is returning a memory address aligned for sizeof(std::max_align_t) when it is supposed to returned a memory address aligned with __STDCPP_DEFAULT_NEW_ALIGNMENT__ (those value are usually respectively 8 and 16). The lame implementation of operator new for std::align_val_t is currently ignoring the passed argument (see next commits). 26 April 2024, 13:47:28 UTC
ade4be2 newdelete: clang-format [NFC] 26 April 2024, 13:47:28 UTC
00a80ed newdelete: macro to short functions 26 April 2024, 13:47:28 UTC
0ca2990 newdelete: Remove unused CheckObjPtr 26 April 2024, 13:47:28 UTC
dd65af6 newdelete: add comment describing layout 26 April 2024, 13:47:28 UTC
d30b628 newdelete: remove obsolete code 26 April 2024, 13:47:28 UTC
dcf4d2a Mention removal of `RooExpPoly` and `RooPower` in the 6.30 release notes 24 April 2024, 20:34:59 UTC
339766e [RF] Remove `RooExpPoly` and `RooPower` from the next 6.30 patch release The next 6.30 patch release should remove the `RooPower` and `RooExpPoly` classes. It is an unfortunate but unavoidable change: different classes with the same name and `ClassDef` version were used in the CMS collaboration since at least the Higgs discovery. This name collision caused massive problems in backwards compatibility and was blocking CMS from picking up ROOT 6.30 for statistical analysis. These classes were only introduced with ROOT 6.28.00 and not widely advertised, so people should not be affected by this removal. Based on the feedback to this patch release, the `RooPower` and `RooExpPoly` classes will either be removed or renamed in the upcoming ROOT 6.32. 24 April 2024, 20:34:59 UTC
6deeeff [tutorials] Disable `TMVA_SOFIE_RSofieReader.C` tutorial test The TMVA_SOFIE_RSofieReader test is disabled because it uses two differnt openblas versions via SOFIE and NumPy (indirectly from Keras) at the same time. This can cause crashes, for example on alma9. 22 April 2024, 18:58:39 UTC
f37c730 [CI] Disable `tmva-cpu` on `alma9` to avoid openblas clashes with NumPy The `tmva-cpu` BLAS-accelerated TMVA backend uses the openblas version found on the system, but NumPy also ships its own `openblas` library when installed with pip. If both openblas versions are loaded, segfaults can occur if they are incompatible. We currently see this on the `alma9` CI runners. The minimal remedy for this is to just disable the TMVA BLAS backend. Nobody is using the CPU to train neural nets nowadays anyway. Like this, we don't have to disable features like PyMVA or RBDT. 22 April 2024, 18:58:39 UTC
8ee96f2 [tutorials] Fix `tensorflow` and `pytorch` detection in TMVA tutorial This is a follow-up on 872886bcc. That commit was reordering code in the wrong way: the initialization of the `useKerasCNN` and `usePyTorchCNN` variables should have also been moved to the top. This fixes the current failures on Windows. 21 April 2024, 00:33:29 UTC
42ccbf1 [TMVA] Avoid torch-cppyy symbol clashing problem in tmva tutorials Apply the same fix as in a561a9fe09, but for PyTorch. 20 April 2024, 18:37:00 UTC
2949602 [tutorials] Veto PyMVA tutorials if not built with `tmva-pymva` 20 April 2024, 18:37:00 UTC
e166dc9 [PyROOT] Remove now unnecessary test The test should be just removed since the initial reason for having that test is now void. The reason was to have *some way* to check that the packages we thought we had on our CI machines were actually there, since the Jenkins node didn't have any environment management. Now with the github actions CI our environment is more properly managed, at least for Linux. MacOS should get the same treatment at some point, but we can now more safely say "we know which packages are installed on the CI" than before. 20 April 2024, 18:37:00 UTC
d9108a8 Add missing `onnx` to requirements.txt The `onnx` Python module is required for TMVA SOFIE. Adding this will fix the test failures of `gtest-tmva-sofie-test-TestSofieModels`: ``` [ RUN ] SOFIE.Linear_B1 using batch-size = 1 input dim = 10 nlayers = 4 input data torch.Size([1, 10]) tensor([[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]]) Traceback (most recent call last): File "/py-venv/ROOT-CI/lib/python3.8/site-packages/torch/onnx/_internal/onnx_proto_utils.py", line 221, in _add_onnxscript_fn import onnx ModuleNotFoundError: No module named 'onnx' ``` 20 April 2024, 18:37:00 UTC
e0c2052 [TMVA] Enforce supported version of TensorFlow We do not support Tensorflow >2.15 since Keras 3.x brings several breaking changes https://github.com/keras-team/keras/issues/18467 20 April 2024, 01:17:22 UTC
7e3c0d8 [sckip-ci][tmva] Add tensorflow and torch in requirements.txt 20 April 2024, 01:17:22 UTC
2c04b26 [TMVA] Correctly link `blas` in PyMVA tests 20 April 2024, 01:17:22 UTC
c6cbbf3 [tutorials] When pymva is not there exclude tutorials based on Python ML libs 20 April 2024, 01:17:22 UTC
7d97261 [RF] Comment out `ryml` backend for RooFit JSON interface The RapidYAML of the RooFit JSON interface is now always disabled because it doesn't work anymore for RooFitHS3. The `nlohmann_json` interface is always used and works well, hence rapidyaml was not tested anymore and the code was rotting until it didn't work. The relevant code is still left in the CMakeLists.txt in case someone wants to revive the RapilYAML backend. Closes #15118. 17 April 2024, 15:25:16 UTC
0695a33 [TMVA] Avoid xgboost-cppyy symbol clashing problem in tmva101_Training XGBoost has to be imported before ROOT to avoid crashes because of clashing std::regexp symbols that are exported by cppyy. See also: https://github.com/wlav/cppyy/issues/227 15 April 2024, 16:21:50 UTC
3a07e12 [TMVA] Fix failing `rbdt_xgboost` test * avoid warnings with opened file that is not closed * don't assume the number of features is in the `_features_count` attribute (that one doesn't exist with xgboost 2.0) * support the `"reg:squarederror"` target, which is the default regression target in xgboost 2.0 15 April 2024, 16:21:50 UTC
c32e13c [CI] Add `xgboost` and `scikit-learn` to requirements This should be added so we can test RBDT in the CI. 15 April 2024, 16:21:50 UTC
7fd6fb5 Make argument adjustment in SetArg if the function signature is available. This patch optimizes performance by moving the argument adjustments in SetArg and not in exec. Exec can be called many times and in hot loops. We also report errors rather than asserting. 15 April 2024, 15:02:53 UTC
e8de0f1 Readjust the representation of CallFunc arguments to match the callee signature. TClingCallFunc provides an interface between compiled and interpreted code. That is, we can create at compile time a function to be called by the interpreter and get back its result into compiled code. To do that we require connecting to a function declaration available in the interpreter and calling it by setting input arguments. However, the input arguments are set with the SetArg which can resolve to a type and argument representation different from the signature of the interpreter function we will call. This is practically not a problem integral types because their representation is mostly the same. The problem becomes visible when we call SetArg with a `double` and the function signature expects a `float`. That works out of the box when the compiler can see both ends and insert proper representation casts. Unfortunately, when crossing the compiler/interpreter boundary we use `void*` and that information is lost. This patch adds some representation adjustments so that the compiled code (SetArg) and the interpreted code (CallFunc) can agree on the memory representation before calling. Fixes #14405 15 April 2024, 15:02:53 UTC
90315ee [hist] Add test for TH2Poly::Copy Check bin error and bin content after TH2POly::Copy 12 April 2024, 22:23:33 UTC
93d515f [hist] Fix TH2Poly::Copy by calling Copy for the TH2 base class This commit fixes also the TH1::Copy where the virtual UpdateBinCOntent function was called. The TH1::Copy should not copy content for the derived classes. However, this is currently done for the case of TH1D,TH1F,..., i.e. all classes deriving from TArray's and should not be done for the other cases (e.g. TH2Poly). 12 April 2024, 22:23:33 UTC
f87a6cd [hist] Implement Copy for TH2Poly Add TH2Poly::Copy function and implement also using Copy the copy ctor and assignment operator 12 April 2024, 22:23:33 UTC
66e872b [tmva] Warn when using RBDT and xgboost Representing the current situation at https://github.com/root-project/root/issues/15197 11 April 2024, 09:54:14 UTC
9265eb4 [TMVA] Disable `rbdt_xgboost` test Disabled because RBDT doesn't support the imbalanced tree structure of XGBoost models. We need to disable this test right now, because we have now installed XGBoost on the GitHub action runners, and this test will be red. This test never worked, we just never noticed because XGBoost was not installed on any CI platform. Backport of a commit from #15183. 09 April 2024, 23:38:03 UTC
cad191f Remove std::string_view comparison operators. As these operators are not needed anymore we can get rid of them. Related to issue #13993 and #14244 09 April 2024, 01:33:07 UTC
9be8ca1 [skip-ci][ci] Skip matrix overrides in case of workflow_dispatch events, which is what is triggered when releasing. 03 April 2024, 10:01:54 UTC
back to top