Closed romainfrancois closed 4 months ago
@romainfrancois please pin down xeus to 3.x (and avoid 4.x for now).
I tried that initially but was facing linker errors. I'll try harder. What is the best/simplest example of xeus 3.x based kernel implementation for me to take inspiration on ?
All current kernels are on xeus 3.x.
I'm now back to these errors, both locally and on gh actions:
Undefined symbols for architecture arm64:
"xeus::make_null_debugger(xeus::xcontext&, xeus::xconfiguration const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nlohmann::json_abi_v3_11_3::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>, void> const&)", referenced from:
_main in main.cpp.o
"xeus::make_xserver_shell_main(xeus::xcontext&, xeus::xconfiguration const&, nlohmann::json_abi_v3_11_3::detail::error_handler_t)", referenced from:
_main in main.cpp.o
"xeus::xkernel::xkernel(xeus::xconfiguration const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::unique_ptr<xeus::xcontext, std::__1::default_delete<xeus::xcontext>>, std::__1::unique_ptr<xeus::xinterpreter, std::__1::default_delete<xeus::xinterpreter>>, std::__1::unique_ptr<xeus::xserver, std::__1::default_delete<xeus::xserver>> (*)(xeus::xcontext&, xeus::xconfiguration const&, nlohmann::json_abi_v3_11_3::detail::error_handler_t), std::__1::unique_ptr<xeus::xhistory_manager, std::__1::default_delete<xeus::xhistory_manager>>, std::__1::unique_ptr<xeus::xlogger, std::__1::default_delete<xeus::xlogger>>, std::__1::unique_ptr<xeus::xdebugger, std::__1::default_delete<xeus::xdebugger>> (*)(xeus::xcontext&, xeus::xconfiguration const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nlohmann::json_abi_v3_11_3::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>, void> const&), nlohmann::json_abi_v3_11_3::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>, void>, nlohmann::json_abi_v3_11_3::detail::error_handler_t)", referenced from:
_main in main.cpp.o
"xeus::xkernel::xkernel(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::unique_ptr<xeus::xcontext, std::__1::default_delete<xeus::xcontext>>, std::__1::unique_ptr<xeus::xinterpreter, std::__1::default_delete<xeus::xinterpreter>>, std::__1::unique_ptr<xeus::xserver, std::__1::default_delete<xeus::xserver>> (*)(xeus::xcontext&, xeus::xconfiguration const&, nlohmann::json_abi_v3_11_3::detail::error_handler_t), std::__1::unique_ptr<xeus::xhistory_manager, std::__1::default_delete<xeus::xhistory_manager>>, std::__1::unique_ptr<xeus::xlogger, std::__1::default_delete<xeus::xlogger>>, std::__1::unique_ptr<xeus::xdebugger, std::__1::default_delete<xeus::xdebugger>> (*)(xeus::xcontext&, xeus::xconfiguration const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nlohmann::json_abi_v3_11_3::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>, void> const&), nlohmann::json_abi_v3_11_3::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>, void>, nlohmann::json_abi_v3_11_3::detail::error_handler_t)", referenced from:
_main in main.cpp.o
ld: symbol(s) not found for architecture arm64
clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [CMakeFiles/xr.dir/build.make:107: xr] Error 1
make[1]: *** [CMakeFiles/Makefile2:142: CMakeFiles/xr.dir/all] Error 2
make: *** [Makefile:139: all] Error 2
make[2]: Leaving directory '/Users/runner/work/xeus-r/xeus-r/bld'
make[1]: Leaving directory '/Users/runner/work/xeus-r/xeus-r/bld'
btw, I'm gettting similar noise when trying to compile xeus-python
from source against xeus 3.1.5 + xeus-zmq 1.2.0 :
[....]
[100%] Linking CXX executable xpython
Undefined symbols for architecture arm64:
"xeus::make_xserver_shell_main(xeus::xcontext&, xeus::xconfiguration const&, nlohmann::json_abi_v3_11_3::detail::error_handler_t)", referenced from:
_main in main.cpp.o
"xeus::xkernel::xkernel(xeus::xconfiguration const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::unique_ptr<xeus::xcontext, std::__1::default_delete<xeus::xcontext> >, std::__1::unique_ptr<xeus::xinterpreter, std::__1::default_delete<xeus::xinterpreter> >, std::__1::unique_ptr<xeus::xserver, std::__1::default_delete<xeus::xserver> > (*)(xeus::xcontext&, xeus::xconfiguration const&, nlohmann::json_abi_v3_11_3::detail::error_handler_t), std::__1::unique_ptr<xeus::xhistory_manager, std::__1::default_delete<xeus::xhistory_manager> >, std::__1::unique_ptr<xeus::xlogger, std::__1::default_delete<xeus::xlogger> >, std::__1::unique_ptr<xeus::xdebugger, std::__1::default_delete<xeus::xdebugger> > (*)(xeus::xcontext&, xeus::xconfiguration const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, nlohmann::json_abi_v3_11_3::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, void> const&), nlohmann::json_abi_v3_11_3::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, void>, nlohmann::json_abi_v3_11_3::detail::error_handler_t)", referenced from:
_main in main.cpp.o
"xeus::xkernel::xkernel(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::unique_ptr<xeus::xcontext, std::__1::default_delete<xeus::xcontext> >, std::__1::unique_ptr<xeus::xinterpreter, std::__1::default_delete<xeus::xinterpreter> >, std::__1::unique_ptr<xeus::xserver, std::__1::default_delete<xeus::xserver> > (*)(xeus::xcontext&, xeus::xconfiguration const&, nlohmann::json_abi_v3_11_3::detail::error_handler_t), std::__1::unique_ptr<xeus::xhistory_manager, std::__1::default_delete<xeus::xhistory_manager> >, std::__1::unique_ptr<xeus::xlogger, std::__1::default_delete<xeus::xlogger> >, std::__1::unique_ptr<xeus::xdebugger, std::__1::default_delete<xeus::xdebugger> > (*)(xeus::xcontext&, xeus::xconfiguration const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, nlohmann::json_abi_v3_11_3::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, void> const&), nlohmann::json_abi_v3_11_3::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, void>, nlohmann::json_abi_v3_11_3::detail::error_handler_t)", referenced from:
_main in main.cpp.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [xpython] Error 1
make[1]: *** [CMakeFiles/xpython.dir/all] Error 2
make: *** [all] Error 2
Thanks for the help @JohanMabille, with `nlohmann_json 3.11.2, xeus 3.0.5 and xeus-zmq 1.0.3, I'm back at a ✅ at least on macos.
I don't understand the problem in ubuntu, and esp why when running the tests, it appears to be using R 4.4.0 when the version is otherwise pinned to 4.3.1
.... https://github.com/jupyter-xeus/xeus-r/actions/runs/9265852697/job/25488777722?pr=82#step:8:94
But at least this is no longer blocking and I can move on to #83
I don't understand what happens in the
ubuntu
caseThe logs of the
install mamba
action show that R 4.3.1 is installed:and so is the follow up
r checks
action I added for good measure:But then, in the
test
action, we get all sorts of errors, and a mismatch of version:Any hint @SylvainCorlay @JohanMabille ?
The idea here was to have a version that worked on unix before tackling windows issues in #83