cd91d18 | Enrico Guiraud | 08 June 2023, 01:43:24 UTC | [DF] Fix Histo1D("scalar", "collection") Filling a 1D histogram with a scalar value and a collection of weights is well defined and already supported when a histogram model is present. This patch adds support for this case also when a model is not available. | 08 June 2023, 18:44:57 UTC |
3e85a1c | Jonas Rembser | 08 June 2023, 09:35:11 UTC | [CMake] Add `-Wno-deprecated-non-prototype` to build unuran with Clang This fixes some warnings seen in the nighlies: ``` In file included from /System/Volumes/Data/build/night/LABEL/mac13/SPEC/cxx20/V/master/build/math/unuran/unuran-1.8.0-root/src/methods/pinv.c:109: /System/Volumes/Data/build/night/LABEL/mac13/SPEC/cxx20/V/master/build/math/unuran/unuran-1.8.0-root/src/methods/pinv_newton.ch:277:45: warning: passing arguments to '_unur_pinv_cubic_hermite_is_monotone' without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] ! _unur_pinv_cubic_hermite_is_monotone(gen,ui,zi,xval)) ^ /System/Volumes/Data/build/night/LABEL/mac13/SPEC/cxx20/V/master/build/math/unuran/unuran-1.8.0-root/src/methods/pinv.c:79:12: warning: a function declaration without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] static int _unur_pinv_cubic_hermite_is_monotone(); ^ void In file included from /System/Volumes/Data/build/night/LABEL/mac13/SPEC/cxx20/V/master/build/math/unuran/unuran-1.8.0-root/src/methods/pinv.c:109: /System/Volumes/Data/build/night/LABEL/mac13/SPEC/cxx20/V/master/build/math/unuran/unuran-1.8.0-root/src/methods/pinv_newton.ch:316:1: warning: a function declaration without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] _unur_pinv_cubic_hermite_is_monotone(struct unur_gen *gen, double *ui, double *zi, double *xval) ^ ``` https://lcgapp-services.cern.ch/root-jenkins/view/ROOT%20Nightly/job/root-nightly-master/LABEL=mac13,SPEC=cxx20,V=master/lastBuild/parsed_console/ | 08 June 2023, 12:57:44 UTC |
3c7b45a | Jonas Rembser | 08 June 2023, 09:22:08 UTC | [RF][HF] Remove commented-out `Systematic` class from HistFactory Yesterday, I accidentally added a LinkDef entry for `RooStats::HistFactory::Systematic` (2607947ee3) as I didn't realize that this class was commented out. This commit removes this LinkDef entry again, and removes the commented-out class declaration such that these mistakes don't happen again. | 08 June 2023, 12:57:44 UTC |
09c0f12 | Jonas Rembser | 31 May 2023, 20:52:01 UTC | [RF][HF] Fix memory leaks in HistFactory from RooAbsArg::getComponents | 08 June 2023, 12:57:44 UTC |
84eb00e | Jonas Rembser | 23 May 2023, 22:16:19 UTC | [RF][HS3] Support a few more pdfs in RooFit HS3 Support for a few more pdfs was added to the RooFit JSON IO, including unit tests. The files `RooFitHS3_wsexportkeys.json` and `RooFitHS3_wsfactoryexpression.json` also got ordered alphabetically. | 08 June 2023, 12:57:44 UTC |
af78873 | Jonas Rembser | 23 May 2023, 22:15:00 UTC | [RF] Consistent proxy names in RooGamma In `RooGamma`, the proxies were named differently by the regular constructor and the copy-constructor. This should not be, because it breaks code that expects specific proxy names, i.e. the RooFit JSON IO. | 08 June 2023, 12:57:44 UTC |
7664de7 | Jonas Rembser | 23 May 2023, 21:42:59 UTC | [RF][HF] More efficient creation of combined dataset in HistFactory Instead of combining the datasets one-by-one with `RooDataSet::append()`, this commit suggests to construct the combined dataset in one go with the appropriate constructor call to RooDataSet. | 08 June 2023, 12:57:44 UTC |
9aabcbd | Jonas Rembser | 23 May 2023, 00:10:56 UTC | [RF][HS3] Necessary tweaks to pass tests also with `rapidyaml` backend | 08 June 2023, 12:57:44 UTC |
d46c258 | Carsten Burgard | 07 June 2023, 09:31:06 UTC | [RF][HS3] Add IO of external constrains from/to ModelConfig | 08 June 2023, 12:57:44 UTC |
334eb1a | Jonas Rembser | 07 June 2023, 20:54:31 UTC | [RF][HF] Add missing LinkDefs for systematics classes in HistFactory This completes the list of LinkDef entries for the classes in `RooStats/HistFactory/Systematics.h`. Closes #12967. | 08 June 2023, 12:57:44 UTC |
a999ba4 | will-cern | 02 June 2023, 21:11:59 UTC | [RF] Improve Copy Constructor of HypoTestResult While I believe this class and others probably could do with a big rework, in my attempts so far to find ways to use them in their current form I have stumbled across some very annoying behaviours -- this PR fixes one of these: that the results wouldn't copy reliably at all. | 08 June 2023, 12:57:44 UTC |
469e6df | Someone2022 | 02 June 2023, 16:57:28 UTC | [RF] Move output below code in RooFit tutorials Move output below code in RooFit tutorials rendered on the website and suppress Minuit output with `PrintLevel(-1)`. | 08 June 2023, 12:57:44 UTC |
1a3051e | Jonas Rembser | 12 April 2023, 16:34:09 UTC | [RF] Better server redirection in compileForNormSet without attributes Using the new `RooAbsArg::redirectServers()` overload that takes a lookup map of server replacements, the NormalizationHelpers can be improved such that it's not necessary to set the `"ORIGNAME:"` attributes of new servers. This fixes some failures in the RooFit tutorials with BatchMode where some servers eventually aggregated multiple `"ORIGNAME:"` attributes, causing `redirectServers()` to error out. | 08 June 2023, 12:57:44 UTC |
57ce97e | Jonas Rembser | 12 April 2023, 16:33:42 UTC | [RF] New function for server changing without setting attributes If one wants to replace some servers of a RooAbsArg with other servers, this is the the only option you have: ```c++ bool RooAbsArg::redirectServers(const RooAbsCollection& newSetOrig, bool mustReplaceAll, bool nameChange, bool isRecursionStep) ``` That's not so great, because if the new servers have different names, thes old names must be set as the `"ORIGNAME:<myname>"` attribute for the function to know which servers should be replaced. These attributes are generally not reset, and this mutation of the server attributes can cause trouble down the line. Notably, this causes trouble in the BatchMode when compiling the computation graph for a given normalization set. One single new server might replace differently-named original servers. In that case, the new servers get *two* "ORIGNAME:" attributes and the the `redirectServers()` function doesn't know what to do. Also, it's inefficient because of the string matching. For this reason, a new overload is suggested, where one can simply specify what should replace what in a lookup map, and it doesn't matter if the names are different: ```c++ bool RooAbsArg::redirectServers( std::unordered_map<RooAbsArg *, RooAbsArg *> const &replacements ) ``` The implementation of `redirectServers()` calls `RooAbsProxy::changePointer()`, for which such a new overload also had to be added. | 08 June 2023, 12:57:44 UTC |
192ffa8 | Jonas Rembser | 07 February 2023, 12:36:16 UTC | [RF] Factor out marking compiled args in `NormalizationHelpers` Like this, it will be easy in the future to change marking `RooAbsArgs` as compiled without using attributes. | 08 June 2023, 12:57:44 UTC |
f009658 | Jonas Rembser | 25 May 2023, 10:21:37 UTC | [RF] Support multiple NLL with BatchMode existing at the same time As explained in the last commit, it's not possible to evaluate two different likelihoods that share RooAbsArgs by different RooFitDrivers. However, this usecase needs to be supported, because in RooStats is often happens that different likelihoods based on the same model are instantiated. The key to the solution in this commit is the insight that for each likelihood, almost the full compute graph is cloned anyway, *except* for the parameters. Therefore, the solution proposed in this commit is to not set the data tokens for the parameters and not fill the data map with their values. Instead, when querying their values, they are just retrieved from the object itself. This is possible because parameters are always scalar, and the RooAbsReal can already cache scalar members in the `_value` field. | 08 June 2023, 12:57:44 UTC |
68306c9 | Jonas Rembser | 24 May 2023, 20:39:23 UTC | [RF] Add exception if `RooAbsArg::_dataToken` is corrupted The RooFitDriver mutates the RooAbsArgs it evaluates by setting a specific index token to quickly look up cached information for a given RooAbsArg. Because of this, it's not possible to evaluate two computation graphs that share RooAbsArgs with two separate RooFitDrivers. So far, this concurrent evaluation would silently give wrong results, and this commit suggests to throw an exception if the data tokens are set by different RooFitDrivers before they are reset by the first one. | 08 June 2023, 12:57:44 UTC |
00ba45a | Jonas Rembser | 31 May 2023, 23:09:04 UTC | [RF] Use `std::unique_ptr` in RooFit and RooStats tutorials Wrap owning pointers in the RooFit tutorials in `std::unique_ptr`. This has three benefits: 1. Less memory leaks in tutorials (`delete` was almost never done) 2. Tutorials would also run if the `RooFit::OwningPtr` were to be defined at `std::unique_ptr`, which is useful for debug builds 3. Users learn about automatic memory management correctly | 08 June 2023, 12:57:44 UTC |
1589a2d | Jonas Rembser | 25 April 2023, 21:38:08 UTC | [RF] Refactor BatchMode likelihood creation code When creating a likelihood for the batch mode, there are two distinct steps: 1. Create the computation graph for the likelihood 2. Instantiate a RooFitDriver instance to evaluate the likelihood The first step will the shared with the new RooFit Automatic Differentiation (AD) backend. To make this easy, the likelihood creation for the BatchMode is refactored such that both steps listed above don't happen in the same function anymore. After this PR, it will only require small changes to make the codegen+AD backend available to `RooAbsPdf::createNLL()`. | 08 June 2023, 12:57:44 UTC |
0501282 | Jonas Rembser | 18 February 2023, 16:44:27 UTC | [RF] Disable RooFit multiprocess ProcessTimer test It's not easy to make the unit tests in `test_ProcessTimer.cxx` always pass because they compare times spent in different processes that are not deterministic. Therefore, the unit test is disabled for now. This was suggested by @Zeff020, the author of the test. | 08 June 2023, 12:57:44 UTC |
d90feda | Jonas Rembser | 30 May 2023, 23:37:24 UTC | [RF] Introduce `ROOFIT_MEMORY_SAFE_INTERFACES` macro A new preprocessor define is used in the RooFit/Config.h to let the compiler know if the memory-safe version of the RooFit interfaces is enabled. | 08 June 2023, 12:57:44 UTC |
9db83b3 | Jonas Rembser | 30 May 2023, 22:31:44 UTC | [RF] Use `RooFit::OwningPtr<>` also for RooAbsReal::createIntegral() | 08 June 2023, 12:57:44 UTC |
415035f | Jonas Rembser | 30 May 2023, 22:27:55 UTC | [RF] Fix several memory leaks in `RooProdPdf::rearrangeProduct()` Make sure that more of the manually-allocated cached objects are properly deleted. | 08 June 2023, 12:57:44 UTC |
0596611 | Jonas Rembser | 30 May 2023, 14:30:17 UTC | [RF] Remove unused `binb` variable in RooBinnedGenContext | 08 June 2023, 12:57:44 UTC |
8eabdcf | Jonas Rembser | 30 May 2023, 14:29:48 UTC | [RF] Less manual memory management in RooFit | 08 June 2023, 12:57:44 UTC |
3882187 | Someone2022 | 30 May 2023, 12:46:11 UTC | [RF] Modernize memory management in RooStats | 08 June 2023, 12:57:44 UTC |
4423728 | will-cern | 31 May 2023, 10:38:54 UTC | [RF] Fix `getPropagatedError()` negative parameter case for zero error A one-line fix, but should be backported! If the parameter was negative, it was slipping past this line and causing nan error to come back from the function! | 08 June 2023, 12:57:44 UTC |
1ba929b | Jonas Rembser | 30 May 2023, 09:59:50 UTC | [RF] Flag `RooAbsArg::getObservables()` as returning owning pointer This is done with the recently-introduces `RooFit::OwningPtr<T>` alias that is already used for `getParameters()` and other functions. | 08 June 2023, 12:57:44 UTC |
97596bc | Jonas Rembser | 27 May 2023, 16:33:06 UTC | [RF] Always use `addOwned()` overload that takes `unique_ptr` This good practice to have the memory management handled automatically. A few memory leaks were also found and fixed like this. Also, use the `RooFit::OwningPtr<>` for `RooAbsArg::getComponents()`. | 08 June 2023, 12:57:44 UTC |
7f7b521 | Jonas Rembser | 24 May 2023, 14:29:41 UTC | [RF] Add `ExternalConstraints`, createNLL() and fitTo() to ModelConfig * Add a new `ExternalConstraints()` field to the model config, to be directly passed to `createNLL`. This follows exactly the same pattern as the fields for `GlobalObservables()` and `ProjectedObservables()`. * New `ModelConfig::createNLL()` and `fitTo()` functions, such that the user doesn't need to manually transfer the information from the ModelConfig to `RooAbsPdf::createNLL/fitTo()` * Use the new `ModelConfig::createNLL()` in RooStats to give it a little bit of test coverage | 08 June 2023, 12:57:44 UTC |
89e7be7 | Bertrand Bellenot | 06 June 2023, 07:05:27 UTC | [windows] Fix the C++ notebooks on Windows (#12912) (#12951) * [windows][skip-ci] Fix the C++ notebooks on Windows * [windows][skip-ci] Fix the C++ notebooks on Windows Fix the following errors in `bindings/jupyroot/python/JupyROOT/kernel/utils.py`: ``` Traceback (most recent call last): File "C:\Users\bellenot\build\x86\release\bin\JupyROOT\kernel\utils.py", line 70, in __init__ module = importlib.import_module(module_path) File "c:\python39-32\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked ModuleNotFoundError: No module named 'JupyROOT.kernel.magics.magics\\cppmagic' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "c:\python39-32\lib\runpy.py", line 197, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\python39-32\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "C:\Users\bellenot\build\x86\release\bin\JupyROOT\kernel\rootkernel.py", line 137, in <module> main() File "C:\Users\bellenot\build\x86\release\bin\JupyROOT\kernel\rootkernel.py", line 134, in main IPKernelApp.launch_instance(kernel_class=ROOTKernel) File "c:\python39-32\lib\site-packages\traitlets\config\application.py", line 844, in launch_instance app.initialize(argv) File "c:\python39-32\lib\site-packages\traitlets\config\application.py", line 87, in inner return method(app, *args, **kwargs) File "c:\python39-32\lib\site-packages\ipykernel\kernelapp.py", line 637, in initialize self.init_kernel() File "c:\python39-32\lib\site-packages\ipykernel\kernelapp.py", line 489, in init_kernel kernel = kernel_factory(parent=self, session=self.session, File "c:\python39-32\lib\site-packages\traitlets\config\configurable.py", line 537, in instance inst = cls(*args, **kwargs) File "C:\Users\bellenot\build\x86\release\bin\JupyROOT\kernel\rootkernel.py", line 67, in __init__ self.magicloader = MagicLoader(self) File "C:\Users\bellenot\build\x86\release\bin\JupyROOT\kernel\utils.py", line 73, in __init__ raise Exception("Error importing Magic: %s"%module_path) Exception: Error importing Magic: JupyROOT.kernel.magics.magics\cppmagic ``` And these ones in `bindings/jupyroot/python/JupyROOT/helpers/cppcompleter.py`: ``` input_line_37:1:10: fatal error: 'dlfcn.h' file not found ^~~~~~~~~ input_line_41:2:24: error: use of undeclared identifier 'RTLD_NOW' (dlopen("libRint.so", RTLD_NOW)) ^ ``` * Update bindings/jupyroot/python/JupyROOT/kernel/utils.py * Apply suggestion from Vincenzo + fix indentation --------- Co-authored-by: Vincenzo Eduardo Padulano <v.e.padulano@gmail.com> | 06 June 2023, 07:05:27 UTC |
55513fb | Sergey Linev | 02 June 2023, 14:13:34 UTC | [jsroot] 7.3.x 2/06/2023 | 02 June 2023, 14:15:56 UTC |
082af22 | Sergey Linev | 02 June 2023, 11:48:36 UTC | [webgui] support qt6 version when create embedding qualifier | 02 June 2023, 12:04:45 UTC |
bf0eed5 | Philippe Canal | 25 May 2023, 20:06:20 UTC | TClassTable: Remove alternate names upon library unloading. Since TClassAlt record (to save memory) the static string pointer from the dictionary, we also need to unload it when unloading a library (it was previously sorta hidden because library (re)loading was unconditionally adding the alternate (hence 'hidding' older duplicates) | 01 June 2023, 21:52:24 UTC |
25330df | Philippe Canal | 24 May 2023, 20:08:16 UTC | TClassTable: do not record dup record of class template | 01 June 2023, 21:52:24 UTC |
8928d41 | Philippe Canal | 24 May 2023, 20:07:38 UTC | TClassTable: do not load duplicate record for alternate names | 01 June 2023, 21:52:24 UTC |
ec4a9b8 | Philippe Canal | 22 May 2023, 22:46:50 UTC | meta: Fix reloading of library with a module. Prior to this fix, the in-memory rootpcm loaded as part of the module was removed from memory on first use and thus if the library was closed and re-opened/loaded we no longer had the information needed to restore the TClass object corresponding to that library | 01 June 2023, 21:52:24 UTC |
ec255e3 | Philippe Canal | 22 May 2023, 22:45:00 UTC | [NFC] White space change in TGenericClassInfo.cxx | 01 June 2023, 21:52:24 UTC |
ed8d22c | Philippe Canal | 22 May 2023, 22:40:31 UTC | meta: Unload only the TClass actually generated by the library being dlclose'd The TGenericClassInfo's destructor now passes the TClass that they actually generated in addition to the name so that only that TClass is destroyed. This avoid the problem (seen in #12715) where 2 librares (`A` and `B`) have a dictionary for the same STL collection (this is supported) and we have the following sequence of operation: 1. load library A 2. load library B (dictionary registration is ignored as intended) 3. request TClass for STL collection. 4. unload (dclose) library B 5. use TClass for STL collection. With the previous code, step 4. would lead to the TClass for STL collection to be marked as "unloaded" even though it library (A) was still actually loaded. This fix one of the problem in #12715 | 01 June 2023, 21:52:24 UTC |
8268cc3 | Josh Bendavid | 08 March 2023, 19:38:26 UTC | remove gPluginManagerMutex and use the internal RWLock of the underlying fHandlers TList instead | 31 May 2023, 19:49:07 UTC |
5956341 | Josh Bendavid | 25 October 2022, 18:53:04 UTC | reduce the use of locks in TPluginHandler and add fast path to ExecPlugin when type matching can be guaranteed | 31 May 2023, 19:49:07 UTC |
881357f | Josh Bendavid | 25 October 2022, 18:51:27 UTC | [cling] improve thread-safety of TClingCallFunc | 31 May 2023, 19:49:07 UTC |
88f5fa0 | Javier Lopez-Gomez | 30 May 2023, 10:12:03 UTC | [cling] Restore symbol lookup in child interpreters Prior to the upgrade to LLVM13, child interpreters used to also lookup symbols in their parent. This commit introduces a `DefinitionGenerator` that allows for symbol lookup across different `IncrementalJIT` instances, which restores the old behavior. This change fixes the following tests: - CodeUnloading/AtExit.C - MultipleInterpreters/MultipleInterpreters.C Fixes #12455. | 31 May 2023, 19:19:05 UTC |
0084c1f | Javier Lopez-Gomez | 30 May 2023, 10:12:03 UTC | [cling] DeclExtractor: use `BuildReturnStmt()` instead Do not use `ActOnReturnStmt()`, given that the scope returned by `m_Sema->getCurScope()` might be == m_Sema->TUScope which obviously is not a function scope. This fixes the following crash: ``` 1: #3 0x0000556b6a50389e clang::Sema::ActOnReturnStmt(clang::SourceLocation, clang::Expr*, clang::Scope*) (/home/jalopezg/CERN/repos/root/_build/interpreter/llvm/src/bin/cling+0x225389e) 1: #4 0x0000556b69215c56 cling::DeclExtractor::EnforceInitOrder(llvm::SmallVector<clang::Stmt*>&) (/home/jalopezg/CERN/repos/root/_build/interpreter/llvm/src/bin/cling+0xf65c56) 1: #5 0x0000556b69216788 cling::DeclExtractor::ExtractDecl(clang::FunctionDecl*) (/home/jalopezg/CERN/repos/root/_build/interpreter/llvm/src/bin/cling+0xf66788) 1: #6 0x0000556b69216a75 cling::DeclExtractor::Transform(clang::Decl*) (/home/jalopezg/CERN/repos/root/_build/interpreter/llvm/src/bin/cling+0xf66a75) ``` | 31 May 2023, 19:19:05 UTC |
a135909 | Jonas Rembser | 26 May 2023, 10:09:19 UTC | [RF] Add missing declarations for JSONInterface template specializations In the RooFit `JSONInterface` there are some template specializations that are defined in the translation unit but are not declared in the header file. This causes linker errors, because the compiler doesn't know that it has to look for the specializations, as explained here: https://stackoverflow.com/questions/11773960/do-template-specialisations-belong-into-the-header-or-source-file To solve this problem, these small one-line functions are just inlined in the header. | 30 May 2023, 21:04:52 UTC |
7eb3303 | Jonas Rembser | 24 May 2023, 22:14:39 UTC | [RF] Avoid redundant copying of model in RooAbsL constructor This fixes the ASAN test failure of `testLikelihoodSerial` seen in the nightlies. | 30 May 2023, 21:04:52 UTC |
8f202e0 | Jonas Rembser | 24 May 2023, 22:16:55 UTC | [RF] Code format `RooAbsL.cxx` | 30 May 2023, 21:04:52 UTC |
dd32acb | Jonas Rembser | 22 May 2023, 16:05:31 UTC | [RF][HS3] Make it easy to change between lists and dicts | 30 May 2023, 21:04:52 UTC |
6dd189d | Jonas Rembser | 22 May 2023, 11:51:58 UTC | [RF][HS3] Fill auxiliary ModelConfig field also in HistFactoryJSONTool This follows up on the previous commits, fixing the `testHS3HistFactory` unit test. | 30 May 2023, 21:04:52 UTC |
dac9331 | Carsten Burgard | 19 May 2023, 08:49:50 UTC | [RF][HS3] Fixed handling of model configs and observables Some commentsl accompanying these changes: * The ModelConfig is now used as a pointer rather than directly. Not sure why this was needed, but I think that what happened is that a copy was made and then the relevant changes (like setting the workspace and the observable list) were only made on the copy rather than on the in-workspace version. Perhaps a nicer version with a reference could be made, but it works for now * The handling of the datasets was slightly restructured such that the datasets in the analysis are now known to the ModelConfig when building. This way, the list of observables can be extracted correctly from the associated dataset, even when not explicitly given in the analysis object in the JSON (maybe this can be turned into an argument to store the Data in the ModelConfig rather than just store the observable list, which is sort of equivalent from a conceptual point of vew) | 30 May 2023, 21:04:52 UTC |
3ec70e2 | Carsten Burgard | 29 April 2023, 11:31:52 UTC | [RF][HS3] Refactored handling of combined pdfs and datasets Improves the handling of combined Pdfs and Datasets in HS3. Removes the assumption of exactly one simPdf/combData/ModelConfig being present, instead allowing to mix&match multiple possible modelConfigs, combData and simPdfs. | 30 May 2023, 21:04:52 UTC |
e4e010d | Jonas Rembser | 12 April 2023, 09:53:27 UTC | [RF] Write `bool` instead of converting to `int` for JSONInterface | 30 May 2023, 21:04:52 UTC |
937c9a4 | Jonas Rembser | 15 May 2023, 12:07:58 UTC | [RF] Enable JSON IO for RooPower and RooExpPoly Also add some public accessors to the information in the `RooPower`. This is not used by the RooFit JSON IO, but it's needed for the usage of RooPower is CMS combine. | 30 May 2023, 21:04:52 UTC |
39f70e1 | Jonas Rembser | 12 April 2023, 00:17:25 UTC | [RF][HS3] Tag global observables in RooFitHS3 | 30 May 2023, 21:04:52 UTC |
7231396 | Jonas Rembser | 11 April 2023, 23:16:15 UTC | [RF][HS3] Only export parameters that are mentioned in the model | 30 May 2023, 21:04:52 UTC |
55e2026 | Jonas Rembser | 17 May 2023, 12:49:19 UTC | [RF] Support again the BatchMode in `RooUnbinnedL` The new test statistic tests with the BatchMode were disabled for quite some time, because they didn't support the new BatchMode with the RooFitDriver yet. Initial support for the BatchMode in `RooUnbinnedL` is added in this commit, such that the tests are passing again and can be enabled. | 30 May 2023, 21:04:52 UTC |
307f264 | Jonas Rembser | 17 May 2023, 11:03:08 UTC | [RF] Refactor `buildLikelihood` to use C++ builder pattern Using the builder pattern, it is easier to extend the likelihood building the additional parameters. | 30 May 2023, 21:04:52 UTC |
583aca5 | will-cern | 11 May 2023, 17:38:42 UTC | [RF] Make datasets that contain strings cloneable I discovered that RooDataSets that contain RooStringVar aren't cloneable, because the SetBranchAddress method of TTree expects the address of a string pointer, not the address of the string. I added a test that would crash before I implemented the fix in RooStringVar. Should be backported to 6.28 | 30 May 2023, 21:04:52 UTC |
13eb586 | Jonas Rembser | 04 May 2023, 12:57:19 UTC | [RF] Fix gcc13 warnings about `operator==` in RooMultiVarGaussian Using a symmetric `operator==` in RooMultiVarGaussian helper class fixes a gcc13 warning. | 30 May 2023, 21:04:52 UTC |
9e1fd1d | Sergey Linev | 05 May 2023, 13:38:01 UTC | Fix std.modulemap for gcc13 This is needed also in v6-28-00-patches for building with GCC 13 since adding the memory_resource header in commit f7adbd2b04. Co-authored-by: Vassil Vassilev <v.g.vassilev@gmail.com> Co-authored-by: Jonas Hahnfeld <jonas.hahnfeld@cern.ch> (cherry picked from commit e9a8c48e4f207d7015bbd212116486bbecbac066 and commit aae1cd064679f440ad80f39e4ee56bb0c1d9d396) | 30 May 2023, 14:22:51 UTC |
c45d635 | Sergey Linev | 30 May 2023, 11:42:48 UTC | [jsroot] 7.3.2 release fix several fixes | 30 May 2023, 11:54:26 UTC |
c5281da | Jonas Hahnfeld | 26 May 2023, 09:51:54 UTC | TTreeGeneratorBase::AddHeader: Move special case for pair before custom file This makes the test roottest-root-treeproxy-make pass on macOS 13, where a proxy pulling in "pair<int,int>" was trying to include the (private) header __bit_reference. (cherry picked from commit b1412da3d4a9240026402a6739a491b6bf964122) | 30 May 2023, 10:12:44 UTC |
9abbc79 | Jonas Hahnfeld | 19 May 2023, 15:12:59 UTC | [PyROOT] Only forward some tp_flags The pyobj's tp_flags can have a number of other bits set, for example Py_TPFLAGS_HEAPTYPE and Py_TPFLAGS_BASETYPE. Only forward the two bits for Py_TPFLAGS_HAVE_GC and (since Python 3.11) Py_TPFLAGS_MANAGED_DICT. This fixes test failures seen with a Debug build on Fedora 38, but likely affecting all builds against Python 3.11. (cherry picked from commit dedbc755de84486c376115bcdfb8e91f4e058e9d) | 30 May 2023, 10:12:44 UTC |
519af83 | Mattias Ellert | 28 February 2023, 10:02:03 UTC | [RF] Fix testRooAbsL failures from rounding errors with doubles The failure happens on ppc64le and aarch64. This PR changes EXPECT_EQ to EXPECT_DOUBLE_EQ in the affected test. [ RUN ] SimBinnedConstrainedTest.SubEventSections /builddir/build/BUILD/root-6.28.00/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx:293: Failure Expected equality of these values: whole.Sum() Which is: -1263.796050661927 N_events_total_parts.Sum() Which is: -1263.7960506619268 /builddir/build/BUILD/root-6.28.00/roofit/roofitcore/test/TestStatistics/testRooAbsL.cxx:303: Failure Expected equality of these values: whole.Sum() Which is: -1263.796050661927 thrice_N_events_total_parts.Sum() Which is: -1263.7960506619268 [ FAILED ] SimBinnedConstrainedTest.SubEventSections (199 ms) (cherry picked from commit b70fcdb402539a955e2b58d7becef343f7e4ba61) | 30 May 2023, 10:12:44 UTC |
a9b3068 | Jonas Hahnfeld | 16 May 2023, 18:21:01 UTC | [readspeed] Expect error about non existent file Co-authored-by: Javier Lopez-Gomez <javier.lopez.gomez@cern.ch> (cherry picked from commit 251bd404dcd8eb989e0ffc9f7f33d9c5750501c2) | 30 May 2023, 10:12:44 UTC |
638c869 | Jonas Hahnfeld | 16 May 2023, 17:42:56 UTC | Protect EnableImplicitMT() with R__USE_IMT ... otherwise we get a warning. Those should have been caught by the TestSupport library, but that one doesn't work at the moment (see https://github.com/root-project/root/issues/12828). (cherry picked from commit 96b9ebe9d60240a4d486cec838551439fc3d4b2f) | 30 May 2023, 10:12:44 UTC |
cce67ea | Jonas Hahnfeld | 11 May 2023, 16:33:20 UTC | Partial backport of D144626 to fix Decl merging with constraints This is a partial backport of the changes to isSameEntity from commit https://github.com/llvm/llvm-project/commit/2408f97652caadf733a879e1d7d9c0702a80d609 (which lives in a different file in LLVM 13 and was moved to ASTContext at a later point). The gist of the change is that during template instantiation, the constraint / requires clause also gets instantiated and potentially changed. This means that if a function with constraints is used in one module, but included as-is in another, the two of them could not be merged. This change fixes the following error seen on macOS 13 with C++20: ``` /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/reverse_iterator.h:141:23: error: 'std::reverse_iterator<std::string *>::operator->' from module 'std.iterator.__iterator.reverse_iterator' is not present in definition of 'std::reverse_iterator<std::string *>' in module 'std.iterator.__iterator.reverse_iterator' constexpr pointer operator->() const ^ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__iterator/reverse_iterator.h:141:23: note: declaration of 'operator->' does not match ``` Note that this particular code was recently reverted in commit https://github.com/llvm/llvm-project/commit/aeee4ebd689171c963aa5d973e14cb6e731eb147 However, as far as I can tell, this relies on the implementation of deferred concept instantiation which solves the problem from a different angle, but cannot be easily backported to our copy of LLVM: https://github.com/llvm/llvm-project/commit/babdef27c503c0bbbcc017e9f88affddda90ea4e (cherry picked from commit 690903b95cbcdf9960f64deee4695deaec00560b) | 30 May 2023, 10:12:44 UTC |
6fe8856 | Jonas Hahnfeld | 16 May 2023, 08:38:45 UTC | [PyROOT] Replace deprecated np.bool by plain bool The alias was deprecated with numpy-1.20 and now expired in numpy-1.24: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations https://numpy.org/devdocs/release/1.24.0-notes.html#expired-deprecations This change also works with older versions (tested with numpy-1.19). (cherry picked from commit e0a6f8c76595d0c19e87e8924a7fb65fe2206766) | 30 May 2023, 10:12:44 UTC |
2b8d323 | Jonas Hahnfeld | 11 May 2023, 09:30:15 UTC | [RF] RooCurve: Reduce last x by relative value Subtracting a constant 1e-15 might not result in a representation that is different from the previous value. Instead subtract the relative value 1e-9 * dx, with dx being the equidistant step size between points. This fixes stressRooFit on mac13arm. (cherry picked from commit ac79f37ac8d1e08763700011b4e333685f72dcde) | 30 May 2023, 10:12:44 UTC |
3253ce6 | Olivier Couet | 25 May 2023, 11:18:36 UTC | [skip-ci] with the new doxygen the doc footer was corrupted (#12885) (cherry picked from commit d05fe4830381c2ebd435ae8111be3807802ccbbf) (cherry picked from commit e92a6046d0d368864942d22920d1eb7cbb79904f) (cherry picked from commit fe72f2ff3bea97d917e59a852e85946f738e0367) | 26 May 2023, 12:43:46 UTC |
a52a396 | Sergey Linev | 24 May 2023, 10:50:38 UTC | [cmake] disable qt5web option when webgui is not enabled Otherwise variable ROOT_qt5web_FOUND variable will be set and depend project may try to build libraries which using it | 24 May 2023, 14:50:00 UTC |
c3ce08e | Philippe Canal | 18 May 2023, 18:11:52 UTC | HistFactory: open channel and combined files only once | 23 May 2023, 15:51:42 UTC |
8c75af5 | Philippe Canal | 03 March 2023, 19:23:45 UTC | fBits read: preserve kIsOnHeap, always set kNotDeleted. Rather than reading from the file the value of kIsOnHeap, preserve the value that was calculated at object creation time (i.e. in the current execution). For example, for an embedded object (inside an object created on the heap or stack), the bit always need to be off (i.e. it can never be explicitly deleted) | 22 May 2023, 17:58:04 UTC |
36c0bab | Javier Lopez-Gomez | 19 May 2023, 13:55:35 UTC | [cling] Always promote `warn_falloff_nonvoid_function` to error This diagnostic should always be promoted to error, regardless of the ignoring state in `FilteringDiagConsumer`. This fixes the SourceCall/ErrorMacro.C test. The failure became visible after merging https://github.com/root-project/root/pull/12654, given that `IgnorePromptDiags` now defaults to 0 in `makeDefaultCompilationOptions()`. | 19 May 2023, 21:16:22 UTC |
08be8bd | Javier Lopez-Gomez | 19 May 2023, 13:55:35 UTC | [cling] Fix DynamicLibraryManager/cached_realpath.C test Fetching the value of `errno` only makes sense after a failed call to `realpath()`, i.e. if the return value of the function is NULL. | 19 May 2023, 21:16:22 UTC |
07b89af | Javier Lopez-Gomez | 19 May 2023, 13:55:35 UTC | [cling] Fix DynamicLibraryManager/callable_lib_L_AB_order1.C test `--enable-new-dtags` is needed in some toolchains to emit the new ELF dynamic tags, i.e. RUNPATH. Per ld(1) manual page: `By default, the new dynamic tags are not created.` | 19 May 2023, 21:16:22 UTC |
47ddb5b | Javier Lopez-Gomez | 19 May 2023, 13:55:35 UTC | [cling] Fix CodeUnloading/Macros.C test Clang diagnostic verification was unhappy with the previous state of affairs. Move affected `expected-(warning|note)` markers to `Macros.h`. Apparently, as Jonas Hahnfeld found, this failure originated in commit 8deb57c04a5ceea96533d095092fcd4f71d1df94, but is not to be reverted per discussion in https://github.com/root-project/root/pull/12454. | 19 May 2023, 21:16:22 UTC |
c0fb97c | Javier Lopez-Gomez | 18 May 2023, 12:35:51 UTC | [cling] DeclUnloader: remove `TagDecl`s after all other decls The order in which declarations are removed makes a difference, e.g. `MaybeRemoveDeclFromModule()` may require access to type information to make up the mangled name. Thus, we segregate declarations to be removed in `TagDecl`s (i.e., struct / union / class / enum) and other declarations. Removal of `TagDecl`s is deferred until all the other declarations have been processed. Declarations in each group are iterated in reverse order. Fixes #12457. | 19 May 2023, 20:58:18 UTC |
29b4df1 | Enrico Guiraud | 20 April 2023, 18:59:33 UTC | [DF] Re-introduce diagnostics for Define expr returning void The fallback DefineImpl overload that was supposed to fire an helpful static_assert in this case was out of sync with the main overload, so it could not do its job. | 16 May 2023, 14:48:20 UTC |
8da62e3 | Sergey Linev | 12 May 2023, 14:51:20 UTC | [tutorials] Fix links to custom JSROOT in http server tutorials Most of modern browsers block loading of modules from unsecure locations | 15 May 2023, 06:31:18 UTC |
82d75b2 | Sergey Linev | 12 May 2023, 14:49:14 UTC | [http] fix custom JSROOT usage with THttpServer With JSROOT v7 URL links to JSROOT sources are changed for THttpServer. Now syntax is like: ``` import { redraw } from './jsrootsys/modules/main.mjs'; ``` One need to handle also these links for custom JSROOT locations | 15 May 2023, 06:31:18 UTC |
2378f9a | Enrico Guiraud | 10 May 2023, 17:15:28 UTC | [DF] Fix MakeNumpyDataFrame in v6.28 The deprecated overload returned None instead of an RDataFrame after printing the deprecation warning. | 11 May 2023, 16:22:47 UTC |
9a8465b | Bertrand Bellenot | 11 May 2023, 07:10:55 UTC | Fix the wegui ping test on Windows | 11 May 2023, 09:20:40 UTC |
059d8d0 | Sergey Linev | 10 May 2023, 13:02:12 UTC | Add support of openssl 3.1 for libRHTTP building Seems to be, it is compatible with openssl 3.0 | 11 May 2023, 04:04:21 UTC |
80afbbc | Sergey Linev | 10 May 2023, 11:09:35 UTC | Always set positive screen gamma in libAfterImage Starting from libpng16 it is not allowed to set 0 as screen gamma. See comments: https://chromium.googlesource.com/chromium/src/+/master/third_party/libpng/pngrtran.c#830 | 11 May 2023, 04:03:00 UTC |
6e441ed | Sergey Linev | 10 May 2023, 11:23:24 UTC | Fix warning in asimage about redefinition of TObject::Hash() All derived classes should also redefine Hash and call recursive remove | 11 May 2023, 04:03:00 UTC |
f498878 | Jonas Hahnfeld | 10 May 2023, 08:52:50 UTC | TString: Enable spaceship operator with libc++ The feature test __cpp_lib_three_way_comparison is for library support of the three-way comparison. libc++ doesn't expose this yet, presumably because the operator has not been added yet for all classes. However, some classes already use it, which requires us to implement the operator as discussed in https://github.com/root-project/root/pull/12525. (cherry picked from commit b85231d2ad62645f0fe7291a64284f61bb8a83c2) | 10 May 2023, 19:34:32 UTC |
f924cf2 | Sergey Linev | 09 May 2023, 09:24:46 UTC | [webgui] change launch string for headless chrome With previous chrome it was possible to launch it as fork of main root process. With very recent chrome it is no longer possible. Therefore use exec instead. Moreover, one need to add artificial `--dump-dom >/dev/null` to really let chrome wait for not-loaded `root_batch_holder.js` script while headless session is running. Should fix problem with `macphsft26` and latest OpenSUSE | 10 May 2023, 11:25:56 UTC |
f4b01d3 | Bertrand Bellenot | 10 May 2023, 07:10:54 UTC | Resize the canvas when displaying the editor Add forgotten `Resize(w, h);` when the editor is displayed in a stand-alone canvas. This fix an issue reported on the Forum https://root-forum.cern.ch/t/minor-issue-with-new-root-6-28-04/54792 | 10 May 2023, 10:50:43 UTC |
30598a8 | Sergey Linev | 05 May 2023, 12:31:03 UTC | [pad] fix crash in TPad::ShowGuidelines In some cases gPad can be set to tmpGuideLinePad, which is deleted any time ShowGuidelines method is called. In that case pointer on this temporary pad should be removed from TContext object | 08 May 2023, 08:07:14 UTC |
ecea58e | Axel Naumann | 08 May 2023, 03:00:39 UTC | [core] Update "logo" to 2023 (NFC). | 08 May 2023, 03:00:39 UTC |
f4eef84 | Axel Naumann | 08 May 2023, 02:52:00 UTC | "Update ROOT version files to v6.28/05." | 08 May 2023, 02:52:00 UTC |
18b4f31 | Axel Naumann | 08 May 2023, 02:27:26 UTC | "Update ROOT version files to v6.28/04." | 08 May 2023, 02:27:26 UTC |
39453d9 | Axel Naumann | 07 May 2023, 21:54:09 UTC | [relnotes] Update for 6.28/04. | 07 May 2023, 21:58:32 UTC |
cfcc10a | Javier Lopez-Gomez | 07 May 2023, 17:31:22 UTC | [cling] DefinitionShadower: fix crash with C++20 concepts In principle, for a TemplateDecl, `isDefinition()` issues a recursive call passing the templated decl as a parameter. A `ConceptDecl` is derived from `TemplateDecl`, however, it should always be considered a definition. Also, update the DeclShadowing test incorporating a C++20 concept. Fixes #12779. | 07 May 2023, 20:47:57 UTC |
9e11b40 | Philippe Canal | 04 May 2023, 21:42:25 UTC | TClassTable: Fix placement of init check. The previous location, inside NormalizeThenLock's constructor, was 'fatal' as it lead to the destructor potentially unlocked a lock it did not lock (i.e. undefined behavior). Since FindElement no longer check for the initialization we need add the initialization check in the caller as intended. | 05 May 2023, 13:46:20 UTC |
f7adbd2 | Vassil Vassilev | 03 May 2023, 09:52:23 UTC | [cxxmodules] Add memory_resource header to the modulemap. (cherry picked from commit e0b0669b4dd2af9a715c0f74ca366328d362b636) | 03 May 2023, 19:23:20 UTC |
35fc891 | Bertrand Bellenot | 03 April 2023, 19:53:22 UTC | [c++20] Add spaceship operator <=> in TString (#12525) * [c++20] Add spaceship operator <=> in TString In the following code (from `TFormula.cxx`): ``` map< std::pair<TString,Int_t>, pair<TString,TString> > functions; pair<TString, Int_t> key = make_pair(funName, dim); if (functions.find(key) == functions.end()) { ``` `functions.find(key)` always returns `functions.end()`. Adding the spaceship operator `<=>` in TString fixes the issue. This fixes also many failing tests with `std:c++20` * Use __cpp_impl_three_way_comparison instead of __cplusplus version (thanks Bernhard Manfred Gruber!) * Apply suggestion from Bernhard Manfred Gruber * Make sure we only include <compare> with at least std=c++20 * Implement the proper way (avoid hidden friend) thanks Bernhard * Prevent calling 'operator <=>' recursively Prevent the following warning on Windows: ``` C:\root-dev\git\master\core\base\inc\TString.h(175,16): warning C5232: in C++20 this comparison calls 'std::strong_ordering operator <=>(const TString &,const TString &)' recursively ``` (cherry picked from commit 6fc4ddc223acc63eb4121c1aacfa470ce0e6cc1e) | 03 May 2023, 12:42:29 UTC |
3634976 | Jonas Hahnfeld | 27 April 2023, 09:00:21 UTC | Patch builtin_tbb for GCC 13 The new compiler complains that the declaration of task_prefix::task() changes meaning of 'task', as used in task* next_offloaded. (cherry picked from commit 915e17b1e2bf8fc8d3476b9ceea2db8473d18285) | 29 April 2023, 15:50:22 UTC |
6705060 | Chuanqi Xu | 06 December 2022, 09:38:57 UTC | [C++20] [Modules] [Serialization] Deserialize LValuePathSerializationHelper's type properly Close https://github.com/llvm/llvm-project/issues/58716. Tested with libcxx's modules build. When we read the type of LValuePathSerializationHelper, we didn't read the correct type. We read the element type as its name suggests. But the problem here is that it looks like that both the usage and serialization use its type as the top level type. So here is the mismatch. Actually, the type of LValuePathSerializationHelper is never used after Deserialization without the assertion. So it doesn't matter for the release users. And this patch shouldn't change the behavior too. Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D139406 | 29 April 2023, 15:49:14 UTC |