From a8c4737494818e6591cac2191bf3a49cbe990173 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Mon, 15 May 2023 11:34:26 +0800 Subject: fix issue #132. --- CMakeLists.txt | 4 ++++ src/yuescript/yue_compiler.cpp | 2 +- src/yuescript/yuescript.cpp | 9 ++++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fc2c234..3ecec9a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,6 +54,10 @@ enable_language(CXX) include_directories(src src/3rdParty ${LUA_INCLUDE_DIR}) add_definitions(-std=c++17 -O3 -fPIC) +if (APPLE) + add_definitions(-Wno-deprecated-declarations) +endif () + add_library(libyue MODULE src/yuescript/ast.cpp src/yuescript/parser.cpp diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp index a566fae..5c8ff5e 100644 --- a/src/yuescript/yue_compiler.cpp +++ b/src/yuescript/yue_compiler.cpp @@ -72,7 +72,7 @@ static std::unordered_set Metamethods = { "close"s // Lua 5.4 }; -const std::string_view version = "0.16.2"sv; +const std::string_view version = "0.16.3"sv; const std::string_view extension = "yue"sv; class CompileError : public std::logic_error { diff --git a/src/yuescript/yuescript.cpp b/src/yuescript/yuescript.cpp index ac1332e..933c77d 100644 --- a/src/yuescript/yuescript.cpp +++ b/src/yuescript/yuescript.cpp @@ -379,9 +379,12 @@ YUE_API int luaopen_yue(lua_State* L) { #if LUA_VERSION_NUM > 501 luaL_newlib(L, yuelib); // yue #else - lua_getglobal(L, "package"); - lua_getfield(L, -1, "loaded"); - luaL_register(L, nullptr, yuelib); // yue + lua_getglobal(L, "package"); // package + lua_getfield(L, -1, "loaded"); // package loaded + lua_createtable(L, 0, 0); // package loaded yue + lua_pushvalue(L, -1); // package loaded yue yue + lua_setfield(L, -3, "yue"); // loaded["yue"] = yue, package loaded yue + luaL_register(L, nullptr, yuelib); // package loaded yue #endif lua_pushlstring(L, &yue::version.front(), yue::version.size()); // yue version lua_setfield(L, -2, "version"); // yue["version"] = version, yue -- cgit v1.2.3-55-g6feb