Hi all:
compiling root6 success on mac os 10.13 high sierra.
after add some TString::Data() in cast TString to std::string in servel files
compiled OK on high sierra.
I don’t know if it cost memory leak. but it does worked.
Could someone help to upload to master version.
below is what I modify: Hope that will help ROOT
Author: chenxu chenxu@ihep.ac.cn 2017-09-21 21:21:26
Committer: chenxu chenxu@ihep.ac.cn 2017-09-21 21:21:26
Parent: 5841454063dcfbc5c14db9f4dfa024abe899045d ([cxxmodules] Print stacktrace before aborting on a missing exception.)
Branch: master
Follows: v6-09-02
Precedes:
add TString -> TString::Data for std::string use
-------------------------- hist/hist/src/TFormula.cxx --------------------------
index 41e470be48…a6d10e1df8 100644
@@ -2007,7 +2007,7 @@ void TFormula::ProcessFormula(TString &formula)
if (fun.fName.Contains("::")) // add support for nested namespaces
{
// look for last occurence of “::”
-
std::string name(fun.fName);
-
std::string name(fun.fName.Data()); size_t index = name.rfind("::"); assert(index != std::string::npos); TString className = fun.fName(0, fun.fName(0, index).Length());
@@ -2179,7 +2179,7 @@ void TFormula::ProcessFormula(TString &formula)
// save copy of inputFormula in a std::strig for the unordered map
// and also formula is same as FClingInput typically and it will be modified
-
std::string inputFormula = std::string(formula);
-
std::string inputFormula = std::string(formula.Data()); // valid input formula - try to put into Cling TString argumentsPrototype = TString::Format("%s%s%s", (hasVariables ? "Double_t *x" : ""),
----------------------------- main/src/nbmain.cxx -----------------------------
index 55d4f2f3aa…8490149290 100644
@@ -173,9 +173,9 @@ static bool CreateStamp(string dest)
int main()
{
- string rootbin(TROOT::GetBinDir());
- string rootlib(TROOT::GetLibDir());
- string rootetc(TROOT::GetEtcDir());
-
string rootbin(TROOT::GetBinDir().Data());
-
string rootlib(TROOT::GetLibDir().Data());
-
string rootetc(TROOT::GetEtcDir().Data());
// If needed, install ROOT notebook files in the user’s home directory
#ifdef WIN32
--------------------- math/minuit/src/TMinuitMinimizer.cxx ---------------------
index 3fad632515…58c11a86d3 100644
@@ -454,7 +454,7 @@ std::string TMinuitMinimizer::VariableName(unsigned int ivar) const {
// return the variable name
if (!CheckMinuitInstance()) return std::string();
if (!CheckVarIndex(ivar)) return std::string();
- return std::string(fMinuit->fCpnam[ivar]);
- return std::string((fMinuit->fCpnam[ivar]).Data());
}
int TMinuitMinimizer::VariableIndex(const std::string & ) const {
-------------------------- tmva/tmva/src/Factory.cxx --------------------------
index 265562f4e2…adf65f9365 100644
@@ -392,7 +392,7 @@ TMVA::MethodBase* TMVA:
:BookMethod( TMVA::DataLoader loader, TString t
// initialize methods
IMethod im;
if (!boostNum) {
-
im = ClassifierFactory::Instance().Create( std::string(theMethodName),
-
im = ClassifierFactory::Instance().Create( std::string(theMethodName.Data()), fJobName, methodTitle, loader->DefaultDataSetInfo(),
@@ -1125,7 +1125,7 @@ void TMVA:
:TrainAllMethods()
// recreate
m = dynamic_cast<MethodBase*>( ClassifierFactory::Instance()
-
.Create( std::string(Types::Instance().GetMethodName(methodType)),
-
.Create( std::string(Types::Instance().GetMethodName(methodType).Data()), dataSetInfo, weightfile ) ); if( m->GetMethodType() == Types::kCategory ){ MethodCategory *methCat = (dynamic_cast<MethodCategory*>(m));
------------------------ tmva/tmva/src/MethodBoost.cxx ------------------------
index 5dcb7bbb65…4fe240ae79 100644
@@ -393,7 +393,7 @@ void TMVA::MethodBoost::Train()
// the first classifier shows the option string output, the rest not
if (fCurrentMethodIdx>0) TMVA::MsgLogger::InhibitOutput();
-
IMethod* method = ClassifierFactory::Instance().Create(std::string(fBoostedMethodName),
-
IMethod* method = ClassifierFactory::Instance().Create(std::string(fBoostedMethodName.Data()), GetJobName(), Form("%s_B%04i", fBoostedMethodTitle.Data(),fCurrentMethodIdx), DataInfo(),
----------------------- tmva/tmva/src/MethodCategory.cxx -----------------------
index 416fd54dd1…1f730d2cfc 100644
@@ -147,7 +147,7 @@ TMVA::IMethod* TMVA::MethodCategory::AddMethod( const TCut& theCut,
const TString& theTitle,
const TString& theOptions )
{
- std::string addedMethodName = std::string(Types::Instance().GetMethodName(theMethod));
-
std::string addedMethodName = std::string(Types::Instance().GetMethodName(theMethod).Data());
Log() << kINFO << "Adding sub-classifier: " << addedMethodName << “::” << theTitle << Endl;
-------------------- tmva/tmva/src/MethodCompositeBase.cxx --------------------
index 7a138c9811…6314cd986d 100644
@@ -194,7 +194,7 @@ void TMVA::MethodCompositeBase::ReadWeightsFromXML( void* wghtnode )
((TMVA::MethodBoost*)this)->BookMethod( Types::Instance().GetMethodType( methodTypeName), methodName, optionString );
}
fMethods.push_back(ClassifierFactory::Instance().Create(
-
std::string(methodTypeName),jobName, methodName,DataInfo(),optionString));
-
std::string(methodTypeName.Data()),jobName, methodName,DataInfo(),optionString)); fMethodWeight.push_back(methodWeight); MethodBase* meth = dynamic_cast<MethodBase*>(fMethods.back());
@@ -259,7 +259,7 @@ void TMVA::MethodCompositeBase::ReadWeightsFromStream( std::istream& istr )
((TMVA::MethodBoost*)this)->BookMethod( Types::Instance().GetMethodType( methodName), methodTitle, optionString );
}
else methodTitle=Form("%s (%04i)",GetMethodName().Data(),fCurrentMethodIdx);
-
fMethods.push_back(ClassifierFactory::Instance().Create( std::string(methodName), jobName,
-
fMethods.push_back(ClassifierFactory::Instance().Create( std::string(methodName.Data()), jobName, methodTitle,DataInfo(), optionString) ); fMethodWeight.push_back( methodWeight ); if(MethodBase* m = dynamic_cast<MethodBase*>(fMethods.back()) )
--------------------------- tmva/tmva/src/Reader.cxx ---------------------------
index 94a8b28963…0b67867d43 100644
@@ -401,7 +401,7 @@ TMVA::IMethod* TMVA::Reader::BookMVA( const TString& methodTag, const TString& w
TMVA::IMethod* TMVA::Reader::BookMVA( TMVA::Types::EMVA methodType, const TString& weightfile )
{
- IMethod* im = ClassifierFactory::Instance().Create(std::string(Types::Instance().GetMethodName( methodType )),
-
IMethod* im = ClassifierFactory::Instance().Create(std::string(Types::Instance().GetMethodName( methodType ).Data()),
DataInfo(), weightfile );MethodBase method = (dynamic_cast<MethodBase>(im));
@@ -440,7 +440,7 @@ TMVA::IMethod* TMVA::Reader::BookMVA( TMVA::Types::EMVA methodType, const char*
#if ROOT_VERSION_CODE >= ROOT_VERSION(5,26,00)// books MVA method from weightfile
- IMethod* im = ClassifierFactory::Instance().Create(std::string(Types::Instance().GetMethodName( methodType )),
-
IMethod* im = ClassifierFactory::Instance().Create(std::string(Types::Instance().GetMethodName( methodType ).Data()),
DataInfo(), “” );MethodBase method = (dynamic_cast<MethodBase>(im));
it will not.
Could someone help to upload to master version.
Your changes are essentially the ones added as work around as commit 263508429dec26449513914e71f0f71c9ce9485f.
Thanks,
Philippe.