Skip to content

Commit ccd81f3

Browse files
committed
resolve conflicts
2 parents 380dd35 + 6c1bef7 commit ccd81f3

File tree

16 files changed

+404
-131
lines changed

16 files changed

+404
-131
lines changed

CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,10 @@ if(cxxmodules)
142142

143143
set(ROOT_CXXMODULES_COMMONFLAGS "${ROOT_CXXMODULES_COMMONFLAGS} -fmodules -fmodules-cache-path=${CMAKE_BINARY_DIR}/include/pcms/ -fno-autolink -fdiagnostics-show-note-include-stack")
144144

145-
set(ROOT_CXXMODULES_COMMONFLAGS "${ROOT_CXXMODULES_COMMONFLAGS} -fno-implicit-module-maps -fmodule-map-file=${CMAKE_BINARY_DIR}/include/module.modulemap")
145+
# FIXME: We should remove this once libc++ supports -fmodules-local-submodule-visibility.
146+
if (APPLE)
147+
set(ROOT_CXXMODULES_COMMONFLAGS "${ROOT_CXXMODULES_COMMONFLAGS} -fno-implicit-module-maps -fmodule-map-file=${CMAKE_BINARY_DIR}/include/module.modulemap")
148+
endif(APPLE)
146149

147150
configure_file("${CMAKE_SOURCE_DIR}/build/unix/module.modulemap" "${CMAKE_BINARY_DIR}/include/module.modulemap" COPYONLY)
148151

README.md

Lines changed: 66 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
The ROOT System
2-
===============
1+
<img src="https://root-forum.cern.ch/uploads/default/original/2X/3/3fb82b650635bc6d61461f3c47f41786afad4548.png" align="right" height="50"/>
2+
3+
## About
34

45
The ROOT system provides a set of OO frameworks with all the functionality
56
needed to handle and analyze large amounts of data in a very efficient way.
@@ -14,17 +15,76 @@ framework, PROOF, that can considerably speed up an analysis.
1415

1516
Thanks to the built-in C++ interpreter cling, the command, the
1617
scripting and the programming language are all C++. The interpreter
17-
allows for fast prototyping of the macros since it removes the, time
18-
consuming, compile/link cycle. It also provides a good environment to
18+
allows for fast prototyping of the macros since it removes the time
19+
consuming compile/link cycle. It also provides a good environment to
1920
learn C++. If more performance is needed the interactively developed
2021
macros can be compiled using a C++ compiler via a machine independent
2122
transparent compiler interface called ACliC.
2223

23-
2424
The system has been designed in such a way that it can query its databases
2525
in parallel on clusters of workstations or many-core machines. ROOT is
2626
an open system that can be dynamically extended by linking external
2727
libraries. This makes ROOT a premier platform on which to build data
2828
acquisition, simulation and data analysis systems.
2929

30-
ROOT is available under the LGPL license.
30+
[![License: LGPL v2.1](https://img.shields.io/badge/License-LGPL%20v2.1-blue.svg)](http://www.gnu.org/licenses/lgpl-2.1)
31+
32+
## Build Status
33+
| Branch | Continuous | Nightly |
34+
|--------|------------|---------|
35+
| master | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-incremental-master)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-incremental-master/) | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-nightly-master)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-nightly-master/) |
36+
| master-imt | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-incremental-master-imt)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-incremental-master-imt/) | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-nightly-master-imt)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-nightly-master-imt/) |
37+
| v5-34-00-patches | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-incremental-v5-34-00-patches)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-incremental-v5-34-00-patches/) | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-nightly-v5-34-00-patches)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-nightly-v5-34-00-patches/) |
38+
| v6-08-00-patches | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-incremental-v6-08-00-patches)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-incremental-v6-08-00-patches/) | [![Build Status](https://phsft-jenkins.cern.ch/buildStatus/icon?job=root-nightly-v6-08-00-patches)](https://phsft-jenkins.cern.ch/view/ROOT/job/root-nightly-v6-08-00-patches/) |
39+
40+
## Live Demo
41+
[![](https://swanserver.web.cern.ch/swanserver/images/badge_swan_white_150.png)](http://cern.ch/swanserver/cgi-bin/go?projurl=https://github.com/cernphsft/rootbinder.git)
42+
43+
## Screenshots
44+
These screenshots shows some of the plots (produced using ROOT) presented when the Higgs boson discovery was [announced at CERN](http://home.cern/topics/higgs-boson):
45+
46+
![CMS Data MC Ratio Plot](https://d35c7d8c.web.cern.ch/sites/d35c7d8c.web.cern.ch/files/CMS04_1.png)
47+
48+
![Atlas P0 Trends](https://d35c7d8c.web.cern.ch/sites/d35c7d8c.web.cern.ch/files/Atlas06_0.png)
49+
50+
See more screenshots on our [gallery](https://root.cern/gallery).
51+
52+
## Download and Getting Started
53+
See [root.cern download page](https://root.cern/downloading-root) for the latest binary releases.
54+
55+
[Getting started with ROOT.](https://root.cern/getting-started)
56+
57+
## Building
58+
Clone the repo
59+
60+
$ git clone https://github.com/root-project/root.git
61+
62+
Make a directory for building
63+
64+
$ mkdir build
65+
$ cd build
66+
67+
Run cmake and make
68+
69+
$ cmake ../root
70+
$ make -j8
71+
72+
Setup and run ROOT
73+
74+
$ source bin/thisroot.sh
75+
$ root
76+
77+
[More information](https://root.cern/building-root) regarding building.
78+
79+
## Help and Support
80+
- [Forum](https://root.cern/forum/)
81+
- [Issue tracker](https://sft.its.cern.ch/jira/projects/ROOT/issues/ROOT-5820?filter=allopenissues)
82+
- [Report a bug](https://root.cern/bugs) (Requires a [CERN lightweight account](https://account.cern.ch/account/Externals/RegisterAccount.aspx))
83+
- [Mailing lists](https://groups.cern.ch/group/root-dev/default.aspx)
84+
- [Documentation](https://root.cern/guides/reference-guide)
85+
- [Tutorials](https://root.cern/doc/master/group__Tutorials.html)
86+
87+
## Contribution Guidelines
88+
- [Bug reporting guidelines](https://root.cern/guidelines-submitting-bug)
89+
- [Coding conventions](https://root.cern/coding-conventions)
90+
- [Meetings](https://root.cern/meetings)

cmake/modules/RootBuildOptions.cmake

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,11 @@ ROOT_BUILD_OPTION(cxx14 OFF "Build using C++14 compatible mode, requires gcc > 4
9090
ROOT_BUILD_OPTION(libcxx OFF "Build using libc++, requires cxx11 option (MacOS X only, for the time being)")
9191
ROOT_BUILD_OPTION(cxxmodules "Compile with C++ modules enabled." OFF)
9292
ROOT_BUILD_OPTION(castor ON "CASTOR support, requires libshift from CASTOR >= 1.5.2")
93-
ROOT_BUILD_OPTION(ccache OFF "Enable ccache usage for speeding up builds")
93+
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
94+
ROOT_BUILD_OPTION(ccache ON "Enable ccache usage for speeding up builds")
95+
else()
96+
ROOT_BUILD_OPTION(ccache OFF "Enable ccache usage for speeding up builds")
97+
endif()
9498
ROOT_BUILD_OPTION(chirp ON "Chirp support (Condor remote I/O), requires libchirp_client")
9599
ROOT_BUILD_OPTION(cling ON "Enable new CLING C++ interpreter")
96100
ROOT_BUILD_OPTION(cocoa OFF "Use native Cocoa/Quartz graphics backend (MacOS X only)")

core/base/inc/TROOT.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,8 @@ namespace ROOT {
8989
// Enable support for multi-threading within the ROOT code,
9090
// in particular, enables the global mutex to make ROOT thread safe/aware.
9191
void EnableThreadSafety();
92-
// Manage implicit multi-threading within ROOT
92+
/// \brief Enable ROOT's implicit multi-threading for all objects and methods that provide an internal
93+
/// parallelisation mechanism.
9394
void EnableImplicitMT(UInt_t numthreads = 0);
9495
void DisableImplicitMT();
9596
Bool_t IsImplicitMTEnabled();

core/base/src/TROOT.cxx

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -503,18 +503,25 @@ namespace Internal {
503503
}
504504

505505
////////////////////////////////////////////////////////////////////////////////
506-
/// Globally enables the implicit multi-threading in ROOT, activating the
507-
/// parallel execution of those methods in ROOT that provide an internal
508-
/// parallelisation.
509-
/// The 'numthreads' parameter allows to control the number of threads to
510-
/// be used by the implicit multi-threading. However, this parameter is just
511-
/// a hint for ROOT, which will try to satisfy the request if the execution
512-
/// scenario allows it. For example, if ROOT is configured to use an external
513-
/// scheduler, setting a value for 'numthreads' might not have any effect.
514506
/// @param[in] numthreads Number of threads to use. If not specified or
515507
/// set to zero, the number of threads is automatically
516508
/// decided by the implementation. Any other value is
517509
/// used as a hint.
510+
///
511+
/// ROOT must be built with the compilation flag `imt=ON` for this feature to be available.
512+
/// The following objects and methods automatically take advantage of
513+
/// multi-threading if a call to `EnableImplicitMT` has been made before usage:
514+
///
515+
/// - TDataFrame internally runs the event-loop by parallelizing over clusters of entries
516+
/// - TTree::GetEntry reads multiple branches in parallel
517+
/// - TTree::FlushBaskets writes multiple baskets to disk in parallel
518+
///
519+
/// EnableImplicitMT calls in turn EnableThreadSafety.
520+
/// The 'numthreads' parameter allows to control the number of threads to
521+
/// be used by the implicit multi-threading. However, this parameter is just
522+
/// a hint for ROOT: it will try to satisfy the request if the execution
523+
/// scenario allows it. For example, if ROOT is configured to use an external
524+
/// scheduler, setting a value for 'numthreads' might not have any effect.
518525
void EnableImplicitMT(UInt_t numthreads)
519526
{
520527
#ifdef R__USE_IMT
@@ -528,7 +535,7 @@ namespace Internal {
528535
}
529536

530537
////////////////////////////////////////////////////////////////////////////////
531-
/// Disables the implicit multi-threading in ROOT.
538+
/// Disables the implicit multi-threading in ROOT (see EnableImplicitMT).
532539
void DisableImplicitMT()
533540
{
534541
#ifdef R__USE_IMT

interpreter/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ if(NOT DEFINED LLVM_BUILD_TYPE)
8989
set(LLVM_BUILD_TYPE Release CACHE STRING "Build type for LLVM (used to set CMAKE_BUILD_TYPE)")
9090
endif()
9191
if( CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT LLVM_BUILD_TYPE STREQUAL "Debug")
92-
message(WARNING "Selected a 'Debug' build (CMAKE_BUILD_TYPE), be aware that the embedded LLVM will still be built as 'Release'."
93-
" Use the variable LLVM_BUILD_TYPE to control it.")
92+
message(STATUS "Selected a 'Debug' build (CMAKE_BUILD_TYPE), be aware that the embedded LLVM will still be built as 'Release'."
93+
" Use the variable LLVM_BUILD_TYPE to control it.")
9494
endif()
9595
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
9696
set(LLVM_ENABLE_ASSERTIONS "YES")

test/stressGraphics.cxx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1984,8 +1984,7 @@ void th2poly()
19841984
Double_t lat2 = 50;
19851985
TH2Poly *p = new TH2Poly("USA","USA Population",lon1,lon2,lat1,lat2);
19861986

1987-
TFile::SetCacheFileDir(".");
1988-
TFile *f = TFile::Open("http://root.cern.ch/files/usa.root", "CACHEREAD");
1987+
TFile *f = TFile::Open("http://root.cern.ch/files/usa.root");
19891988

19901989
if (!f) {
19911990
printf("Cannot access usa.root. Is internet working ?\n");

test/stressHistogram.cxx

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4390,7 +4390,7 @@ bool testMerge1DLabelAll()
43904390
h3->LabelsOption(">");
43914391

43924392
auto h0 = (TH1*) h1->Clone("h1clone");
4393-
4393+
43944394
h1->Merge(list);
43954395

43964396
h4->LabelsOption("a");
@@ -5558,11 +5558,11 @@ bool testMerge2DExtend(UInt_t extendType = TH1::kAllAxes)
55585558

55595559

55605560
h1->Sumw2();h2->Sumw2();h4->Sumw2();
5561-
5561+
55625562
h1->SetCanExtend(extendType);
55635563
h2->SetCanExtend(extendType);
55645564
h4->SetCanExtend(extendType);
5565-
5565+
55665566
for ( Int_t e = 0; e < nEvents; ++e ) {
55675567
Double_t x = r.Uniform( minRange, maxRange);
55685568
Double_t y = r.Uniform( minRange, maxRange);
@@ -5648,13 +5648,13 @@ bool testMerge3DExtend(UInt_t extendType = TH1::kAllAxes)
56485648
}
56495649

56505650
bool testMerge3DExtendAll() {
5651-
return testMerge3DExtend(TH1::kAllAxes);
5651+
return testMerge3DExtend(TH1::kAllAxes);
56525652
}
56535653
bool testMerge3DExtendX() {
5654-
return testMerge3DExtend(TH1::kXaxis);
5654+
return testMerge3DExtend(TH1::kXaxis);
56555655
}
56565656
bool testMerge3DExtendZ() {
5657-
return testMerge3DExtend(TH1::kZaxis);
5657+
return testMerge3DExtend(TH1::kZaxis);
56585658
}
56595659

56605660
bool testMerge1DExtendProf()
@@ -10183,7 +10183,7 @@ int stressHistogram()
1018310183
testSuite.push_back( &conversionsTestSuite);
1018410184
testSuite.push_back( &fillDataTestSuite);
1018510185

10186-
unsigned int numberOfSuits = testSuite.size();
10186+
unsigned int numberOfSuits = testSuite.size();
1018710187

1018810188
status = 0;
1018910189
for ( unsigned int i = 0; i < numberOfSuits; ++i ) {
@@ -10215,8 +10215,7 @@ int stressHistogram()
1021510215
refFile = TFile::Open(refFileName, "RECREATE");
1021610216
}
1021710217
else {
10218-
TFile::SetCacheFileDir(".");
10219-
refFile = TFile::Open(refFileName, "CACHEREAD");
10218+
refFile = TFile::Open(refFileName);
1022010219
}
1022110220

1022210221
if ( refFile != 0 ) {

tree/tree/src/TLeaf.cxx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,9 @@ void TLeaf::Browse(TBrowser* b)
130130
} else {
131131
if ((fBranch->GetListOfLeaves()->GetEntries() > 1) ||
132132
(strcmp(fBranch->GetName(), GetName()) != 0)) {
133-
TString name;
134-
name.Form("%s.%s", fBranch->GetName(), GetName());
133+
TString name(fBranch->GetName());
134+
if (!name.EndsWith(".")) name += ".";
135+
name += GetName();
135136
fBranch->GetTree()->Draw(name, "", b ? b->GetDrawOption() : "");
136137
} else {
137138
fBranch->GetTree()->Draw(GetName(), "", b ? b->GetDrawOption() : "");

0 commit comments

Comments
 (0)