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:
parent
039d604a56
commit
71cad478f7
@ -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")
|
||||||
|
@ -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")
|
||||||
|
@ -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() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user