xtensor-stack / Xtensor.jl

Julia package for xtensor-julia
http://quantstack.net/xtensor
BSD 3-Clause "New" or "Revised" License
41 stars 6 forks source link

Build failure: ‘jl_current_module’ was not declared in this scope; did you mean ‘jl_core_module’? #93

Closed chriselrod closed 5 years ago

chriselrod commented 5 years ago
┌ Error: Error building `Xtensor`, showing the last 100 of log: 
│ -- Detecting C compile features - done
│ -- Check for working CXX compiler: /usr/bin/g++
│ -- Check for working CXX compiler: /usr/bin/g++ -- works
│ -- Detecting CXX compiler ABI info
│ -- Detecting CXX compiler ABI info - done
│ -- Detecting CXX compile features
│ -- Detecting CXX compile features - done
│ -- xtensor-julia v0.8.2
│ -- Found xtl: /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/usr/include/xtl
│ -- Found xtensor: /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/usr/include/xtensor
│ -- Found Julia executable: /home/chriselrod/Documents/languages/julia/usr/bin/julia
│ -- Julia_VERSION_STRING: 1.3.0
│ -- Julia_INCLUDE_DIRS:   /home/chriselrod/Documents/languages/julia/usr/include/julia
│ -- Julia_LIBRARY_DIR:    /home/chriselrod/Documents/languages/julia/usr/lib
│ -- Julia_LIBRARY:        /home/chriselrod/Documents/languages/julia/usr/lib/libjulia.so
│ -- JULIA_HOME:           /home/chriselrod/Documents/languages/julia/usr/bin
│ -- Julia_LLVM_VERSION:   v8.0.0
│ -- Julia_WORD_SIZE:      64
│ -- Found Julia: /home/chriselrod/Documents/languages/julia/usr/lib/libjulia.so (found version "1.3.0") 
│ -- Found JlCxx: 
│ -- Configuring done
│ -- Generating done
│ -- Build files have been written to: /home/chriselrod/.julia/packages/Xtensor/7Cfvz/builds/xtensor-julia
│ Install the project...
│ -- Install configuration: ""
│ -- Installing: /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/usr/include/xtensor-julia/jlarray.hpp
│ -- Installing: /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/usr/include/xtensor-julia/jlcontainer.hpp
│ -- Installing: /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/usr/include/xtensor-julia/jltensor.hpp
│ -- Installing: /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/usr/include/xtensor-julia/jlvectorize.hpp
│ -- Installing: /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/usr/include/xtensor-julia/xtensor_julia_config.hpp
│ -- Installing: /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/usr/lib/cmake/xtensor-julia/xtensor-juliaConfig.cmake
│ -- Installing: /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/usr/lib/cmake/xtensor-julia/xtensor-juliaConfigVersion.cmake
│ -- Installing: /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/usr/lib/cmake/xtensor-julia/xtensor-juliaTargets.cmake
│ -- The C compiler identification is GNU 9.1.1
│ -- The CXX compiler identification is GNU 9.1.1
│ -- Check for working C compiler: /usr/bin/gcc
│ -- Check for working C compiler: /usr/bin/gcc -- works
│ -- Detecting C compiler ABI info
│ -- Detecting C compiler ABI info - done
│ -- Detecting C compile features
│ -- Detecting C compile features - done
│ -- Check for working CXX compiler: /usr/bin/g++
│ -- Check for working CXX compiler: /usr/bin/g++ -- works
│ -- Detecting CXX compiler ABI info
│ -- Detecting CXX compiler ABI info - done
│ -- Detecting CXX compile features
│ -- Detecting CXX compile features - done
│ -- Performing Test HAS_CPP14_FLAG
│ -- Performing Test HAS_CPP14_FLAG - Success
│ -- Found Julia executable: /home/chriselrod/Documents/languages/julia/usr/bin/julia
│ -- Julia_VERSION_STRING: 1.3.0
│ -- Julia_INCLUDE_DIRS:   /home/chriselrod/Documents/languages/julia/usr/include/julia
│ -- Julia_LIBRARY_DIR:    /home/chriselrod/Documents/languages/julia/usr/lib
│ -- Julia_LIBRARY:        /home/chriselrod/Documents/languages/julia/usr/lib/libjulia.so
│ -- JULIA_HOME:           /home/chriselrod/Documents/languages/julia/usr/bin
│ -- Julia_LLVM_VERSION:   v8.0.0
│ -- Julia_WORD_SIZE:      64
│ -- Found Julia: /home/chriselrod/Documents/languages/julia/usr/lib/libjulia.so (found version "1.3.0") 
│ -- Configuring done
│ -- Generating done
│ -- Build files have been written to: /home/chriselrod/.julia/packages/Xtensor/7Cfvz/builds/xtensor-julia-examples
│ Scanning dependencies of target tensors
│ [ 50%] Building CXX object CMakeFiles/tensors.dir/tensors.cpp.o
│ In file included from /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/xtensor-julia-examples/tensors.cpp:16:
│ /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/usr/include/xtensor-julia/jlarray.hpp: In static member function ‘static jl_datatype_t* jlcxx::static_type_mapping<xt::jlarray<T> >::julia_type()’:
│ /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/usr/include/xtensor-julia/jlarray.hpp:459:31: error: ‘jl_current_module’ was not declared in this scope; did you mean ‘jl_core_module’?
│   459 |                 jl_get_global(jl_current_module, jl_symbol("Array")),
│       |                               ^~~~~~~~~~~~~~~~~
│       |                               jl_core_module
│ gmake[2]: *** [CMakeFiles/tensors.dir/build.make:63: CMakeFiles/tensors.dir/tensors.cpp.o] Error 1
│ gmake[1]: *** [CMakeFiles/Makefile2:73: CMakeFiles/tensors.dir/all] Error 2
│ gmake: *** [Makefile:130: all] Error 2
│ [ Info: Attempting to create directory /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/../builds/xtl
│ [ Info: Changing directory to /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/../builds/xtl
│ [ Info: Attempting to create directory /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/../builds/xtensor
│ [ Info: Changing directory to /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/../builds/xtensor
│ [ Info: Attempting to create directory /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/../builds/xtensor-julia
│ [ Info: Changing directory to /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/../builds/xtensor-julia
│ [ Info: Attempting to create directory /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/../builds/xtensor-julia-examples
│ [ Info: Changing directory to /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/../builds/xtensor-julia-examples
│ ERROR: Error while loading expression starting at /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/build.jl:112
│ caused by [exception 1]
│ failed process: Process(`cmake --build . --config Release --target install`, ProcessExited(2)) [2]
│ 
│ Stacktrace:
│  [1] pipeline_error at ./process.jl:819 [inlined]
│  [2] #run#541(::Bool, ::typeof(run), ::Cmd) at ./process.jl:734
│  [3] run(::Cmd) at ./process.jl:732
│  [4] run(::BinDeps.SynchronousStepCollection) at /home/chriselrod/.julia/packages/BinDeps/ZEval/src/BinDeps.jl:521 (repeats 3 times)
│  [5] satisfy!(::BinDeps.LibraryDependency, ::Array{DataType,1}) at /home/chriselrod/.julia/packages/BinDeps/ZEval/src/dependencies.jl:944
│  [6] satisfy!(::BinDeps.LibraryDependency) at /home/chriselrod/.julia/packages/BinDeps/ZEval/src/dependencies.jl:922
│  [7] top-level scope at /home/chriselrod/.julia/packages/BinDeps/ZEval/src/dependencies.jl:977
│  [8] include at ./boot.jl:328 [inlined]
│  [9] include_relative(::Module, ::String) at ./loading.jl:1094
│  [10] include(::Module, ::String) at ./Base.jl:31
│  [11] include(::String) at ./client.jl:431
│  [12] top-level scope at none:5
│ Building xtl
│ Building xtensor
│ Building xtensor-julia
│ Building xtensor-julia-examples
│ 
│ Full log at /home/chriselrod/.julia/packages/Xtensor/7Cfvz/deps/build.log
└ @ Pkg.Operations ~/Documents/languages/julia/usr/share/julia/stdlib/v1.3/Pkg/src/backwards_compatible_isolation.jl:626
SylvainCorlay commented 5 years ago

Thanks for reporting @chriselrod . This is weird that it is not hitting us in our tests.

@barche removed all references to jl_current_module in CxxWrap in commit https://github.com/JuliaInterop/libcxxwrap-julia/commit/5e639d33a8476f230d629d2e771e7bb8daa56360

We should probably look into if that function was removed from Julia's C API.

SylvainCorlay commented 5 years ago

cf https://github.com/JuliaInterop/CxxWrap.jl/pull/103

chriselrod commented 5 years ago

Line 459 of jlarray.hpp in the xtensor-julia library references jl_current_module.

SylvainCorlay commented 5 years ago

Yep, thanks :)

barche commented 5 years ago

I removed this because it was no longer officially supported in Julia, and indeed it seems to be gone in Julia 1.1.

SylvainCorlay commented 5 years ago

OK, so it really stopped working with Julia 1.1. Thanks for the heads up. I will look at what needs to be done instead.

barche commented 5 years ago

For CxxWrap I had to convert some functions to macros, which allows using the __module__ hidden macro argument: https://docs.julialang.org/en/v1/manual/metaprogramming/#Macro-invocation-1

SylvainCorlay commented 5 years ago

Thanks @barche! This is now fixed. I am pushing out a release of Xtensor.jl including that change.