GithubHelp home page GithubHelp logo

Comments (12)

eguiraud avatar eguiraud commented on May 18, 2024

Another reproducer:

~ root -l
root [0] Long32_t ba;
ROOT_prompt_0:1:9: error: expected ';' after expression
Long32_t ba;
        ^
        ;
ROOT_prompt_0:1:10: error: use of undeclared identifier 'ba'
Long32_t ba;
         ^
root [1] Long64_t ba;
root.exe: ../../../../../../../../root_dbg/interpreter/llvm/src/tools/clang/lib/Sema/SemaDecl.cpp:12576: clang::Decl* clang::Sema::ActOnFinishFunctionBody(clang::Decl*, clang::Stmt*, bool): Assertion `!Cleanup.exprNeedsCleanups() && "Unaccounted cleanups in function"' failed.

from root.

jalopezg-git avatar jalopezg-git commented on May 18, 2024

Thanks @eguiraud, I will take a look at this thing soon. Actually, I think these are two different problems, but we'll see...

from root.

jalopezg-git avatar jalopezg-git commented on May 18, 2024

Another reproducer:

~ root -l
root [0] Long32_t ba;
ROOT_prompt_0:1:9: error: expected ';' after expression
Long32_t ba;
        ^
        ;
ROOT_prompt_0:1:10: error: use of undeclared identifier 'ba'
Long32_t ba;
         ^
root [1] Long64_t ba;
root.exe: ../../../../../../../../root_dbg/interpreter/llvm/src/tools/clang/lib/Sema/SemaDecl.cpp:12576: clang::

As suspected, these were two different issues. The quoted issue was fixed in #9160. The original reported issue is to be investigated.

from root.

eguiraud avatar eguiraud commented on May 18, 2024

This is still a problem in 6.26.04:

root [0] ROOT::RDataFrame(10).Define("x", "42").Histo1D("x").DrawClone()
ROOT_prompt_0:1:52: error: no member named 'DrawClone' in 'ROOT::RDF::RResultPtr<TH1D>'; did you mean to use '->' instead of '.'?
ROOT::RDataFrame(10).Define("x", "42").Histo1D("x").DrawClone()
                                                   ^
                                                   ->
root [1] ROOT::RDataFrame(10).Define("x", "42").Histo1D("x")->DrawClone()
root.exe: /home/conda/feedstock_root/build_artifacts/root_base_1654795774398/work/root-source/interpreter/cling/lib/Interpreter/DynamicLibraryManagerSymbol.cpp:1187: std::string cling::Dyld::searchLibrariesForSymbol(llvm::StringRef, bool): Assertion `!llvm::sys::DynamicLibrary::SearchForAddressOfSymbol(mangledName) && "Library already loaded, please use dlsym!"' failed.

from root.

jalopezg-git avatar jalopezg-git commented on May 18, 2024

Thanks for the ping, @eguiraud! :-)

I had some work on a branch that fixes this and other related issues (grouped in #10049), but I still need to find the time to polish that code.

from root.

eguiraud avatar eguiraud commented on May 18, 2024

This is still present in v6.28.04 (LLVM 13) but the error is much more verbose:

/tmp root -l
root [0] ROOT::RDataFrame(10).Define("x", "42").Histo1D("x").DrawClone()
ROOT_prompt_0:1:52: error: no member named 'DrawClone' in 'ROOT::RDF::RResultPtr<TH1D>'; did you mean to use '->' instead of '.'?
ROOT::RDataFrame(10).Define("x", "42").Histo1D("x").DrawClone()
                                                   ^
                                                   ->
root [1] ROOT::RDataFrame(10).Define("x", "42").Histo1D("x")->DrawClone()
IncrementalExecutor::executeFunction: symbol '_ZSt4swapIP4TH1DENSt9enable_ifIXsr6__and_ISt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS5_ESt18is_move_assignableIS5_EEE5valueEvE4typeERS5_SE_' unresolved while linking [cling interface function]!
You are probably missing the definition of std::enable_if<__and_<std::__not_<std::__is_tuple_like<TH1D*> >, std::is_move_constructible<TH1D*>, std::is_move_assignable<TH1D*> >::value, void>::type std::swap<TH1D*>(TH1D*&, TH1D*&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZSt11make_sharedIN4ROOT8Internal3RDF13RJittedActionEJRNS0_6Detail3RDF12RLoopManagerERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EERNS2_15RColumnRegisterESI_EESt10shared_ptrINSt9enable_ifIXntsr8is_arrayIT_EE5valueESN_E4typeEEDpOT0_' unresolved while linking [cling interface function]!
You are probably missing the definition of std::shared_ptr<std::enable_if<!is_array<ROOT::Internal::RDF::RJittedAction>::value, ROOT::Internal::RDF::RJittedAction>::type> std::make_shared<ROOT::Internal::RDF::RJittedAction, ROOT::Detail::RDF::RLoopManager&, 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> > > > const&, ROOT::Internal::RDF::RColumnRegister&, 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> > > > const&>(ROOT::Detail::RDF::RLoopManager&, 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> > > > const&, ROOT::Internal::RDF::RColumnRegister&, 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> > > > const&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZSt4moveIRSt10shared_ptrIN4ROOT6Detail3RDF13RJittedDefineEEEONSt16remove_referenceIT_E4typeEOS8_' unresolved while linking [cling interface function]!
You are probably missing the definition of std::remove_reference<std::shared_ptr<ROOT::Detail::RDF::RJittedDefine>&>::type&& std::move<std::shared_ptr<ROOT::Detail::RDF::RJittedDefine>&>(std::shared_ptr<ROOT::Detail::RDF::RJittedDefine>&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZSt4moveIRN4ROOT8Internal3RDF15RColumnRegisterEEONSt16remove_referenceIT_E4typeEOS6_' unresolved while linking [cling interface function]!
You are probably missing the definition of std::remove_reference<ROOT::Internal::RDF::RColumnRegister&>::type&& std::move<ROOT::Internal::RDF::RColumnRegister&>(ROOT::Internal::RDF::RColumnRegister&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZSt4moveIRKSt10shared_ptrIN4ROOT8Internal3RDF13RJittedActionEEEONSt16remove_referenceIT_E4typeEOS9_' unresolved while linking [cling interface function]!
You are probably missing the definition of std::remove_reference<std::shared_ptr<ROOT::Internal::RDF::RJittedAction> const&>::type&& std::move<std::shared_ptr<ROOT::Internal::RDF::RJittedAction> const&>(std::shared_ptr<ROOT::Internal::RDF::RJittedAction> const&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4ROOT8Internal3RDF14MakeWeakOnHeapINS1_13RJittedActionEEEPSt8weak_ptrIT_ERKSt10shared_ptrIS5_E' unresolved while linking [cling interface function]!
You are probably missing the definition of std::weak_ptr<ROOT::Internal::RDF::RJittedAction>* ROOT::Internal::RDF::MakeWeakOnHeap<ROOT::Internal::RDF::RJittedAction>(std::shared_ptr<ROOT::Internal::RDF::RJittedAction> const&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4ROOT8Internal3RDF16MakeSharedOnHeapI4TH1DEEPSt10shared_ptrIT_ERKS6_' unresolved while linking [cling interface function]!
You are probably missing the definition of std::shared_ptr<TH1D>* ROOT::Internal::RDF::MakeSharedOnHeap<TH1D>(std::shared_ptr<TH1D> const&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4ROOT6Detail3RDF13MakeResultPtrI4TH1DEENS_3RDF10RResultPtrIT_EERKSt10shared_ptrIS6_ERNS1_12RLoopManagerES8_INS_8Internal3RDF11RActionBaseEE' unresolved while linking [cling interface function]!
You are probably missing the definition of ROOT::RDF::RResultPtr<TH1D> ROOT::Detail::RDF::MakeResultPtr<TH1D>(std::shared_ptr<TH1D> const&, ROOT::Detail::RDF::RLoopManager&, std::shared_ptr<ROOT::Internal::RDF::RActionBase>)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZSteqI4TH1DEbRKSt10shared_ptrIT_EDn' unresolved while linking [cling interface function]!
You are probably missing the definition of bool std::operator==<TH1D>(std::shared_ptr<TH1D> const&, decltype(nullptr))
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4ROOT8Internal3RDF16MakeSharedOnHeapINS_6Detail3RDF9RNodeBaseEEEPSt10shared_ptrIT_ERKS8_' unresolved while linking [cling interface function]!
You are probably missing the definition of std::shared_ptr<ROOT::Detail::RDF::RNodeBase>* ROOT::Internal::RDF::MakeSharedOnHeap<ROOT::Detail::RDF::RNodeBase>(std::shared_ptr<ROOT::Detail::RDF::RNodeBase> const&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZStneIN4ROOT8Internal3RDF11RActionBaseEEbRKSt10shared_ptrIT_EDn' unresolved while linking [cling interface function]!
You are probably missing the definition of bool std::operator!=<ROOT::Internal::RDF::RActionBase>(std::shared_ptr<ROOT::Internal::RDF::RActionBase> const&, decltype(nullptr))
Maybe you need to load the corresponding shared library?
root [2]

from root.

eguiraud avatar eguiraud commented on May 18, 2024

Still present in current master:

root [0] ROOT::RDataFrame(10).Define("x", "42").Histo1D("x").DrawClone()
ROOT_prompt_0:1:52: error: no member named 'DrawClone' in 'ROOT::RDF::RResultPtr<TH1D>'; did you mean to use '->' instead of '.'?
ROOT::RDataFrame(10).Define("x", "42").Histo1D("x").DrawClone()
                                                   ^
                                                   ->
root [1] ROOT::RDataFrame(10).Define("x", "42").Histo1D("x")->DrawClone()
IncrementalExecutor::executeFunction: symbol '_ZSt4moveIRN4ROOT8Internal3RDF15RColumnRegisterEEONSt16remove_referenceIT_E4typeEOS6_' unresolved while linking [cling interface function]!
You are probably missing the definition of std::remove_reference<ROOT::Internal::RDF::RColumnRegister&>::type&& std::move<ROOT::Internal::RDF::RColumnRegister&>(ROOT::Internal::RDF::RColumnRegister&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZSt4moveIRSt10shared_ptrIN4ROOT6Detail3RDF13RJittedDefineEEEONSt16remove_referenceIT_E4typeEOS8_' unresolved while linking [cling interface function]!
You are probably missing the definition of std::remove_reference<std::shared_ptr<ROOT::Detail::RDF::RJittedDefine>&>::type&& std::move<std::shared_ptr<ROOT::Detail::RDF::RJittedDefine>&>(std::shared_ptr<ROOT::Detail::RDF::RJittedDefine>&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E' unresolved while linking [cling interface function]!
You are probably missing the definition of void std::_Destroy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, 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> > >&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZStneIN4ROOT8Internal3RDF11RActionBaseEEbRKSt10shared_ptrIT_EDn' unresolved while linking [cling interface function]!
You are probably missing the definition of bool std::operator!=<ROOT::Internal::RDF::RActionBase>(std::shared_ptr<ROOT::Internal::RDF::RActionBase> const&, decltype(nullptr))
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZSt4swapIP4TH1DENSt9enable_ifIXsr6__and_ISt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS5_ESt18is_move_assignableIS5_EEE5valueEvE4typeERS5_SE_' unresolved while linking [cling interface function]!
You are probably missing the definition of std::enable_if<__and_<std::__not_<std::__is_tuple_like<TH1D*> >, std::is_move_constructible<TH1D*>, std::is_move_assignable<TH1D*> >::value, void>::type std::swap<TH1D*>(TH1D*&, TH1D*&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZSteqI4TH1DEbRKSt10shared_ptrIT_EDn' unresolved while linking [cling interface function]!
You are probably missing the definition of bool std::operator==<TH1D>(std::shared_ptr<TH1D> const&, decltype(nullptr))
Maybe you need to load the corresponding shared library?

from root.

eguiraud avatar eguiraud commented on May 18, 2024

I think the fixed state should behave like this:

root [0] ROOT::RDataFrame(10).Define("x", "42").Histo1D("x").DrawClone()
ROOT_prompt_0:1:52: error: no member named 'DrawClone' in 'ROOT::RDF::RResultPtr<TH1D>'; did you mean to use '->' instead of '.'?
ROOT::RDataFrame(10).Define("x", "42").Histo1D("x").DrawClone()
                                                   ^
                                                   ->
root [1] ROOT::RDataFrame(10).Define("x", "42").Histo1D("x")->DrawClone()
root [2]

The first (wrong) line produces a helpful compiler error, the second (valid) line produces a plot.

from root.

dpiparo avatar dpiparo commented on May 18, 2024

The issue is still there with master and LLVM 16. I add in the loop @devajithvs , who might be able to authoritatively comment about the issue.

from root.

hahnjo avatar hahnjo commented on May 18, 2024

To add my memory here: I think this was originally fixed by Javier, but I ended up re-introducing it when I made the remaining tests pass to merge #13565 😞

from root.

dpiparo avatar dpiparo commented on May 18, 2024

@devajithvs do you think this is something easy to fix?

from root.

devajithvs avatar devajithvs commented on May 18, 2024

I was looking into this and this seems similar to the issue: #10049

It's strange that this works:

root [0] std::unique_ptr<TFile> foo{TFile::Open("foo.root", "RECREATE")};
root [1] foo.GetName()
ROOT_prompt_1:1:4: error: no member named 'GetName' in 'std::unique_ptr<TFile, std::default_delete<TFile> >'; did you mean to use '->' instead of '.'?
foo.GetName()
   ^
   ->
root [2] foo->GetName()
(const char *) "foo.root"

while the example here doesn't:

root [0] ROOT::RDataFrame(10).Define("x", "42").Histo1D("x").DrawClone()
ROOT_prompt_0:1:52: error: no member named 'DrawClone' in 'ROOT::RDF::RResultPtr<TH1D>'; did you mean to use '->' instead of '.'?
ROOT::RDataFrame(10).Define("x", "42").Histo1D("x").DrawClone()
                                                   ^
                                                   ->
root [1] ROOT::RDataFrame(10).Define("x", "42").Histo1D("x")->DrawClone()
IncrementalExecutor::executeFunction: symbol '_ZSteqI4TH1DEbRKSt10shared_ptrIT_EDn' unresolved while linking [cling interface function]!
You are probably missing the definition of bool std::operator==<TH1D>(std::shared_ptr<TH1D> const&, decltype(nullptr))
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZStneIN4ROOT8Internal3RDF11RActionBaseEEbRKSt10shared_ptrIT_EDn' unresolved while linking [cling interface function]!
You are probably missing the definition of bool std::operator!=<ROOT::Internal::RDF::RActionBase>(std::shared_ptr<ROOT::Internal::RDF::RActionBase> const&, decltype(nullptr))
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZSt4swapIP4TH1DENSt9enable_ifIXsr6__and_ISt6__not_ISt15__is_tuple_likeIT_EESt21is_move_constructibleIS5_ESt18is_move_assignableIS5_EEE5valueEvE4typeERS5_SE_' unresolved while linking [cling interface function]!
You are probably missing the definition of std::enable_if<__and_<std::__not_<std::__is_tuple_like<TH1D*> >, std::is_move_constructible<TH1D*>, std::is_move_assignable<TH1D*> >::value, void>::type std::swap<TH1D*>(TH1D*&, TH1D*&)
Maybe you need to load the corresponding shared library?
root [2] 

from root.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.