1
0
mirror of https://github.com/exaloop/codon.git synced 2025-06-03 15:03:52 +08:00

Fix Jupyter, fix xeus build flags

This commit is contained in:
Ibrahim Numanagić 2021-11-21 05:21:05 -08:00
parent 039d604a56
commit 71cad478f7
3 changed files with 24 additions and 16 deletions

View File

@ -16,7 +16,7 @@ if(CODON_JUPYTER)
endif() endif()
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden -pedantic -Wall -Wno-return-type-c-linkage -Wno-gnu-zero-variadic-macro-arguments -Wno-unused-variable") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden -pedantic -Wno-return-type-c-linkage -Wno-gnu-zero-variadic-macro-arguments")
set(CMAKE_CXX_FLAGS_DEBUG "-g -fno-limit-debug-info") set(CMAKE_CXX_FLAGS_DEBUG "-g -fno-limit-debug-info")
set(CMAKE_CXX_FLAGS_RELEASE "-O3") set(CMAKE_CXX_FLAGS_RELEASE "-O3")
include_directories(.) include_directories(.)
@ -29,7 +29,6 @@ message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
include(${CMAKE_SOURCE_DIR}/cmake/deps.cmake) include(${CMAKE_SOURCE_DIR}/cmake/deps.cmake)
set(CMAKE_BUILD_WITH_INSTALL_RPATH ON) set(CMAKE_BUILD_WITH_INSTALL_RPATH ON)
if(APPLE) if(APPLE)
set(CMAKE_INSTALL_RPATH "@loader_path;@loader_path/../lib/codon") set(CMAKE_INSTALL_RPATH "@loader_path;@loader_path/../lib/codon")
@ -84,7 +83,6 @@ add_custom_command(TARGET codonrt POST_BUILD
# Codon compiler library # Codon compiler library
include_directories(${LLVM_INCLUDE_DIRS}) include_directories(${LLVM_INCLUDE_DIRS})
add_definitions(${LLVM_DEFINITIONS}) add_definitions(${LLVM_DEFINITIONS})
set(CODON_HPPFILES set(CODON_HPPFILES
codon/compiler/compiler.h codon/compiler/compiler.h
codon/compiler/debug_listener.h codon/compiler/debug_listener.h
@ -297,7 +295,6 @@ if(CODON_JUPYTER)
add_compile_definitions(CODON_JUPYTER) add_compile_definitions(CODON_JUPYTER)
add_dependencies(codonc xeus-static nlohmann_json) add_dependencies(codonc xeus-static nlohmann_json)
target_link_libraries(codonc PRIVATE xeus-static) target_link_libraries(codonc PRIVATE xeus-static)
# set_target_properties(codonc PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
endif() endif()
if(ASAN) if(ASAN)
target_compile_options(codonc PRIVATE "-fno-omit-frame-pointer" "-fsanitize=address") target_compile_options(codonc PRIVATE "-fno-omit-frame-pointer" "-fsanitize=address")

View File

@ -153,6 +153,7 @@ if(CODON_JUPYTER)
GITHUB_REPOSITORY "jupyter-xeus/xeus" GITHUB_REPOSITORY "jupyter-xeus/xeus"
VERSION 2.2.0 VERSION 2.2.0
GIT_TAG 2.2.0 GIT_TAG 2.2.0
PATCH_COMMAND sed -i bak "s/-Wunused-parameter -Wextra -Wreorder//g" CMakeLists.txt
OPTIONS "BUILD_EXAMPLES OFF" OPTIONS "BUILD_EXAMPLES OFF"
"XEUS_BUILD_SHARED_LIBS OFF" "XEUS_BUILD_SHARED_LIBS OFF"
"XEUS_STATIC_DEPENDENCIES ON") "XEUS_STATIC_DEPENDENCIES ON")

View File

@ -14,6 +14,7 @@
#include "codon/compiler/compiler.h" #include "codon/compiler/compiler.h"
#include "codon/compiler/error.h" #include "codon/compiler/error.h"
#include "codon/compiler/jit.h" #include "codon/compiler/jit.h"
#include "codon/parser/common.h"
#include "codon/util/common.h" #include "codon/util/common.h"
using std::move; using std::move;
@ -29,7 +30,7 @@ nl::json CodonJupyter::execute_request_impl(int execution_counter, const string
nl::json user_expressions, nl::json user_expressions,
bool allow_stdin) { bool allow_stdin) {
auto result = jit->exec(code); auto result = jit->exec(code);
bool failed = false; string failed;
llvm::handleAllErrors( llvm::handleAllErrors(
result.takeError(), result.takeError(),
[&](const codon::error::ParserErrorInfo &e) { [&](const codon::error::ParserErrorInfo &e) {
@ -38,17 +39,26 @@ nl::json CodonJupyter::execute_request_impl(int execution_counter, const string
backtrace.push_back(msg.getMessage()); backtrace.push_back(msg.getMessage());
string err = backtrace[0]; string err = backtrace[0];
backtrace.erase(backtrace.begin()); backtrace.erase(backtrace.begin());
publish_execution_error("ParserError", err, backtrace); failed =
failed = true; fmt::format("Error: {}\nBacktrace:\n{}", err, ast::join(backtrace, " \n"));
// publish_execution_error("ParserError", err, backtrace);
// failed = true;
}, },
[&](const codon::error::RuntimeErrorInfo &e) { [&](const codon::error::RuntimeErrorInfo &e) {
publish_execution_error(e.getType(), e.getMessage(), {}); failed = fmt::format("Error: {}", e.getMessage());
failed = true; // publish_execution_error(e.getType(), e.getMessage(), {});
// failed = true;
}); });
if (!failed) { if (failed.empty()) {
nl::json pub_data; nl::json pub_data;
pub_data["text/plain"] = *result; pub_data["text/plain"] = fmt::format(">> {}", *result);
publish_execution_result(execution_counter, move(pub_data), nl::json::object()); publish_execution_result(execution_counter, move(pub_data), nl::json::object());
return nl::json{{"status", "ok"},
{"payload", nl::json::array()},
{"user_expressions", nl::json::object()}};
} else {
publish_stream("stderr", failed);
return nl::json{{"status", "error"}};
} }
} }
@ -58,16 +68,16 @@ void CodonJupyter::configure_impl() {
} }
nl::json CodonJupyter::complete_request_impl(const string &code, int cursor_pos) { nl::json CodonJupyter::complete_request_impl(const string &code, int cursor_pos) {
return xeus::create_complete_reply({}, cursor_pos, cursor_pos); return nl::json{{"status", "ok"}};
} }
nl::json CodonJupyter::inspect_request_impl(const string &code, int cursor_pos, nl::json CodonJupyter::inspect_request_impl(const string &code, int cursor_pos,
int detail_level) { int detail_level) {
return xeus::create_inspect_reply(); return nl::json{{"status", "ok"}};
} }
nl::json CodonJupyter::is_complete_request_impl(const string &code) { nl::json CodonJupyter::is_complete_request_impl(const string &code) {
return xeus::create_is_complete_reply("complete"); return nl::json{{"status", "complete"}};
} }
nl::json CodonJupyter::kernel_info_request_impl() { nl::json CodonJupyter::kernel_info_request_impl() {