From 4909a7f61bc14e6eff999e2b5636fe6e19fecbe3 Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Sat, 18 May 2024 17:30:20 +0800 Subject: [PATCH] some fix --- CMakeLists.txt | 41 ++++++++------------------------------- benchmarks/fib.py | 6 +----- cmake_build.py | 2 ++ include/pocketpy/vm.h | 1 + run_cmake_install_test.sh | 28 -------------------------- src/vm.cpp | 2 +- src2/main.cpp | 6 +----- 7 files changed, 14 insertions(+), 72 deletions(-) delete mode 100644 run_cmake_install_test.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index ed026786..6b582276 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,7 @@ else() endif() endif() +include_directories(${CMAKE_CURRENT_LIST_DIR}/include) aux_source_directory(${CMAKE_CURRENT_LIST_DIR}/src POCKETPY_SRC) option(PK_USE_CJSON "" OFF) @@ -56,43 +57,17 @@ if(PK_BUILD_SHARED_LIB) elseif(PK_BUILD_STATIC_LIB) add_library(${PROJECT_NAME} STATIC ${POCKETPY_SRC}) else() - add_library(${PROJECT_NAME} SHARED ${POCKETPY_SRC}) set(PROJECT_EXE_NAME main) add_executable(${PROJECT_EXE_NAME} src2/main.cpp) - target_link_libraries(${PROJECT_EXE_NAME} ${PROJECT_NAME}) - target_link_libraries(${PROJECT_EXE_NAME} ${CMAKE_DL_LIBS}) + # shared linked main + add_library(${PROJECT_NAME} SHARED ${POCKETPY_SRC}) + target_link_libraries(${PROJECT_EXE_NAME} ${PROJECT_NAME} ${CMAKE_DL_LIBS}) + # static linked main + # add_library(${PROJECT_NAME} STATIC ${POCKETPY_SRC}) + # target_link_libraries(${PROJECT_EXE_NAME} ${PROJECT_NAME}) endif() -target_include_directories(${PROJECT_NAME} PUBLIC - $ - $ -) - if(PK_USE_CJSON) - target_link_libraries(${PROJECT_NAME} PRIVATE $) + target_link_libraries(${PROJECT_NAME} PRIVATE cjson) endif() -option(PK_INSTALL "Generate the install target" OFF) -if (PK_INSTALL) - install( - TARGETS ${PROJECT_NAME} - EXPORT ${PROJECT_NAME}_target - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib - RUNTIME DESTINATION bin - ) - - install( - DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ - DESTINATION include - FILES_MATCHING PATTERN "*.h" - PATTERN "typings" EXCLUDE - ) - - # generate config.cmake - install( - EXPORT ${PROJECT_NAME}_target - FILE ${PROJECT_NAME}-config.cmake - DESTINATION "share/${PROJECT_NAME}" - ) -endif() diff --git a/benchmarks/fib.py b/benchmarks/fib.py index 349453d2..10323b55 100644 --- a/benchmarks/fib.py +++ b/benchmarks/fib.py @@ -3,8 +3,4 @@ def fib(n): return n return fib(n-1) + fib(n-2) -assert fib(32) == 2178309 - -# from dis import dis -# dis(fib) -# 7049155 calls \ No newline at end of file +assert fib(36) == 14930352 diff --git a/cmake_build.py b/cmake_build.py index 562a7cf6..6e33f034 100644 --- a/cmake_build.py +++ b/cmake_build.py @@ -14,6 +14,8 @@ if len(sys.argv) == 2: else: config = 'Release' +assert config in ['Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'] + os.chdir("build") code = os.system(f"cmake .. -DPK_USE_CJSON=ON -DPK_ENABLE_OS=ON -DCMAKE_BUILD_TYPE={config}") diff --git a/include/pocketpy/vm.h b/include/pocketpy/vm.h index 8bf0e53d..74fe17bb 100644 --- a/include/pocketpy/vm.h +++ b/include/pocketpy/vm.h @@ -158,6 +158,7 @@ public: std::map __cached_codes; std::map __cached_op_funcs; FuncDecl_ __dynamic_func_decl; + PyVar __vectorcall_buffer[PK_MAX_CO_VARNAMES]; #if PK_ENABLE_PROFILER LineProfiler* _profiler = nullptr; diff --git a/run_cmake_install_test.sh b/run_cmake_install_test.sh deleted file mode 100644 index 1d12b549..00000000 --- a/run_cmake_install_test.sh +++ /dev/null @@ -1,28 +0,0 @@ -rm -rf install -mkdir -p install/build -cd install/build -cmake ../../ -DCMAKE_INSTALL_PREFIX=../pocketpy -DPK_USE_CJSON=ON -DPK_ENABLE_OS=ON -cmake --build . --target install --config Release -j 8 - -if [ -e "../pocketpy/lib/libpocketpy.so" ]; then - echo "Library installed successfully." -else - echo "Library installation failed." - exit 1 -fi - -if [ -e "../pocketpy/include/pocketpy.h" ]; then - echo "Header files installed successfully." -else - echo "Header files installation failed." - exit 1 -fi - -if [ -e "../pocketpy/share/pocketpy/pocketpy-config.cmake" ]; then - echo "Config file installed successfully." -else - echo "Config file installation failed." - exit 1 -fi - -echo "CMake install verified successfully." diff --git a/src/vm.cpp b/src/vm.cpp index c867aa52..bb604be9 100644 --- a/src/vm.cpp +++ b/src/vm.cpp @@ -1020,7 +1020,7 @@ PyVar VM::vectorcall(int ARGC, int KWARGC, bool op_call){ ArgsView kwargs(p1, s_data._sp); PyVar* _base = args.begin(); - PyVar buffer[PK_MAX_CO_VARNAMES]; + PyVar* buffer = __vectorcall_buffer; if(callable_t == tp_function){ /*****************_py_call*****************/ diff --git a/src2/main.cpp b/src2/main.cpp index f0a93cfe..ffc3c5c7 100644 --- a/src2/main.cpp +++ b/src2/main.cpp @@ -3,11 +3,7 @@ #include #include -#if __has_include("pocketpy_c.h") - #include "pocketpy_c.h" -#else - #include "pocketpy.h" -#endif +#include "pocketpy_c.h" #ifdef _WIN32