From f0edfcbeb033c42e406143c1456efedeadbcbe90 Mon Sep 17 00:00:00 2001 From: kunitoki Date: Mon, 6 Apr 2026 02:22:07 +0200 Subject: [PATCH 01/10] More optimisations --- Benchmarks/Benchmark.cpp | 403 --------------------- Benchmarks/CMakeLists.txt | 98 ++++- Benchmarks/README.md | 84 +++-- Benchmarks/benchmark_common.cpp | 31 ++ Benchmarks/benchmark_common.hpp | 174 +++++++++ Benchmarks/benchmark_luabridge.cpp | 373 +++++++++++++++++++ Benchmarks/benchmark_luabridge3.cpp | 523 +++++++++++++++++++++++++++ Benchmarks/benchmark_sol3.cpp | 421 +++++++++++++++++++++ Benchmarks/plot_benchmarks.py | 262 ++++++++++++++ Images/.gitignore | 2 + Images/benchmarks.png | Bin 0 -> 164809 bytes README.md | 23 +- Source/LuaBridge/detail/CFunctions.h | 72 +++- Source/LuaBridge/detail/Invoke.h | 13 +- Source/LuaBridge/detail/Stack.h | 25 ++ Source/LuaBridge/detail/Userdata.h | 32 +- Tests/CMakeLists.txt | 3 + Tests/Source/Tests.cpp | 10 +- justfile | 12 +- 19 files changed, 2057 insertions(+), 504 deletions(-) delete mode 100644 Benchmarks/Benchmark.cpp create mode 100644 Benchmarks/benchmark_common.cpp create mode 100644 Benchmarks/benchmark_common.hpp create mode 100644 Benchmarks/benchmark_luabridge.cpp create mode 100644 Benchmarks/benchmark_luabridge3.cpp create mode 100644 Benchmarks/benchmark_sol3.cpp create mode 100644 Benchmarks/plot_benchmarks.py create mode 100644 Images/.gitignore create mode 100644 Images/benchmarks.png diff --git a/Benchmarks/Benchmark.cpp b/Benchmarks/Benchmark.cpp deleted file mode 100644 index d14bc59a..00000000 --- a/Benchmarks/Benchmark.cpp +++ /dev/null @@ -1,403 +0,0 @@ -// SPDX-License-Identifier: MIT - -#include "Lua/LuaLibrary.h" -#include "LuaBridge/LuaBridge.h" - -#include -#include -#include -#include -#include -#include - -#if LUABRIDGE_BENCHMARK_WITH_SOL2 -#include -#endif - -namespace { - -struct Counter -{ - int value = 0; - - void inc() - { - ++value; - } - - int add(int x) - { - value += x; - return value; - } - - int get() const - { - return value; - } - - void set(int v) - { - value = v; - } -}; - -using Clock = std::chrono::steady_clock; - -struct CaseResult -{ - std::string name; - double nsPerOp = 0.0; - double mops = 0.0; -}; - -template -CaseResult runCase(const std::string& name, std::int64_t iterations, Fn&& fn) -{ - fn(); // warm-up - - const auto start = Clock::now(); - fn(); - const auto end = Clock::now(); - - const auto elapsedNs = std::chrono::duration_cast(end - start).count(); - const double nsPerOp = static_cast(elapsedNs) / static_cast(iterations); - const double mops = 1'000.0 / nsPerOp; - - return { name, nsPerOp, mops }; -} - -void printResult(const char* family, const CaseResult& r) -{ - std::cout << std::left << std::setw(12) << family - << " " << std::setw(30) << r.name - << " " << std::fixed << std::setprecision(2) - << std::setw(12) << r.nsPerOp - << " " << std::setw(10) << r.mops - << '\n'; -} - -void runLuaBridgeBenchmarks(std::int64_t iterations) -{ - lua_State* L = luaL_newstate(); - luaL_openlibs(L); - luabridge::registerMainThread(L); - -#if LUABRIDGE_HAS_EXCEPTIONS - luabridge::enableExceptions(L); -#endif - - luabridge::getGlobalNamespace(L) - .beginClass("Counter") - .addConstructor() - .addFunction("inc", &Counter::inc) - .addFunction("add", &Counter::add) - .addProperty("value", &Counter::get, &Counter::set) - .endClass() - .addFunction("add", +[](int a, int b) { return a + b; }); - - const auto doLua = [L](const char* chunk) - { - if (luaL_dostring(L, chunk) != LUABRIDGE_LUA_OK) - { - const char* message = lua_tostring(L, -1); - std::cerr << "Lua error: " << (message ? message : "unknown") << '\n'; - std::exit(1); - } - }; - - CaseResult empty; - CaseResult freeCall; - CaseResult memberCall; - CaseResult property; - CaseResult propertySet; - CaseResult propertyGet; - CaseResult cppGlobalGet; - CaseResult cppGlobalSet; - CaseResult cppTableGet; - CaseResult cppTableSet; - CaseResult cppChainedGet; - CaseResult cppChainedSet; - CaseResult cppToLua; - CaseResult cppCFunctionThroughLua; - - { - doLua("obj = Counter()"); - doLua("tbl = { value = 0 }"); - doLua("chain = { inner = { value = 0 } }"); - luabridge::setGlobal(L, 1.0, "gvalue"); - - volatile double sink = 0.0; - - const std::string emptyLoop = "for i = 1, " + std::to_string(iterations) + " do end"; - const std::string freeCallLoop = "for i = 1, " + std::to_string(iterations) + " do add(i, i) end"; - const std::string memberCallLoop = "for i = 1, " + std::to_string(iterations) + " do obj:inc() end"; - const std::string propertyLoop = "for i = 1, " + std::to_string(iterations) + " do obj.value = i; local x = obj.value end"; - const std::string propertySetLoop = "for i = 1, " + std::to_string(iterations) + " do obj.value = i end"; - const std::string propertyGetLoop = "local s = 0; for i = 1, " + std::to_string(iterations) + " do s = s + obj.value end"; - - empty = runCase("lua_empty_loop", iterations, [&] { doLua(emptyLoop.c_str()); }); - freeCall = runCase("lua_to_cpp_free_fn", iterations, [&] { doLua(freeCallLoop.c_str()); }); - memberCall = runCase("lua_to_cpp_member", iterations, [&] { doLua(memberCallLoop.c_str()); }); - property = runCase("lua_to_cpp_property", iterations, [&] { doLua(propertyLoop.c_str()); }); - propertySet = runCase("lua_to_cpp_property_set", iterations, [&] { doLua(propertySetLoop.c_str()); }); - propertyGet = runCase("lua_to_cpp_property_get", iterations, [&] { doLua(propertyGetLoop.c_str()); }); - - cppGlobalGet = runCase("cpp_table_global_get", iterations, [&] - { - double x = 0.0; - for (std::int64_t i = 0; i < iterations; ++i) - x += *luabridge::getGlobal(L, "gvalue"); - sink = x; - }); - - cppGlobalSet = runCase("cpp_table_global_set", iterations, [&] - { - double v = 0.0; - for (std::int64_t i = 0; i < iterations; ++i) - { - v += 1.0; - luabridge::setGlobal(L, v, "gvalue"); - } - sink = static_cast(luabridge::getGlobal(L, "gvalue")); - }); - - const auto tableRef = luabridge::getGlobal(L, "tbl"); - cppTableGet = runCase("cpp_table_get", iterations, [&] - { - double x = 0.0; - for (std::int64_t i = 0; i < iterations; ++i) - x += tableRef.unsafeRawgetField("value"); - sink = x; - }); - - cppTableSet = runCase("cpp_table_set", iterations, [&] - { - double v = 0.0; - for (std::int64_t i = 0; i < iterations; ++i) - { - v += 1.0; - tableRef.unsafeRawsetField("value", v); - } - sink = tableRef.unsafeRawgetField("value"); - }); - - const auto chainRef = luabridge::getGlobal(L, "chain"); - cppChainedGet = runCase("cpp_table_chained_get", iterations, [&] - { - double x = 0.0; - for (std::int64_t i = 0; i < iterations; ++i) - x += chainRef["inner"].unsafeRawgetField("value"); - sink = x; - }); - - cppChainedSet = runCase("cpp_table_chained_set", iterations, [&] - { - double v = 0.0; - for (std::int64_t i = 0; i < iterations; ++i) - { - v += 1.0; - chainRef["inner"].unsafeRawsetField("value", v); - } - - sink = chainRef["inner"].unsafeRawgetField("value"); - }); - - doLua("function f(a, b) return a + b end"); - auto f = luabridge::getGlobal(L, "f"); - auto callable = f.callable(); - cppToLua = runCase("cpp_to_lua_call", iterations, [&] - { - for (std::int64_t i = 0; i < iterations; ++i) - (void) callable(static_cast(i), static_cast(i)); - }); - - auto addFn = luabridge::getGlobal(L, "add"); - cppCFunctionThroughLua = runCase("cpp_c_function_through_lua", iterations, [&] - { - int x = 0; - for (std::int64_t i = 0; i < iterations; ++i) - x += addFn.call(static_cast(i), static_cast(i)).valueOr(0); - sink = static_cast(x); - }); - } - - printResult("LuaBridge", empty); - printResult("LuaBridge", freeCall); - printResult("LuaBridge", memberCall); - printResult("LuaBridge", property); - printResult("LuaBridge", propertySet); - printResult("LuaBridge", propertyGet); - printResult("LuaBridge", cppGlobalGet); - printResult("LuaBridge", cppGlobalSet); - printResult("LuaBridge", cppTableGet); - printResult("LuaBridge", cppTableSet); - printResult("LuaBridge", cppChainedGet); - printResult("LuaBridge", cppChainedSet); - printResult("LuaBridge", cppToLua); - printResult("LuaBridge", cppCFunctionThroughLua); - - lua_close(L); -} - -#if LUABRIDGE_BENCHMARK_WITH_SOL2 -void runSol2Benchmarks(std::int64_t iterations) -{ - sol::state lua; - lua.open_libraries(sol::lib::base, sol::lib::math, sol::lib::table, sol::lib::string); - - Counter counter; - - lua.new_usertype("Counter", - sol::call_constructor, - sol::constructors(), - "inc", &Counter::inc, - "add", &Counter::add, - "value", sol::property(&Counter::get, &Counter::set)); - - lua.set_function("add", +[](int a, int b) { return a + b; }); - lua["counter"] = &counter; - lua.script("obj = Counter()"); - lua.script("tbl = { value = 0 }"); - lua.script("chain = { inner = { value = 0 } }"); - lua["gvalue"] = 1.0; - - volatile double sink = 0.0; - - const std::string emptyLoop = "for i = 1, " + std::to_string(iterations) + " do end"; - const std::string freeCallLoop = "for i = 1, " + std::to_string(iterations) + " do add(i, i) end"; - const std::string memberCallLoop = "for i = 1, " + std::to_string(iterations) + " do obj:inc() end"; - const std::string propertyLoop = "for i = 1, " + std::to_string(iterations) + " do obj.value = i; local x = obj.value end"; - const std::string propertySetLoop = "for i = 1, " + std::to_string(iterations) + " do obj.value = i end"; - const std::string propertyGetLoop = "local s = 0; for i = 1, " + std::to_string(iterations) + " do s = s + obj.value end"; - - const auto empty = runCase("lua_empty_loop", iterations, [&] { lua.script(emptyLoop); }); - const auto freeCall = runCase("lua_to_cpp_free_fn", iterations, [&] { lua.script(freeCallLoop); }); - const auto memberCall = runCase("lua_to_cpp_member", iterations, [&] { lua.script(memberCallLoop); }); - const auto property = runCase("lua_to_cpp_property", iterations, [&] { lua.script(propertyLoop); }); - const auto propertySet = runCase("lua_to_cpp_property_set", iterations, [&] { lua.script(propertySetLoop); }); - const auto propertyGet = runCase("lua_to_cpp_property_get", iterations, [&] { lua.script(propertyGetLoop); }); - - const auto cppGlobalGet = runCase("cpp_table_global_get", iterations, [&] - { - double x = 0.0; - for (std::int64_t i = 0; i < iterations; ++i) - x += lua["gvalue"].get(); - sink = x; - }); - - const auto cppGlobalSet = runCase("cpp_table_global_set", iterations, [&] - { - double v = 0.0; - for (std::int64_t i = 0; i < iterations; ++i) - { - v += 1.0; - lua["gvalue"] = v; - } - sink = lua["gvalue"].get(); - }); - - sol::table table = lua["tbl"]; - const auto cppTableGet = runCase("cpp_table_get", iterations, [&] - { - double x = 0.0; - for (std::int64_t i = 0; i < iterations; ++i) - x += table["value"].get(); - sink = x; - }); - - const auto cppTableSet = runCase("cpp_table_set", iterations, [&] - { - double v = 0.0; - for (std::int64_t i = 0; i < iterations; ++i) - { - v += 1.0; - table["value"] = v; - } - sink = table["value"].get(); - }); - - sol::table chain = lua["chain"]; - const auto cppChainedGet = runCase("cpp_table_chained_get", iterations, [&] - { - double x = 0.0; - for (std::int64_t i = 0; i < iterations; ++i) - x += chain["inner"]["value"].get(); - sink = x; - }); - - const auto cppChainedSet = runCase("cpp_table_chained_set", iterations, [&] - { - double v = 0.0; - for (std::int64_t i = 0; i < iterations; ++i) - { - v += 1.0; - chain["inner"]["value"] = v; - } - sink = chain["inner"]["value"].get(); - }); - - lua.script("function f(a, b) return a + b end"); - sol::protected_function f = lua["f"]; - const auto cppToLua = runCase("cpp_to_lua_call", iterations, [&] - { - for (std::int64_t i = 0; i < iterations; ++i) - (void) f(static_cast(i), static_cast(i)); - }); - - sol::protected_function addFn = lua["add"]; - const auto cppCFunctionThroughLua = runCase("cpp_c_function_through_lua", iterations, [&] - { - int x = 0; - for (std::int64_t i = 0; i < iterations; ++i) - x += addFn.call(static_cast(i), static_cast(i)); - sink = static_cast(x); - }); - - printResult("sol2", empty); - printResult("sol2", freeCall); - printResult("sol2", memberCall); - printResult("sol2", property); - printResult("sol2", propertySet); - printResult("sol2", propertyGet); - printResult("sol2", cppGlobalGet); - printResult("sol2", cppGlobalSet); - printResult("sol2", cppTableGet); - printResult("sol2", cppTableSet); - printResult("sol2", cppChainedGet); - printResult("sol2", cppChainedSet); - printResult("sol2", cppToLua); - printResult("sol2", cppCFunctionThroughLua); -} -#endif - -} // namespace - -int main(int argc, char** argv) -{ - std::int64_t iterations = 2'000'000; - - if (argc > 1) - { - const auto parsed = std::strtoll(argv[1], nullptr, 10); - if (parsed > 0) - iterations = parsed; - } - - std::cout << "Iterations: " << iterations << '\n'; - std::cout << std::left << std::setw(12) << "Family" - << " " << std::setw(30) << "Case" - << " " << std::setw(12) << "ns/op" - << " " << std::setw(10) << "Mop/s" - << '\n'; - - runLuaBridgeBenchmarks(iterations); - -#if LUABRIDGE_BENCHMARK_WITH_SOL2 - runSol2Benchmarks(iterations); -#else - std::cout << "sol2 not enabled (set LUABRIDGE_BENCHMARK_WITH_SOL2=ON and SOL2_INCLUDE_DIR)." << '\n'; -#endif - - return 0; -} diff --git a/Benchmarks/CMakeLists.txt b/Benchmarks/CMakeLists.txt index 0d2bc75c..4e2d7f3b 100644 --- a/Benchmarks/CMakeLists.txt +++ b/Benchmarks/CMakeLists.txt @@ -2,38 +2,100 @@ cmake_minimum_required(VERSION 3.10) include(FetchContent) -set(LUABRIDGE_BENCHMARK_WITH_SOL2 OFF CACHE BOOL "Whether to benchmark against sol2") +set(LUABRIDGE_BENCHMARK_WITH_SOL3 ON CACHE BOOL "Build Sol3 benchmark target") set(LUABRIDGE_SOL2_GIT_REPOSITORY "https://github.com/ThePhD/sol2.git" CACHE STRING "sol2 repository URL") set(LUABRIDGE_SOL2_GIT_TAG "v3.3.0" CACHE STRING "sol2 git tag or commit") -set(LUABRIDGE_BENCHMARK_SOURCES - Benchmark.cpp - ../Tests/Lua/LuaLibrary5.4.8.cpp) +set(LUABRIDGE_BENCHMARK_WITH_LUABRIDGE ON CACHE BOOL "Build LuaBridge benchmark target") +set(LUABRIDGE_VANILLA_GIT_REPOSITORY "https://github.com/vinniefalco/LuaBridge.git" CACHE STRING "LuaBridge vanilla repository URL") +set(LUABRIDGE_VANILLA_GIT_TAG "master" CACHE STRING "LuaBridge vanilla git tag or commit") -add_executable(LuaBridgeBenchmarks ${LUABRIDGE_BENCHMARK_SOURCES}) +set(LUABRIDGE_GOOGLE_BENCHMARK_GIT_REPOSITORY "https://github.com/google/benchmark.git" CACHE STRING "Google Benchmark repository URL") +set(LUABRIDGE_GOOGLE_BENCHMARK_GIT_TAG "v1.8.4" CACHE STRING "Google Benchmark git tag or commit") -target_include_directories(LuaBridgeBenchmarks PRIVATE - ${CMAKE_CURRENT_LIST_DIR}/.. - ${CMAKE_CURRENT_LIST_DIR}/../Source - ${CMAKE_CURRENT_LIST_DIR}/../Tests - ${CMAKE_CURRENT_LIST_DIR}/../Tests/Lua/Lua.5.4.8/src) +set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "" FORCE) +set(BENCHMARK_ENABLE_INSTALL OFF CACHE BOOL "" FORCE) +FetchContent_Declare( + googlebenchmark + GIT_REPOSITORY ${LUABRIDGE_GOOGLE_BENCHMARK_GIT_REPOSITORY} + GIT_TAG ${LUABRIDGE_GOOGLE_BENCHMARK_GIT_TAG}) +FetchContent_MakeAvailable(googlebenchmark) -target_compile_definitions(LuaBridgeBenchmarks PRIVATE - LUABRIDGE_BENCHMARK_LUA54=1 - LUABRIDGE_TEST_LUA_VERSION=504) - -if (LUABRIDGE_BENCHMARK_WITH_SOL2) +if (LUABRIDGE_BENCHMARK_WITH_SOL3) FetchContent_Declare( sol2 GIT_REPOSITORY ${LUABRIDGE_SOL2_GIT_REPOSITORY} GIT_TAG ${LUABRIDGE_SOL2_GIT_TAG}) FetchContent_MakeAvailable(sol2) - target_include_directories(LuaBridgeBenchmarks PRIVATE + # Work around a sol2 optional::emplace bug on recent Apple Clang toolchains. + set(SOL2_OPTIONAL_IMPL "${sol2_SOURCE_DIR}/include/sol/optional_implementation.hpp") + if (EXISTS "${SOL2_OPTIONAL_IMPL}") + file(READ "${SOL2_OPTIONAL_IMPL}" SOL2_OPTIONAL_IMPL_CONTENT) + set(SOL2_OPTIONAL_REFBLOCK_OLD "\t\ttemplate \n\t\tT& emplace(Args&&... args) noexcept {\n\t\t\tstatic_assert(std::is_constructible::value, \"T must be constructible with Args\");\n\n\t\t\t*this = nullopt;\n\t\t\tthis->construct(std::forward(args)...);\n\t\t\treturn *m_value;\n\t\t}\n") + string(FIND "${SOL2_OPTIONAL_IMPL_CONTENT}" "${SOL2_OPTIONAL_REFBLOCK_OLD}" SOL2_PATCH_NEEDLE_POS) + if (NOT SOL2_PATCH_NEEDLE_POS EQUAL -1) + set(SOL2_OPTIONAL_REFBLOCK_NEW "\t\ttemplate \n\t\tT& emplace(Args&&... args) noexcept {\n\t\t\tstatic_assert(std::is_constructible::value, \"T must be constructible with Args\");\n\n\t\t\t*this = nullopt;\n\t\t\tint emplace_workaround[] = { 0, ((*this = std::forward(args)), 0)... };\n\t\t\t(void) emplace_workaround;\n\t\t\treturn *m_value;\n\t\t}\n") + string(REPLACE + "${SOL2_OPTIONAL_REFBLOCK_OLD}" + "${SOL2_OPTIONAL_REFBLOCK_NEW}" + SOL2_OPTIONAL_IMPL_CONTENT + "${SOL2_OPTIONAL_IMPL_CONTENT}") + file(WRITE "${SOL2_OPTIONAL_IMPL}" "${SOL2_OPTIONAL_IMPL_CONTENT}") + endif() + endif() +endif() + +if (LUABRIDGE_BENCHMARK_WITH_LUABRIDGE) + FetchContent_Declare( + luabridge_vanilla + GIT_REPOSITORY ${LUABRIDGE_VANILLA_GIT_REPOSITORY} + GIT_TAG ${LUABRIDGE_VANILLA_GIT_TAG}) + FetchContent_GetProperties(luabridge_vanilla) + if (NOT luabridge_vanilla_POPULATED) + FetchContent_Populate(luabridge_vanilla) + endif() +endif() + +function(add_luabridge_benchmark_target target_name source_file) + add_executable(${target_name} + ${source_file} + benchmark_common.cpp + ../Tests/Lua/LuaLibrary5.4.8.cpp) + + target_include_directories(${target_name} PRIVATE + ${CMAKE_CURRENT_LIST_DIR} + ${CMAKE_CURRENT_LIST_DIR}/.. + ${CMAKE_CURRENT_LIST_DIR}/../Tests + ${CMAKE_CURRENT_LIST_DIR}/../Tests/Lua/Lua.5.4.8/src) + + target_compile_definitions(${target_name} PRIVATE + LUABRIDGE_BENCHMARK_LUA54=1 + LUABRIDGE_TEST_LUA_VERSION=504) + + target_link_libraries(${target_name} PRIVATE + benchmark::benchmark + benchmark::benchmark_main) +endfunction() + +add_luabridge_benchmark_target(LuaBridge3Benchmark benchmark_luabridge3.cpp) +target_include_directories(LuaBridge3Benchmark PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/../Source) + +if (LUABRIDGE_BENCHMARK_WITH_LUABRIDGE) + add_luabridge_benchmark_target(LuaBridgeVanillaBenchmark benchmark_luabridge.cpp) + target_include_directories(LuaBridgeVanillaBenchmark PRIVATE + ${luabridge_vanilla_SOURCE_DIR}/Source) +endif() + +if (LUABRIDGE_BENCHMARK_WITH_SOL3) + add_luabridge_benchmark_target(Sol3Benchmark benchmark_sol3.cpp) + target_include_directories(Sol3Benchmark PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/../Source ${sol2_SOURCE_DIR}/include) - target_compile_definitions(LuaBridgeBenchmarks PRIVATE - LUABRIDGE_BENCHMARK_WITH_SOL2=1 + target_compile_definitions(Sol3Benchmark PRIVATE SOL_ALL_SAFETIES_ON=1 + SOL_NO_EXCEPTIONS=1 SOL_LUA_VERSION=504) endif() diff --git a/Benchmarks/README.md b/Benchmarks/README.md index b684dceb..2bcd14e8 100644 --- a/Benchmarks/README.md +++ b/Benchmarks/README.md @@ -1,6 +1,12 @@ -# LuaBridge Benchmarks +# Lua Binding Benchmarks -This directory contains a standalone benchmark executable focused on LuaBridge call and property access overhead. The selected cases mirror the style of the sol2 benchmark categories (Lua -> C++ calls, C++ -> Lua calls, member calls, and property access). +This directory contains Google Benchmark based executables for: + +- LuaBridge3 (current workspace) +- LuaBridge vanilla (`https://github.com/vinniefalco/LuaBridge`) +- sol3 (`https://github.com/ThePhD/sol2`) + +All benchmark executables are built with the same embedded Lua 5.4.8 runtime source (`Tests/Lua/LuaLibrary5.4.8.cpp`) for fair comparisons. ## Build @@ -8,53 +14,71 @@ From project root: ```bash cmake -S . -B Build -DCMAKE_BUILD_TYPE=Release -DLUABRIDGE_BENCHMARKS=ON -cmake --build Build --target LuaBridgeBenchmarks --config Release +cmake --build Build --config Release --target LuaBridge3Benchmark LuaBridgeVanillaBenchmark ``` -## Run +To also build Sol3 benchmark target: ```bash -./Build/Benchmarks/LuaBridgeBenchmarks -# optional iterations -./Build/Benchmarks/LuaBridgeBenchmarks 5000000 +cmake -S . -B Build -DCMAKE_BUILD_TYPE=Release -DLUABRIDGE_BENCHMARKS=ON -DLUABRIDGE_BENCHMARK_WITH_SOL3=ON +cmake --build Build --config Release --target Sol3Benchmark ``` -The executable prints: -- `ns/op` (lower is better) -- `Mop/s` (higher is better) +## Dependency Sources (FetchContent) + +Defaults: -## Optional sol2 Side-by-Side +- Google Benchmark: `https://github.com/google/benchmark.git` (`v1.8.4`) +- sol3: `https://github.com/ThePhD/sol2.git` (`v3.5.0`) +- LuaBridge vanilla: `https://github.com/vinniefalco/LuaBridge.git` (`master`) -To compare with sol2 in the same executable, enable the option below. The build will download sol2 through CMake FetchContent: +You can override these at configure time: ```bash cmake -S . -B Build \ -DCMAKE_BUILD_TYPE=Release \ -DLUABRIDGE_BENCHMARKS=ON \ - -DLUABRIDGE_BENCHMARK_WITH_SOL2=ON -cmake --build Build --target LuaBridgeBenchmarks --config Release + -DLUABRIDGE_SOL2_GIT_REPOSITORY=https://github.com/ThePhD/sol2.git \ + -DLUABRIDGE_SOL2_GIT_TAG=v3.5.0 \ + -DLUABRIDGE_VANILLA_GIT_REPOSITORY=https://github.com/vinniefalco/LuaBridge.git \ + -DLUABRIDGE_VANILLA_GIT_TAG=master \ + -DLUABRIDGE_GOOGLE_BENCHMARK_GIT_REPOSITORY=https://github.com/google/benchmark.git \ + -DLUABRIDGE_GOOGLE_BENCHMARK_GIT_TAG=v1.8.4 ``` -By default, FetchContent uses: -- Repository: `https://github.com/ThePhD/sol2.git` -- Tag: `v3.3.0` +## Run Benchmarks -You can override these if needed: +Each executable supports standard Google Benchmark CLI flags. ```bash -cmake -S . -B Build \ - -DCMAKE_BUILD_TYPE=Release \ - -DLUABRIDGE_BENCHMARKS=ON \ - -DLUABRIDGE_BENCHMARK_WITH_SOL2=ON \ - -DLUABRIDGE_SOL2_GIT_REPOSITORY=https://github.com/ThePhD/sol2.git \ - -DLUABRIDGE_SOL2_GIT_TAG=v3.3.0 +./Build/Benchmarks/LuaBridge3Benchmark --benchmark_out=Build/Benchmarks/luabridge3.json --benchmark_out_format=json +./Build/Benchmarks/LuaBridgeVanillaBenchmark --benchmark_out=Build/Benchmarks/luabridge_vanilla.json --benchmark_out_format=json +./Build/Benchmarks/Sol3Benchmark --benchmark_out=Build/Benchmarks/sol3.json --benchmark_out_format=json # if enabled +``` + +Recommended consistency flags for fair comparison: + +```bash +--benchmark_min_time=0.1 --benchmark_repetitions=5 ``` -When enabled, the benchmark prints LuaBridge and sol2 rows for the same cases and iteration count. +## Plot Results + +The script `plot_benchmarks.py` merges one or more Google Benchmark JSON files and generates a grouped comparison chart. + +```bash +python3 Benchmarks/plot_benchmarks.py \ + --input Build/Benchmarks/luabridge3.json Build/Benchmarks/luabridge_vanilla.json Build/Benchmarks/sol3.json \ + --output Build/Benchmarks/lua_bindings_comparison.png +``` + +Outputs: + +- PNG chart (grouped bars, lower is better) +- Optional skipped/error report file next to the image (`*_skipped.txt`) -## Notes for Fair Comparison +## Notes -- Use Release mode and the same compiler for all libraries. -- Pin CPU frequency/governor where possible and avoid background load. -- Run each benchmark multiple times and compare medians. -- Keep Lua version identical between LuaBridge and sol2 runs. +- Some vanilla LuaBridge benchmarks are marked as skipped where the feature is unsupported. +- Sol3 target is optional (`LUABRIDGE_BENCHMARK_WITH_SOL3`) because current sol2 headers can fail to compile on some toolchains. +- If you need stricter reproducibility, pin all FetchContent dependencies to commits instead of branches. diff --git a/Benchmarks/benchmark_common.cpp b/Benchmarks/benchmark_common.cpp new file mode 100644 index 00000000..335642da --- /dev/null +++ b/Benchmarks/benchmark_common.cpp @@ -0,0 +1,31 @@ +// https://github.com/kunitoki/LuaBridge3 +// Copyright 2026, kunitoki +// Inspired from https://github.com/ThePhD/lua-bindings-shootout by ThePhD +// SPDX-License-Identifier: MIT + +#include "benchmark_common.hpp" + +#include + +namespace lbsbench { + +void luaCheckOrThrow(lua_State* L, int status, std::string_view where) +{ + if (status == LUA_OK) + return; + + const char* message = lua_tostring(L, -1); + std::string error(where); + error += ": "; + error += (message ? message : "unknown lua error"); + lua_pop(L, 1); + throw std::runtime_error(error); +} + +void luaDoStringOrThrow(lua_State* L, std::string_view code, std::string_view where) +{ + const int status = luaL_dostring(L, std::string(code).c_str()); + luaCheckOrThrow(L, status, where); +} + +} // namespace lbsbench diff --git a/Benchmarks/benchmark_common.hpp b/Benchmarks/benchmark_common.hpp new file mode 100644 index 00000000..464f3313 --- /dev/null +++ b/Benchmarks/benchmark_common.hpp @@ -0,0 +1,174 @@ +// https://github.com/kunitoki/LuaBridge3 +// Copyright 2026, kunitoki +// Inspired from https://github.com/ThePhD/lua-bindings-shootout by ThePhD +// SPDX-License-Identifier: MIT + +#pragma once + +#include "Lua/LuaLibrary.h" + +#include + +#include +#include +#include +#include + +namespace lbsbench { + +inline constexpr double kMagicValue = 24.0; + +struct Counter +{ + int value = 0; + + void inc() + { + ++value; + } + + int add(int x) + { + value += x; + return value; + } + + int get() const + { + return value; + } + + void set(int v) + { + value = v; + } +}; + +struct Basic +{ + double var = 0.0; + + double get() const + { + return var; + } + + void set(double v) + { + var = v; + } +}; + +struct BasicLarge +{ + std::int64_t var = 0; + std::int64_t var0 = 0; + std::int64_t var1 = 0; + std::int64_t var2 = 0; + std::int64_t var3 = 0; + std::int64_t var4 = 0; + std::int64_t var5 = 0; + std::int64_t var6 = 0; + std::int64_t var7 = 0; + std::int64_t var8 = 0; + std::int64_t var9 = 0; + std::int64_t var10 = 0; + std::int64_t var11 = 0; + std::int64_t var12 = 0; + std::int64_t var13 = 0; + std::int64_t var14 = 0; + std::int64_t var15 = 0; + std::int64_t var16 = 0; + std::int64_t var17 = 0; + std::int64_t var18 = 0; + std::int64_t var19 = 0; + std::int64_t var20 = 0; + std::int64_t var21 = 0; + std::int64_t var22 = 0; + std::int64_t var23 = 0; + std::int64_t var24 = 0; + std::int64_t var25 = 0; + std::int64_t var26 = 0; + std::int64_t var27 = 0; + std::int64_t var28 = 0; + std::int64_t var29 = 0; + std::int64_t var30 = 0; + std::int64_t var31 = 0; + std::int64_t var32 = 0; + std::int64_t var33 = 0; + std::int64_t var34 = 0; + std::int64_t var35 = 0; + std::int64_t var36 = 0; + std::int64_t var37 = 0; + std::int64_t var38 = 0; + std::int64_t var39 = 0; + std::int64_t var40 = 0; + std::int64_t var41 = 0; + std::int64_t var42 = 0; + std::int64_t var43 = 0; + std::int64_t var44 = 0; + std::int64_t var45 = 0; + std::int64_t var46 = 0; + std::int64_t var47 = 0; + std::int64_t var48 = 0; + std::int64_t var49 = 0; +}; + +struct ComplexBaseA +{ + double a = kMagicValue; + + double a_func() const + { + return a; + } +}; + +struct ComplexBaseB +{ + double b = kMagicValue; + + double b_func() const + { + return b; + } +}; + +struct ComplexAB : ComplexBaseA, ComplexBaseB +{ + double ab = kMagicValue; + + double ab_func() const + { + return ab; + } +}; + +struct StatefulFunction +{ + double operator()(double v) const + { + return v; + } +}; + +inline Basic* basic_return() +{ + static Basic value{}; + return &value; +} + +inline double basic_get_var(Basic* b) +{ + return b ? b->var : 0.0; +} + +void luaCheckOrThrow(lua_State* L, int status, std::string_view where); +void luaDoStringOrThrow(lua_State* L, std::string_view code, std::string_view where); + +inline void setSkipped(benchmark::State& state, std::string_view reason) +{ + state.SkipWithError(std::string(reason).c_str()); +} + +} // namespace lbsbench diff --git a/Benchmarks/benchmark_luabridge.cpp b/Benchmarks/benchmark_luabridge.cpp new file mode 100644 index 00000000..d1a7924f --- /dev/null +++ b/Benchmarks/benchmark_luabridge.cpp @@ -0,0 +1,373 @@ +// https://github.com/kunitoki/LuaBridge3 +// Copyright 2026, kunitoki +// Inspired from https://github.com/ThePhD/lua-bindings-shootout by ThePhD +// SPDX-License-Identifier: MIT + +#include "benchmark_common.hpp" + +#include + +#include + +namespace { + +using namespace lbsbench; + +int vanilla_multi_return(lua_State* L) +{ + const double i = lua_tonumber(L, 1); + luabridge::push(L, i); + luabridge::push(L, i * 2.0); + return 2; +} + +lua_State* makeLua() +{ + lua_State* L = luaL_newstate(); + luaL_openlibs(L); + return L; +} + +void registerBasic(lua_State* L) +{ + luabridge::getGlobalNamespace(L) + .beginClass("c") + .addConstructor() + .addFunction("set", &Basic::set) + .addFunction("get", &Basic::get) + .addData("var", &Basic::var) + .endClass(); +} + +void table_global_string_get_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luabridge::setGlobal(L, kMagicValue, "value"); + + double x = 0; + for (auto _ : state) + { + (void) _; + x += static_cast(luabridge::getGlobal(L, "value")); + } + + benchmark::DoNotOptimize(x); +} + +void table_global_string_set_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + + double v = 0; + for (auto _ : state) + { + (void) _; + v += kMagicValue; + luabridge::setGlobal(L, v, "value"); + } + + benchmark::DoNotOptimize(v); +} + +void table_get_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luaDoStringOrThrow(L, "warble = { value = 24.0 }", "vanilla table_get setup"); + luabridge::LuaRef t = luabridge::getGlobal(L, "warble"); + + double x = 0; + for (auto _ : state) + { + (void) _; + x += static_cast(t["value"]); + } + + benchmark::DoNotOptimize(x); +} + +void table_set_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luaDoStringOrThrow(L, "warble = { value = 24.0 }", "vanilla table_set setup"); + luabridge::LuaRef t = luabridge::getGlobal(L, "warble"); + + double v = 0; + for (auto _ : state) + { + (void) _; + v += kMagicValue; + t["value"] = v; + } + + benchmark::DoNotOptimize(v); +} + +void table_chained_get_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luaDoStringOrThrow(L, "ulahibe = { warble = { value = 24.0 } }", "vanilla chained_get setup"); + + double x = 0; + for (auto _ : state) + { + (void) _; + luabridge::LuaRef tw = luabridge::getGlobal(L, "ulahibe")["warble"]; + x += static_cast(tw["value"]); + } + + benchmark::DoNotOptimize(x); +} + +void table_chained_set_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luaDoStringOrThrow(L, "ulahibe = { warble = { value = 24.0 } }", "vanilla chained_set setup"); + + double v = 0; + for (auto _ : state) + { + (void) _; + v += kMagicValue; + luabridge::LuaRef tw = luabridge::getGlobal(L, "ulahibe")["warble"]; + tw["value"] = v; + } + + benchmark::DoNotOptimize(v); +} + +void c_function_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luabridge::getGlobalNamespace(L).addFunction("f", +[](double v) { return v; }); + luaDoStringOrThrow(L, "function invoke_f() return f(24.0) end", "vanilla c_function setup"); + + for (auto _ : state) + { + (void) _; + lua_getglobal(L, "invoke_f"); + luaCheckOrThrow(L, lua_pcall(L, 0, 1, 0), "vanilla invoke_f"); + lua_pop(L, 1); + } +} + +void lua_function_in_c_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luaDoStringOrThrow(L, "function f(i) return i end", "vanilla lua_function setup"); + + luabridge::LuaRef f = luabridge::getGlobal(L, "f"); + double x = 0; + for (auto _ : state) + { + (void) _; + x += static_cast(f(kMagicValue)); + } + + benchmark::DoNotOptimize(x); +} + +void c_function_through_lua_in_c_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luabridge::getGlobalNamespace(L).addFunction("f", +[](double v) { return v; }); + + luabridge::LuaRef f = luabridge::getGlobal(L, "f"); + double x = 0; + for (auto _ : state) + { + (void) _; + x += static_cast(f(kMagicValue)); + } + + benchmark::DoNotOptimize(x); +} + +void member_function_call_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + registerBasic(L); + luaDoStringOrThrow(L, "b = c()", "vanilla member setup"); + luaDoStringOrThrow(L, "function call_member() b:set(b:get() + 1.0) end", "vanilla member closure setup"); + + for (auto _ : state) + { + (void) _; + lua_getglobal(L, "call_member"); + luaCheckOrThrow(L, lua_pcall(L, 0, 0, 0), "vanilla call_member"); + } +} + +void userdata_variable_access_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + registerBasic(L); + luaDoStringOrThrow(L, "b = c()", "vanilla userdata setup"); + luaDoStringOrThrow(L, "function access_var() b.var = b.var + 1.0 return b.var end", "vanilla userdata closure setup"); + + for (auto _ : state) + { + (void) _; + lua_getglobal(L, "access_var"); + luaCheckOrThrow(L, lua_pcall(L, 0, 1, 0), "vanilla access_var"); + lua_pop(L, 1); + } +} + +void userdata_variable_access_large_measure(benchmark::State& state) +{ + setSkipped(state, "unsupported in LuaBridge vanilla benchmark parity mode"); +} + +void userdata_variable_access_last_measure(benchmark::State& state) +{ + setSkipped(state, "unsupported in LuaBridge vanilla benchmark parity mode"); +} + +void stateful_function_object_measure(benchmark::State& state) +{ + setSkipped(state, "unsupported in LuaBridge vanilla benchmark parity mode"); +} + +void multi_return_lua_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luabridge::getGlobalNamespace(L).addCFunction("f", vanilla_multi_return); + luaDoStringOrThrow(L, "function invoke_multi() local a,b=f(24.0) return a+b end", "vanilla multi_return_lua setup"); + + for (auto _ : state) + { + (void) _; + lua_getglobal(L, "invoke_multi"); + luaCheckOrThrow(L, lua_pcall(L, 0, 1, 0), "vanilla invoke_multi"); + lua_pop(L, 1); + } +} + +void multi_return_measure(benchmark::State& state) +{ + setSkipped(state, "unsupported conceptual multi-return conversion in LuaBridge vanilla"); +} + +void base_derived_measure(benchmark::State& state) +{ + setSkipped(state, "unsupported for multi inheritance in LuaBridge vanilla"); +} + +void return_userdata_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + registerBasic(L); + luabridge::getGlobalNamespace(L) + .addFunction("f", &basic_return) + .addFunction("h", &basic_get_var); + luaDoStringOrThrow(L, "function invoke_userdata() return h(f()) end", "vanilla return_userdata setup"); + + for (auto _ : state) + { + (void) _; + lua_getglobal(L, "invoke_userdata"); + luaCheckOrThrow(L, lua_pcall(L, 0, 1, 0), "vanilla invoke_userdata"); + lua_pop(L, 1); + } +} + +void optional_success_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luaDoStringOrThrow(L, "warble = { value = 24.0 }", "vanilla optional_success setup"); + + double x = 0; + for (auto _ : state) + { + (void) _; + luabridge::LuaRef tt = luabridge::getGlobal(L, "warble"); + if (tt.isTable()) + { + luabridge::LuaRef tv = tt["value"]; + x += tv.isNumber() ? static_cast(tv) : 1.0; + } + else + { + x += 1.0; + } + } + + benchmark::DoNotOptimize(x); +} + +void optional_half_failure_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luaDoStringOrThrow(L, "warble = { value = 'x' }", "vanilla optional_half_failure setup"); + + double x = 0; + for (auto _ : state) + { + (void) _; + luabridge::LuaRef tt = luabridge::getGlobal(L, "warble"); + if (tt.isTable()) + { + luabridge::LuaRef tv = tt["value"]; + x += tv.isNumber() ? static_cast(tv) : 1.0; + } + else + { + x += 1.0; + } + } + + benchmark::DoNotOptimize(x); +} + +void optional_failure_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + + double x = 0; + for (auto _ : state) + { + (void) _; + luabridge::LuaRef tt = luabridge::getGlobal(L, "warble"); + if (tt.isTable()) + { + luabridge::LuaRef tv = tt["value"]; + x += tv.isNumber() ? static_cast(tv) : 1.0; + } + else + { + x += 1.0; + } + } + + benchmark::DoNotOptimize(x); +} + +void implicit_inheritance_measure(benchmark::State& state) +{ + setSkipped(state, "unsupported for multi inheritance in LuaBridge vanilla"); +} + +} // namespace + +BENCHMARK(table_global_string_get_measure)->Name("table_global_string_get_measure"); +BENCHMARK(table_global_string_set_measure)->Name("table_global_string_set_measure"); +BENCHMARK(table_get_measure)->Name("table_get_measure"); +BENCHMARK(table_set_measure)->Name("table_set_measure"); +BENCHMARK(table_chained_get_measure)->Name("table_chained_get_measure"); +BENCHMARK(table_chained_set_measure)->Name("table_chained_set_measure"); +BENCHMARK(c_function_measure)->Name("c_function_measure"); +BENCHMARK(c_function_through_lua_in_c_measure)->Name("c_function_through_lua_in_c_measure"); +BENCHMARK(lua_function_in_c_measure)->Name("lua_function_in_c_measure"); +BENCHMARK(member_function_call_measure)->Name("member_function_call_measure"); +BENCHMARK(userdata_variable_access_measure)->Name("userdata_variable_access_measure"); +BENCHMARK(userdata_variable_access_large_measure)->Name("userdata_variable_access_large_measure"); +BENCHMARK(userdata_variable_access_last_measure)->Name("userdata_variable_access_last_measure"); +BENCHMARK(multi_return_lua_measure)->Name("multi_return_lua_measure"); +BENCHMARK(multi_return_measure)->Name("multi_return_measure"); +BENCHMARK(stateful_function_object_measure)->Name("stateful_function_object_measure"); +BENCHMARK(base_derived_measure)->Name("base_derived_measure"); +BENCHMARK(return_userdata_measure)->Name("return_userdata_measure"); +BENCHMARK(optional_success_measure)->Name("optional_success_measure"); +BENCHMARK(optional_half_failure_measure)->Name("optional_half_failure_measure"); +BENCHMARK(optional_failure_measure)->Name("optional_failure_measure"); +BENCHMARK(implicit_inheritance_measure)->Name("implicit_inheritance_measure"); diff --git a/Benchmarks/benchmark_luabridge3.cpp b/Benchmarks/benchmark_luabridge3.cpp new file mode 100644 index 00000000..b8f855da --- /dev/null +++ b/Benchmarks/benchmark_luabridge3.cpp @@ -0,0 +1,523 @@ +// https://github.com/kunitoki/LuaBridge3 +// Copyright 2026, kunitoki +// Inspired from https://github.com/ThePhD/lua-bindings-shootout by ThePhD +// SPDX-License-Identifier: MIT + +#include "benchmark_common.hpp" + +#include "LuaBridge/LuaBridge.h" + +#include + +#include +#include + +namespace { + +using namespace lbsbench; + +std::tuple lb3_multi_return(double value) +{ + return { value, value * 2.0 }; +} + +void registerBasic(lua_State* L) +{ + luabridge::getGlobalNamespace(L) + .beginClass("c") + .addConstructor() + .addFunction("set", &Basic::set) + .addFunction("get", &Basic::get) + .addProperty("var", &Basic::var) + .endClass(); +} + +void registerBasicLarge(lua_State* L) +{ + luabridge::getGlobalNamespace(L) + .beginClass("cl") + .addConstructor() + .addProperty("var", &BasicLarge::var) + .addProperty("var0", &BasicLarge::var0) + .addProperty("var1", &BasicLarge::var1) + .addProperty("var2", &BasicLarge::var2) + .addProperty("var3", &BasicLarge::var3) + .addProperty("var4", &BasicLarge::var4) + .addProperty("var5", &BasicLarge::var5) + .addProperty("var6", &BasicLarge::var6) + .addProperty("var7", &BasicLarge::var7) + .addProperty("var8", &BasicLarge::var8) + .addProperty("var9", &BasicLarge::var9) + .addProperty("var10", &BasicLarge::var10) + .addProperty("var11", &BasicLarge::var11) + .addProperty("var12", &BasicLarge::var12) + .addProperty("var13", &BasicLarge::var13) + .addProperty("var14", &BasicLarge::var14) + .addProperty("var15", &BasicLarge::var15) + .addProperty("var16", &BasicLarge::var16) + .addProperty("var17", &BasicLarge::var17) + .addProperty("var18", &BasicLarge::var18) + .addProperty("var19", &BasicLarge::var19) + .addProperty("var20", &BasicLarge::var20) + .addProperty("var21", &BasicLarge::var21) + .addProperty("var22", &BasicLarge::var22) + .addProperty("var23", &BasicLarge::var23) + .addProperty("var24", &BasicLarge::var24) + .addProperty("var25", &BasicLarge::var25) + .addProperty("var26", &BasicLarge::var26) + .addProperty("var27", &BasicLarge::var27) + .addProperty("var28", &BasicLarge::var28) + .addProperty("var29", &BasicLarge::var29) + .addProperty("var30", &BasicLarge::var30) + .addProperty("var31", &BasicLarge::var31) + .addProperty("var32", &BasicLarge::var32) + .addProperty("var33", &BasicLarge::var33) + .addProperty("var34", &BasicLarge::var34) + .addProperty("var35", &BasicLarge::var35) + .addProperty("var36", &BasicLarge::var36) + .addProperty("var37", &BasicLarge::var37) + .addProperty("var38", &BasicLarge::var38) + .addProperty("var39", &BasicLarge::var39) + .addProperty("var40", &BasicLarge::var40) + .addProperty("var41", &BasicLarge::var41) + .addProperty("var42", &BasicLarge::var42) + .addProperty("var43", &BasicLarge::var43) + .addProperty("var44", &BasicLarge::var44) + .addProperty("var45", &BasicLarge::var45) + .addProperty("var46", &BasicLarge::var46) + .addProperty("var47", &BasicLarge::var47) + .addProperty("var48", &BasicLarge::var48) + .addProperty("var49", &BasicLarge::var49) + .endClass(); +} + +lua_State* makeLua() +{ + lua_State* L = luaL_newstate(); + luaL_openlibs(L); + luabridge::registerMainThread(L); +#if LUABRIDGE_HAS_EXCEPTIONS + luabridge::enableExceptions(L); +#endif + return L; +} + +void table_global_string_get_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luabridge::setGlobal(L, kMagicValue, "value"); + + double x = 0; + for (auto _ : state) + { + (void) _; + x += static_cast(luabridge::getGlobal(L, "value")); + } + benchmark::DoNotOptimize(x); +} + +void table_global_string_set_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + + double v = 0; + for (auto _ : state) + { + (void) _; + v += kMagicValue; + luabridge::setGlobal(L, v, "value"); + } + + benchmark::DoNotOptimize(v); +} + +void table_get_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luaDoStringOrThrow(L, "warble = { value = 24.0 }", "table_get setup"); + luabridge::LuaRef t = luabridge::getGlobal(L, "warble"); + + double x = 0; + for (auto _ : state) + { + (void) _; + x += static_cast(t["value"]); + } + + benchmark::DoNotOptimize(x); +} + +void table_set_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luaDoStringOrThrow(L, "warble = { value = 24.0 }", "table_set setup"); + luabridge::LuaRef t = luabridge::getGlobal(L, "warble"); + + double v = 0; + for (auto _ : state) + { + (void) _; + v += kMagicValue; + t["value"] = v; + } + + benchmark::DoNotOptimize(v); +} + +void table_chained_get_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luaDoStringOrThrow(L, "ulahibe = { warble = { value = 24.0 } }", "table_chained_get setup"); + + double x = 0; + for (auto _ : state) + { + (void) _; + luabridge::LuaRef tw = luabridge::getGlobal(L, "ulahibe")["warble"]; + x += static_cast(tw["value"]); + } + + benchmark::DoNotOptimize(x); +} + +void table_chained_set_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luaDoStringOrThrow(L, "ulahibe = { warble = { value = 24.0 } }", "table_chained_set setup"); + + double v = 0; + for (auto _ : state) + { + (void) _; + v += kMagicValue; + luabridge::LuaRef tw = luabridge::getGlobal(L, "ulahibe")["warble"]; + tw["value"] = v; + } + + benchmark::DoNotOptimize(v); +} + +void c_function_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luabridge::getGlobalNamespace(L).addFunction("f", +[](double v) { return v; }); + + luaDoStringOrThrow(L, "function invoke_f() return f(24.0) end", "c_function setup"); + + for (auto _ : state) + { + (void) _; + lua_getglobal(L, "invoke_f"); + luaCheckOrThrow(L, lua_pcall(L, 0, 1, 0), "invoke_f"); + lua_pop(L, 1); + } +} + +void lua_function_in_c_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luaDoStringOrThrow(L, "function f(i) return i end", "lua_function setup"); + + luabridge::LuaRef f = luabridge::getGlobal(L, "f"); + double x = 0; + for (auto _ : state) + { + (void) _; + x += f.call(kMagicValue).valueOr(0.0); + } + + benchmark::DoNotOptimize(x); +} + +void c_function_through_lua_in_c_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luabridge::getGlobalNamespace(L).addFunction("f", +[](double v) { return v; }); + + luabridge::LuaRef f = luabridge::getGlobal(L, "f"); + double x = 0; + for (auto _ : state) + { + (void) _; + x += f.call(kMagicValue).valueOr(0.0); + } + + benchmark::DoNotOptimize(x); +} + +void member_function_call_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + registerBasic(L); + luaDoStringOrThrow(L, "b = c()", "member_function setup"); + luaDoStringOrThrow(L, "function call_member() b:set(b:get() + 1.0) end", "member_function closure setup"); + + for (auto _ : state) + { + (void) _; + lua_getglobal(L, "call_member"); + luaCheckOrThrow(L, lua_pcall(L, 0, 0, 0), "call_member"); + } +} + +void userdata_variable_access_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + registerBasic(L); + luaDoStringOrThrow(L, "b = c()", "userdata_variable_access setup"); + luaDoStringOrThrow(L, "function access_var() return b.var end", "userdata_variable_access closure setup"); + + for (auto _ : state) + { + (void) _; + lua_getglobal(L, "access_var"); + luaCheckOrThrow(L, lua_pcall(L, 0, 1, 0), "access_var"); + lua_pop(L, 1); + } +} + +void userdata_variable_access_large_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + registerBasicLarge(L); + luaDoStringOrThrow(L, "b = cl()", "userdata_variable_access_large setup"); + luaDoStringOrThrow(L, "function access_var_large() return b.var0 end", "userdata_variable_access_large closure setup"); + + for (auto _ : state) + { + (void) _; + lua_getglobal(L, "access_var_large"); + luaCheckOrThrow(L, lua_pcall(L, 0, 1, 0), "access_var_large"); + lua_pop(L, 1); + } +} + +void userdata_variable_access_last_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + registerBasicLarge(L); + luaDoStringOrThrow(L, "b = cl()", "userdata_variable_access_last setup"); + luaDoStringOrThrow(L, "function access_var_last() return b.var49 end", "userdata_variable_access_last closure setup"); + + for (auto _ : state) + { + (void) _; + lua_getglobal(L, "access_var_last"); + luaCheckOrThrow(L, lua_pcall(L, 0, 1, 0), "access_var_last"); + lua_pop(L, 1); + } +} + +void stateful_function_object_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luabridge::getGlobalNamespace(L).addFunction("f", StatefulFunction{}); + + luabridge::LuaRef f = luabridge::getGlobal(L, "f"); + double x = 0; + for (auto _ : state) + { + (void) _; + x += f.call(kMagicValue).valueOr(0.0); + } + + benchmark::DoNotOptimize(x); +} + +void multi_return_lua_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luabridge::getGlobalNamespace(L).addFunction("f", &lb3_multi_return); + luaDoStringOrThrow(L, "function invoke_multi() local a,b=f(24.0) return a+b end", "multi_return_lua setup"); + + for (auto _ : state) + { + (void) _; + lua_getglobal(L, "invoke_multi"); + luaCheckOrThrow(L, lua_pcall(L, 0, 1, 0), "invoke_multi"); + lua_pop(L, 1); + } +} + +void multi_return_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luabridge::getGlobalNamespace(L).addFunction("f", &lb3_multi_return); + luabridge::LuaRef f = luabridge::getGlobal(L, "f"); + + double x = 0; + for (auto _ : state) + { + (void) _; + auto result = f.call>(kMagicValue).valueOr(std::make_tuple(0.0, 0.0)); + x += std::get<0>(result); + x += std::get<1>(result); + } + + benchmark::DoNotOptimize(x); +} + +void base_derived_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + + luabridge::getGlobalNamespace(L) + .beginClass("ComplexBaseA") + .addFunction("a_func", &ComplexBaseA::a_func) + .addProperty("a", &ComplexBaseA::a) + .endClass() + .beginClass("ComplexBaseB") + .addFunction("b_func", &ComplexBaseB::b_func) + .addProperty("b", &ComplexBaseB::b) + .endClass() + .deriveClass("ComplexAB") + .addConstructor() + .addFunction("ab_func", &ComplexAB::ab_func) + .addProperty("ab", &ComplexAB::ab) + .endClass(); + + luaDoStringOrThrow(L, "obj = ComplexAB()", "base_derived setup"); + luaDoStringOrThrow(L, "function call_base() return obj:a_func() + obj:b_func() end", "base_derived closure setup"); + + for (auto _ : state) + { + (void) _; + lua_getglobal(L, "call_base"); + luaCheckOrThrow(L, lua_pcall(L, 0, 1, 0), "call_base"); + lua_pop(L, 1); + } +} + +void optional_success_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luaDoStringOrThrow(L, "warble = { value = 24.0 }", "optional_success setup"); + + double x = 0; + for (auto _ : state) + { + (void) _; + luabridge::LuaRef warble = luabridge::getGlobal(L, "warble"); + if (warble.isTable()) + { + auto result = warble.getField("value"); + x += result ? *result : 1.0; + } + else + x += 1.0; + } + + benchmark::DoNotOptimize(x); +} + +void optional_half_failure_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + luaDoStringOrThrow(L, "warble = { value = 'x' }", "optional_half_failure setup"); + + double x = 0; + for (auto _ : state) + { + (void) _; + luabridge::LuaRef warble = luabridge::getGlobal(L, "warble"); + if (warble.isTable()) + { + auto result = warble.getField("value"); + x += result ? *result : 1.0; + } + else + x += 1.0; + } + + benchmark::DoNotOptimize(x); +} + +void optional_failure_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + + double x = 0; + for (auto _ : state) + { + (void) _; + luabridge::LuaRef warble = luabridge::getGlobal(L, "warble"); + if (warble.isTable()) + { + auto result = warble.getField("value"); + x += result ? *result : 1.0; + } + else + x += 1.0; + } + + benchmark::DoNotOptimize(x); +} + +void return_userdata_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + registerBasic(L); + luabridge::getGlobalNamespace(L) + .addFunction("f", &basic_return) + .addFunction("h", &basic_get_var); + luaDoStringOrThrow(L, "function invoke_userdata() return h(f()) end", "return_userdata setup"); + + for (auto _ : state) + { + (void) _; + lua_getglobal(L, "invoke_userdata"); + luaCheckOrThrow(L, lua_pcall(L, 0, 1, 0), "invoke_userdata"); + lua_pop(L, 1); + } +} + +void implicit_inheritance_measure(benchmark::State& state) +{ + lua_State* L = makeLua(); + + luabridge::getGlobalNamespace(L) + .beginClass("ComplexBaseA") + .addFunction("a_func", &ComplexBaseA::a_func) + .endClass() + .deriveClass("ComplexAB") + .addConstructor() + .addFunction("ab_func", &ComplexAB::ab_func) + .endClass() + .addFunction("call_a", +[](ComplexBaseA* obj) -> double { return obj->a_func(); }); + + luaDoStringOrThrow(L, "obj = ComplexAB()", "implicit_inheritance setup"); + luaDoStringOrThrow(L, "function test_implicit() return call_a(obj) end", "implicit_inheritance closure setup"); + + for (auto _ : state) + { + (void) _; + lua_getglobal(L, "test_implicit"); + luaCheckOrThrow(L, lua_pcall(L, 0, 1, 0), "test_implicit"); + lua_pop(L, 1); + } +} + +} // namespace + +BENCHMARK(table_global_string_get_measure)->Name("table_global_string_get_measure"); +BENCHMARK(table_global_string_set_measure)->Name("table_global_string_set_measure"); +BENCHMARK(table_get_measure)->Name("table_get_measure"); +BENCHMARK(table_set_measure)->Name("table_set_measure"); +BENCHMARK(table_chained_get_measure)->Name("table_chained_get_measure"); +BENCHMARK(table_chained_set_measure)->Name("table_chained_set_measure"); +BENCHMARK(c_function_measure)->Name("c_function_measure"); +BENCHMARK(c_function_through_lua_in_c_measure)->Name("c_function_through_lua_in_c_measure"); +BENCHMARK(lua_function_in_c_measure)->Name("lua_function_in_c_measure"); +BENCHMARK(member_function_call_measure)->Name("member_function_call_measure"); +BENCHMARK(userdata_variable_access_measure)->Name("userdata_variable_access_measure"); +BENCHMARK(userdata_variable_access_large_measure)->Name("userdata_variable_access_large_measure"); +BENCHMARK(userdata_variable_access_last_measure)->Name("userdata_variable_access_last_measure"); +BENCHMARK(multi_return_lua_measure)->Name("multi_return_lua_measure"); +BENCHMARK(multi_return_measure)->Name("multi_return_measure"); +BENCHMARK(stateful_function_object_measure)->Name("stateful_function_object_measure"); +BENCHMARK(base_derived_measure)->Name("base_derived_measure"); +BENCHMARK(return_userdata_measure)->Name("return_userdata_measure"); +BENCHMARK(optional_success_measure)->Name("optional_success_measure"); +BENCHMARK(optional_half_failure_measure)->Name("optional_half_failure_measure"); +BENCHMARK(optional_failure_measure)->Name("optional_failure_measure"); +BENCHMARK(implicit_inheritance_measure)->Name("implicit_inheritance_measure"); diff --git a/Benchmarks/benchmark_sol3.cpp b/Benchmarks/benchmark_sol3.cpp new file mode 100644 index 00000000..a18ccad3 --- /dev/null +++ b/Benchmarks/benchmark_sol3.cpp @@ -0,0 +1,421 @@ +// https://github.com/kunitoki/LuaBridge3 +// Copyright 2026, kunitoki +// Inspired from https://github.com/ThePhD/lua-bindings-shootout by ThePhD +// SPDX-License-Identifier: MIT + +#include "benchmark_common.hpp" + +#include + +#include + +#include + +namespace { + +using namespace lbsbench; + +std::tuple sol3_multi_return(double value) +{ + return { value, value * 2.0 }; +} + +void registerBasic(sol::state& lua) +{ + lua.new_usertype("c", + sol::constructors(), + "set", &Basic::set, + "get", &Basic::get, + "var", &Basic::var); +} + +void registerBasicLarge(sol::state& lua) +{ + lua.new_usertype("cl", + sol::constructors(), + "var", &BasicLarge::var, + "var0", &BasicLarge::var0, + "var1", &BasicLarge::var1, + "var2", &BasicLarge::var2, + "var3", &BasicLarge::var3, + "var4", &BasicLarge::var4, + "var5", &BasicLarge::var5, + "var6", &BasicLarge::var6, + "var7", &BasicLarge::var7, + "var8", &BasicLarge::var8, + "var9", &BasicLarge::var9, + "var10", &BasicLarge::var10, + "var11", &BasicLarge::var11, + "var12", &BasicLarge::var12, + "var13", &BasicLarge::var13, + "var14", &BasicLarge::var14, + "var15", &BasicLarge::var15, + "var16", &BasicLarge::var16, + "var17", &BasicLarge::var17, + "var18", &BasicLarge::var18, + "var19", &BasicLarge::var19, + "var20", &BasicLarge::var20, + "var21", &BasicLarge::var21, + "var22", &BasicLarge::var22, + "var23", &BasicLarge::var23, + "var24", &BasicLarge::var24, + "var25", &BasicLarge::var25, + "var26", &BasicLarge::var26, + "var27", &BasicLarge::var27, + "var28", &BasicLarge::var28, + "var29", &BasicLarge::var29, + "var30", &BasicLarge::var30, + "var31", &BasicLarge::var31, + "var32", &BasicLarge::var32, + "var33", &BasicLarge::var33, + "var34", &BasicLarge::var34, + "var35", &BasicLarge::var35, + "var36", &BasicLarge::var36, + "var37", &BasicLarge::var37, + "var38", &BasicLarge::var38, + "var39", &BasicLarge::var39, + "var40", &BasicLarge::var40, + "var41", &BasicLarge::var41, + "var42", &BasicLarge::var42, + "var43", &BasicLarge::var43, + "var44", &BasicLarge::var44, + "var45", &BasicLarge::var45, + "var46", &BasicLarge::var46, + "var47", &BasicLarge::var47, + "var48", &BasicLarge::var48, + "var49", &BasicLarge::var49); +} + +void table_global_string_get_measure(benchmark::State& state) +{ + sol::state lua; + lua["value"] = kMagicValue; + + double x = 0; + for (auto _ : state) + { + (void) _; + x += lua["value"].get(); + } + benchmark::DoNotOptimize(x); +} + +void table_global_string_set_measure(benchmark::State& state) +{ + sol::state lua; + double v = 0; + + for (auto _ : state) + { + (void) _; + v += kMagicValue; + lua["value"] = v; + } + + benchmark::DoNotOptimize(v); +} + +void table_get_measure(benchmark::State& state) +{ + sol::state lua; + lua.script("warble = { value = 24.0 }"); + sol::table t = lua["warble"]; + + double x = 0; + for (auto _ : state) + { + (void) _; + x += t["value"].get(); + } + + benchmark::DoNotOptimize(x); +} + +void table_set_measure(benchmark::State& state) +{ + sol::state lua; + lua.script("warble = { value = 24.0 }"); + sol::table t = lua["warble"]; + + double v = 0; + for (auto _ : state) + { + (void) _; + v += kMagicValue; + t["value"] = v; + } + + benchmark::DoNotOptimize(v); +} + +void table_chained_get_measure(benchmark::State& state) +{ + sol::state lua; + lua.script("ulahibe = { warble = { value = 24.0 } }"); + + double x = 0; + for (auto _ : state) + { + (void) _; + x += lua["ulahibe"]["warble"]["value"].get(); + } + + benchmark::DoNotOptimize(x); +} + +void table_chained_set_measure(benchmark::State& state) +{ + sol::state lua; + lua.script("ulahibe = { warble = { value = 24.0 } }"); + + double v = 0; + for (auto _ : state) + { + (void) _; + v += kMagicValue; + lua["ulahibe"]["warble"]["value"] = v; + } + + benchmark::DoNotOptimize(v); +} + +void c_function_measure(benchmark::State& state) +{ + sol::state lua; + lua.set_function("f", +[](double value) { return value; }); + lua.script("function invoke_f() return f(24.0) end"); + + for (auto _ : state) + { + (void) _; + lua["invoke_f"](); + } +} + +void lua_function_in_c_measure(benchmark::State& state) +{ + sol::state lua; + lua.script("function f(i) return i end"); + sol::function f = lua["f"]; + + double x = 0; + for (auto _ : state) + { + (void) _; + x += f.call(kMagicValue); + } + + benchmark::DoNotOptimize(x); +} + +void c_function_through_lua_in_c_measure(benchmark::State& state) +{ + sol::state lua; + lua.set_function("f", +[](double value) { return value; }); + sol::function f = lua["f"]; + + double x = 0; + for (auto _ : state) + { + (void) _; + x += f.call(kMagicValue); + } + + benchmark::DoNotOptimize(x); +} + +void member_function_call_measure(benchmark::State& state) +{ + sol::state lua; + registerBasic(lua); + lua.script("b = c.new()\nfunction call_member() b:set(b:get() + 1.0) end"); + + for (auto _ : state) + { + (void) _; + lua["call_member"](); + } +} + +void userdata_variable_access_measure(benchmark::State& state) +{ + sol::state lua; + registerBasic(lua); + lua.script("b = c.new()\nfunction access_var() b.var = b.var + 1.0 return b.var end"); + + for (auto _ : state) + { + (void) _; + lua["access_var"](); + } +} + +void userdata_variable_access_large_measure(benchmark::State& state) +{ + sol::state lua; + registerBasicLarge(lua); + lua.script("b = cl.new()\nfunction access_var_large() b.var0 = b.var0 + 1 return b.var0 end"); + + for (auto _ : state) + { + (void) _; + lua["access_var_large"](); + } +} + +void userdata_variable_access_last_measure(benchmark::State& state) +{ + sol::state lua; + registerBasicLarge(lua); + lua.script("b = cl.new()\nfunction access_var_last() b.var49 = b.var49 + 1 return b.var49 end"); + + for (auto _ : state) + { + (void) _; + lua["access_var_last"](); + } +} + +void stateful_function_object_measure(benchmark::State& state) +{ + sol::state lua; + lua.set_function("f", StatefulFunction{}); + sol::function f = lua["f"]; + + double x = 0; + for (auto _ : state) + { + (void) _; + x += f.call(kMagicValue); + } + + benchmark::DoNotOptimize(x); +} + +void multi_return_lua_measure(benchmark::State& state) +{ + sol::state lua; + lua.set_function("f", &sol3_multi_return); + lua.script("function invoke_multi() local a,b=f(24.0) return a+b end"); + + for (auto _ : state) + { + (void) _; + lua["invoke_multi"](); + } +} + +void multi_return_measure(benchmark::State& state) +{ + sol::state lua; + lua.set_function("f", &sol3_multi_return); + sol::function f = lua["f"]; + + double x = 0; + for (auto _ : state) + { + (void) _; + std::tuple values = f.call(kMagicValue); + x += std::get<0>(values); + x += std::get<1>(values); + } + + benchmark::DoNotOptimize(x); +} + +void base_derived_measure(benchmark::State& state) +{ + setSkipped(state, "base_derived_measure not implemented yet for sol3 Google Benchmark port"); +} + +void optional_success_measure(benchmark::State& state) +{ + sol::state lua; + lua.script("warble = { value = 24.0 }"); + + double x = 0; + for (auto _ : state) + { + (void) _; + sol::optional value = lua["warble"]["value"]; + x += value.value_or(1.0); + } + + benchmark::DoNotOptimize(x); +} + +void optional_half_failure_measure(benchmark::State& state) +{ + sol::state lua; + lua.script("warble = { value = 'x' }"); + + double x = 0; + for (auto _ : state) + { + (void) _; + sol::optional value = lua["warble"]["value"]; + x += value.value_or(1.0); + } + + benchmark::DoNotOptimize(x); +} + +void optional_failure_measure(benchmark::State& state) +{ + sol::state lua; + + double x = 0; + for (auto _ : state) + { + (void) _; + sol::optional value = lua["warble"]["value"]; + x += value.value_or(1.0); + } + + benchmark::DoNotOptimize(x); +} + +void return_userdata_measure(benchmark::State& state) +{ + sol::state lua; + registerBasic(lua); + lua.set_function("f", &basic_return); + lua.set_function("h", &basic_get_var); + lua.script("function invoke_userdata() return h(f()) end"); + + for (auto _ : state) + { + (void) _; + lua["invoke_userdata"](); + } +} + +void implicit_inheritance_measure(benchmark::State& state) +{ + setSkipped(state, "implicit_inheritance_measure not implemented yet for sol3 Google Benchmark port"); +} + +} // namespace + +BENCHMARK(table_global_string_get_measure)->Name("table_global_string_get_measure"); +BENCHMARK(table_global_string_set_measure)->Name("table_global_string_set_measure"); +BENCHMARK(table_get_measure)->Name("table_get_measure"); +BENCHMARK(table_set_measure)->Name("table_set_measure"); +BENCHMARK(table_chained_get_measure)->Name("table_chained_get_measure"); +BENCHMARK(table_chained_set_measure)->Name("table_chained_set_measure"); +BENCHMARK(c_function_measure)->Name("c_function_measure"); +BENCHMARK(c_function_through_lua_in_c_measure)->Name("c_function_through_lua_in_c_measure"); +BENCHMARK(lua_function_in_c_measure)->Name("lua_function_in_c_measure"); +BENCHMARK(member_function_call_measure)->Name("member_function_call_measure"); +BENCHMARK(userdata_variable_access_measure)->Name("userdata_variable_access_measure"); +BENCHMARK(userdata_variable_access_large_measure)->Name("userdata_variable_access_large_measure"); +BENCHMARK(userdata_variable_access_last_measure)->Name("userdata_variable_access_last_measure"); +BENCHMARK(multi_return_lua_measure)->Name("multi_return_lua_measure"); +BENCHMARK(multi_return_measure)->Name("multi_return_measure"); +BENCHMARK(stateful_function_object_measure)->Name("stateful_function_object_measure"); +BENCHMARK(base_derived_measure)->Name("base_derived_measure"); +BENCHMARK(return_userdata_measure)->Name("return_userdata_measure"); +BENCHMARK(optional_success_measure)->Name("optional_success_measure"); +BENCHMARK(optional_half_failure_measure)->Name("optional_half_failure_measure"); +BENCHMARK(optional_failure_measure)->Name("optional_failure_measure"); +BENCHMARK(implicit_inheritance_measure)->Name("implicit_inheritance_measure"); diff --git a/Benchmarks/plot_benchmarks.py b/Benchmarks/plot_benchmarks.py new file mode 100644 index 00000000..c8880604 --- /dev/null +++ b/Benchmarks/plot_benchmarks.py @@ -0,0 +1,262 @@ +#!/usr/bin/env python3 + +# SPDX-License-Identifier: MIT + +import argparse +import json +import math +import os +from collections import defaultdict + +import matplotlib.pyplot as plt +import matplotlib.patches as mpatches +import numpy as np + + +# ── Label helpers ───────────────────────────────────────────────────────────── + +_SUFFIX = "_measure" + +def _clean_label(name: str) -> str: + """Convert a raw benchmark name to a human-readable label.""" + if name.endswith(_SUFFIX): + name = name[: -len(_SUFFIX)] + return name.replace("_", " ") + + +# ── JSON loading ────────────────────────────────────────────────────────────── + +def infer_library_name(path: str) -> str: + stem = os.path.splitext(os.path.basename(path))[0] + return stem.replace("benchmark_", "") + + +def load_google_benchmark_json(path: str, library_name: str) -> dict: + with open(path, "r", encoding="utf-8") as f: + data = json.load(f) + + case_values: dict[str, float] = {} + case_errors: dict[str, str] = {} + + for entry in data.get("benchmarks", []): + name = entry.get("name", "") + run_type = entry.get("run_type", "") + + # Prefer aggregate mean when available + if run_type == "aggregate" and entry.get("aggregate_name") == "mean": + base_name = entry.get("run_name", name) + case_values[base_name] = entry.get("real_time", entry.get("cpu_time", 0.0)) + continue + + if run_type not in ("iteration", ""): + continue + + if entry.get("error_occurred"): + case_errors[name] = entry.get("error_message", "error") + continue + + if name not in case_values: + case_values[name] = entry.get("real_time", entry.get("cpu_time", 0.0)) + + return {"library": library_name, "values": case_values, "errors": case_errors} + + +# ── Merge ───────────────────────────────────────────────────────────────────── + +def merge_results(result_sets): + merged: dict[str, dict[str, float]] = defaultdict(dict) + errors: dict[str, dict[str, str]] = defaultdict(dict) + + for result in result_sets: + lib = result["library"] + for case_name, value in result["values"].items(): + merged[case_name][lib] = value + for case_name, error in result["errors"].items(): + errors[case_name][lib] = error + + return merged, errors + + +# ── Plotting ────────────────────────────────────────────────────────────────── + +# Dark theme colours +_BG = "#1E1E2E" # figure / axes background +_FG = "#CDD6F4" # text, ticks, labels +_GRID = "#313244" # grid lines +_SPINE = "#45475A" # axis spines +_UNSUP = "#585B70" # "unsupported" text + +# Bright palette suited for dark backgrounds +_PALETTE = [ + "#89B4FA", # blue + "#FAB387", # peach + "#A6E3A1", # green + "#F38BA8", # red + "#CBA6F7", # mauve + "#94E2D5", # teal + "#F9E2AF", # yellow + "#89DCEB", # sky +] + + +def plot_grouped_bars(merged: dict, errors: dict, output_file: str, log_scale: bool = False) -> None: + case_names = sorted(merged.keys()) + libraries = sorted({lib for cases in merged.values() for lib in cases}) + + if not case_names or not libraries: + raise RuntimeError("No benchmark samples found to plot") + + n_cases = len(case_names) + n_libs = len(libraries) + + # ── Layout ──────────────────────────────────────────────────────────────── + bar_h = 0.80 + group_h = bar_h / n_libs + fig_h = max(10, n_cases * bar_h + 2) + + plt.rcParams.update({ + "text.color": _FG, + "axes.labelcolor": _FG, + "xtick.color": _FG, + "ytick.color": _FG, + }) + + fig, ax = plt.subplots(figsize=(12, fig_h)) + fig.patch.set_facecolor(_BG) + ax.set_facecolor(_BG) + + colors = {lib: _PALETTE[i % len(_PALETTE)] for i, lib in enumerate(libraries)} + + y_positions = np.arange(n_cases, dtype=float) + + for i, library in enumerate(libraries): + values = [merged[cn].get(library, float("nan")) for cn in case_names] + offsets = (i - (n_libs - 1) / 2.0) * group_h + bar_y = y_positions + offsets + ax.barh( + bar_y, + values, + height=group_h * 0.85, + color=colors[library], + label=library, + zorder=4, + ) + + # "unsupported" label where no value exists + for y, val in zip(bar_y, values): + if math.isnan(val): + ax.text( + 0, y, + " unsupported", + va="center", ha="left", + fontsize=7, color=_UNSUP, style="italic", + zorder=5, + ) + + # ── Axes ────────────────────────────────────────────────────────────────── + ax.set_yticks(y_positions) + ax.set_yticklabels([_clean_label(cn) for cn in case_names], fontsize=9) + ax.invert_yaxis() + + if log_scale: + ax.set_xscale("log") + ax.set_xlabel("Time (ns, log scale)", fontsize=10) + else: + ax.set_xlabel("Time (ns)", fontsize=10) + + ax.xaxis.grid(True, color=_GRID, linestyle="--", alpha=1.0, zorder=2) + ax.set_axisbelow(True) + for spine in ax.spines.values(): + spine.set_edgecolor(_SPINE) + ax.spines["top"].set_visible(True) + ax.spines["right"].set_visible(False) + + # Tick marks and labels on both top and bottom x-axis + ax.xaxis.set_tick_params(which="both", top=True, bottom=True, labeltop=True, labelbottom=True) + ax.tick_params(axis="x", which="both", color=_SPINE) + + # ── Legend & title ──────────────────────────────────────────────────────── + legend_handles = [ + mpatches.Patch(color=colors[lib], label=lib) for lib in libraries + ] + legend = ax.legend( + handles=legend_handles, + loc="upper right", + fontsize=9, + framealpha=1.0, + facecolor=_SPINE, + edgecolor=_SPINE, + labelcolor=_FG, + ) + ax.set_title( + "Lua Binding Benchmarks — lower is better", + fontsize=13, pad=14, fontweight="bold", color=_FG, + ) + + fig.subplots_adjust(left=0.22, right=0.97, top=0.95, bottom=0.03) + plt.savefig(output_file, dpi=150, facecolor=fig.get_facecolor()) + plt.close() + + plt.rcParams.update({ + "text.color": "black", + "axes.labelcolor": "black", + "xtick.color": "black", + "ytick.color": "black", + }) + + # ── Text summary ────────────────────────────────────────────────────────── + txt_file = os.path.splitext(output_file)[0] + ".txt" + col_w = max(len(lib) for lib in libraries) + 2 + label_w = max(len(_clean_label(cn)) for cn in case_names) + 2 + + with open(txt_file, "w", encoding="utf-8") as f: + header = f"{'Benchmark':<{label_w}}" + "".join(f"{lib:>{col_w}}" for lib in libraries) + f.write(header + "\n") + f.write("-" * len(header) + "\n") + for cn in case_names: + row = f"{_clean_label(cn):<{label_w}}" + for lib in libraries: + val = merged[cn].get(lib) + cell = f"{val:>{col_w - 3}.1f} ns" if val is not None else f"{'n/a':>{col_w}}" + row += cell + f.write(row + "\n") + print(f"Saved: {txt_file}") + + +# ── Entry point ─────────────────────────────────────────────────────────────── + +def main(): + parser = argparse.ArgumentParser( + description="Plot comparisons from Google Benchmark JSON files" + ) + parser.add_argument( + "--input", nargs="+", required=True, + help="One or more Google Benchmark JSON files" + ) + parser.add_argument( + "--output", default="Benchmarks/benchmark_comparison.png", + help="Output PNG file" + ) + parser.add_argument( + "--log", action="store_true", + help="Use a logarithmic x-axis" + ) + args = parser.parse_args() + + result_sets = [ + load_google_benchmark_json(path, infer_library_name(path)) + for path in args.input + ] + + merged, errors = merge_results(result_sets) + + output_dir = os.path.dirname(args.output) + if output_dir: + os.makedirs(output_dir, exist_ok=True) + + plot_grouped_bars(merged, errors, args.output, log_scale=args.log) + print(f"Saved: {args.output}") + + +if __name__ == "__main__": + main() diff --git a/Images/.gitignore b/Images/.gitignore new file mode 100644 index 00000000..d7a099a6 --- /dev/null +++ b/Images/.gitignore @@ -0,0 +1,2 @@ +!.gitignore +*.txt \ No newline at end of file diff --git a/Images/benchmarks.png b/Images/benchmarks.png new file mode 100644 index 0000000000000000000000000000000000000000..274eeeb6a8e211f9544dfd0e64bcd920f390d17b GIT binary patch literal 164809 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�w!y%Ck>vt-Kk5yzZq+i~hUfPW8uiinD)S zNzw1JQa`>qfKRKhMcNI_(F8)+v+-h2GGDrqAs&IYOg~O4yMjT8woGeA(nceqmF;9S zUo?&0Q1onb(He);=f;`C`)+nEGM?k6lW78$5D-kI6bGxz(i6mg40tr{*toy7kRG zyye*@-SW4?go!fOb^Sp@qVoI%t4&LmYnE(eue5egb=Pmxip6JvEC z)k*o5{4`AD6UUCexZ|96`~>BUBwqZC%28u^D^ZUU<^|-Sm4FH6eW ziZ*^xd)TsaD@7Q0EbiU?&GkUGu7=W{6eDWg16JL5lkWa*Pk3KjIgs!Bh})HmUqm;? zuahTRO;nw)IL)fmGPJ8tO>)b0_uE+H96H&zhnUe^Y_}t(aTB*mt~`S>Qx(dQq=}}| z_RQ~GCg59}x2XzCyI@9>hvT(7W;*;oS~^ZWYo{e_(kng$2_}c67AxVZH^^{E*dmjW zZr^89srB)MlEYb4{A6^TN6{`OcTbS4nf|m5Gr#=NxhKx-)V0p9%Z9|eB4HQbgAEIN z-m*)%%~y6BS4c()zG2QZd%tcr%-kuepV8WM z+3Il0^+T@OH8mqLU7e>{JqO&j1rF5eiAV8<9;GVCNu?iu0GyyAFG<%Hcl3>qVaV8?wI4r+Jt#~*v9C^oxFwUI%>0XHx-^UkG zf|<8u9hZZB-7ZhMZvdRy%1t^e=6$!=qt#nynw?C{$jQZybC|;_W@7U7qZN}3X1`Q! zVTUFhR+iIv1QqH<0mm`kpYKV%e4c;6jT2LpG^~Gcueq0FV8^h`@hDAn+jA!!SNms^*fOn1-8a`X8A#5fAkhC+n;(9}uUkO|JN%|SEUl;0t@}u; zYjz`1A_p?T2z@TzuGinZ+GJFuAoQGVoCg&YMpQol#T^J1SZ6Kob|HuouRZguM&(rg zf`Iu}l1H#?o+oa6plD@f=*4a?A55El=k5mz3m^aL{=;gr{<9f;KOiFPp}Cmf{$ALqeV z(4$_+Sz1D%prV$aZRT7ONP(fH<@KAVjD2ivmng>Q=Qhudp!wt*-Vo*-K^y5m5JOI? z{l0T&iUH6(ATP{W$#0u#7L83;drsHBWldjmKNbWEzm(amk1rGu;Vmf?*EZgSN=V{M zu>nz1ZXZ5=T+3qCA^EAc^FgASOLX|C-0gFq!{dGbctfIo)7?NvmzI8}44W(F&l1un%k=pznu1yZVR_@i`?9kTjp`BhX2`>B z*e1pg{`u)yr=JjE?Gq6T*5_CX$ek;Aq{s*Xaqa#7tDj19a9-OEi9!YA^7FjRyRyGt z-~Uwc{BRoxmAaE^J41OCLnQ79$-asHVpTt|Ey&WrV`F{<9xpXD>ABVqo*He!*42`? z%6$|(w#$5`p^d={RQR>`pV#*F;SNeXk+XUT)S6{Hb2L?LDc9NYS$wKc~K(o--jLVzX0K z)gtI$+ojSo?T#s~S^K2|coTZ5HeqfVbpDUOJ;i;tfqwZ2A^Y$g(w@jQ7w{d#F3aWx`cf4)h+Ftj}SQ65*f?Pegh}v(%OK}={Rx2AW&>dNL zIbYEMO`T97?B`Cm#pOgnLai7>N_d@K&=l&uUXS(OVISPuci=hYe#AKgclToOASS{U z*-W#pwZw}Ag5tNgo7Ae1HL>@k`sZC8h24Mp9|5-=^WEJa4m@{iN~pwf=nSu}%J}|& zJ>5@JboffRhR_OQ3(~9V9kSbg@#}FW4|L^XpT}tzx66#Prd2bt`Kv-;tCmeoq4WR<<@*;A!7No=p%TPuaeR_&>Kr>PAjlzd}Xmv^FQ z^$rF(kBFWaZq?SC3U8{h>KgtDN$+-TNv-AqHD@j0Ybb*XojTNfGepwS%e~ugd@(ak zpRcDEIvk$&EH$n+X%`-htfM%*BHR3VqDC=&2ALTfwqVt&F1KRuMaxw+%lxtx5;$OX z4VPCczen^YENdWlA?j-PN;2)OhGSHy{)xSydNnEw6>x*5m~GBM;DkJlA*M*e+$+zb zfSlskt4C72e-PDwH;`HyQcgQo!N1sIdck*rXgE(l;ExH}EgOaBxxsgMJX&3*>cFay z_6<%@3nV+InKC=&m1@CcwJt|6-YT!AB>X(z8tnLf#l4ISTyElIWxLamyYsMjQ}rat zK^o1XOCe+M-0~*Dg zY0A7-M8L%FljBVnfu1$N1M(rPo_W`6tXozf7sR4VB3fmDD+N!Sy0rkw@i^WFLj}$O7X>{L}ix-j|6WAkxZ?Mlbx&PKuR+cXj1kk;?rcXs-px} zq|N<Fjljl ztt2^rkRVf*8{qcv;f}nn1WwI81%uk?D1ABT6t2juTXQ~it9oZZOOjY9`%y4;(i){G zLv|%qQr_k!tjKq1kgK{;*W6&>E^dJ38!4aYdBm(w48>lLn4QVo8hz@gt(R~G7E5~l zS?nDNw-jffvwu$81iOXlkQt z=&H$%Ww?Ec*~iN>4(wiUmCH#TQ%*#=sa*CYE zCc6+b+w6ch)8r^AL6Cckvr7Umx!v!)gY!slsB_(04P5Pd!gNr`)KgJ$d3G#JZ4Sld zF&=dFVmJyKHQLvEyJR@SguAP`GzUy@{#I4-`?b=(e=s{67RxHjRr!vZITPlIMr2}H zLpGM`-Nyp*W?)LvdNth}R%!_+-U+JjhA*RBglWnhM%Md^&?H6E=|lmZC41t8vJwdP zujHg==fq@gaQW%C@0tyZAOfspm_#_nWUmz^%fej1-1cKvmnt88T_(SoxU&Ay+XQWo z$msPI%ae<{wrTm=qEl+F6v@Fn>K^JO$uT_6qa=q&;-4UT;w{}FvYz2ZX4Taz6>eMr zN+~DU{KVppgHKXxn{khh)IX}pOQZF=y|Q}Q*1Sr=ZpnI>O2CNGd_#1)-kUK2%hjB; z%Gi%Q#LH{5y+yr(4{NhnvYt-+B|Fl%8P{AqPDMFZJ+>40epk7GA!K(?8bYm3mrX}oZq1q8&XP*pw{c;XBzurN=zhi@Q&*Zu4+mD7MyRKL52m5U# z%s8xxaY@)*m)_r81curGMRnOiU!S4gSMeO!iS2Z%-hefYrjR;5 zRp!e$;1=B(65PUi{BXw*@s6yv+-|q3T@wSPe$Z`F4R!BOks%|q8V-!+scv}o6z*xr zD@HR52d7$15*KgZM+nFZKlx?j^voh?+-+N5!SDQ$pbm3^C}G)+4z@aa=(dXznG51_ z67}5aleetBHXAv*%rui6+9q6EVsp@rKS8FeODS4XiML?50C(S9ZlFr*V3&4ko6{|SRnvo$*TWWwe5Hb}h|%`B5rK8qUa&9}zr zd*1vu2Pt5RdLOJiq*d?nY|>kJ@oBYi@m5q#Ym4uTYT$kHfSv18_3o^hQnAy!+k$Va<@=zW&zLp}B>ef&d-y;vv!Lrc!)1liNIUu!Xi@ z%x|tD8H$k=CF4bLxUHkm;vi9&=3pUDF6v&N5ImJGK@(NiLORY{GhQ~9GnSnuNv(u_ zl^L`-bLq^E{G&CU_1A1XkC;0+bo;YLz#4lpfXtWmU>5FNA~@`mJtE=X9kf3y>zQYj z%n)=i%KQaQxMu~@gD(>~`zovvT}OFz$50Mw!bXcV*1pU%(AqAx>i)!{r#-ANftS1l zM>N2NNFC82FJIW-6lEq8`rE{4i)U#ri{7O_GciPHcAo$43jcJ3&zI1M!tOQmih0y? zNPopSx`!3XA6j&wRyJ6(ZL~)N-c`9y*E^NMyhgpqSFMQD1o1G0Q2lU&tn$|ylGL-Qj-C&{pqMnl^$8;&5g#N z@@h7sI=6%D2KK^;aB3}4Hitc8NFc>|u=fk!ZM;O@dgMiwbi2!IV##cP*mOgHQg;Y7 z(Yc8gy1H@tkrK66+jCRnZevDfS?YRtCzPg+3wqO`ulY-Y?6}YHIDa0#2~A;3Iz9bP ziumG?R4sTZSAsXcV~`fB?(4;!Sl|MK zUZ!cLb5C9XGbupn?ud31zs4F`HS39^!3^tbdCrMg^(wzQT5Qn|4hLKk1CMum(-ep| zvLFTWjnn*oL41gP1%F1K!7hanlx@i1K*}8sBjQb51Wr`O$HuL)Cz2@lvK~8*M}C9K z%sgSs_R{%`N2d+cErNb}m@!#zl(T6xN_+69{bre2&?e~is#DMGb6c$a1_u>(n`Te& zgxn}%5~JS{ao_$~aqz*r_Io_y2HNWDyYTBWY8Fx{WxV5B9Gv`IJvjA~;nR*;QEIOv zFew1D%%u+rL8S`D`Kam=WG=|z+o`ELzpke~tNMjUy-#&6xWMh1tAd|>v-Gk@W-p>y zT_y=d#;2E|P`-V*zbO$^ED?8@^6^RaBV>*?!&qUf&xC;!v#mU!$dD=5eq6VIRB--crqui!-S#h80RY!W=m|Enzguu2K#45CU(6Ka&Pc+jAB-Y{?1beEn@< zr<%RcfAd%gHB}L->{9Qeab8a^%<)`g+Sz=)9erdsXLY6ED95=TE8!&wAAaF~{fF`u zbmtDuEniiIVZMHb{z4lImA;fsg*d0Nd-3RhcWpuy^Yv&Lu*V*|ZfDxD{+H&(8?PSPV2`k{p2_g)z@UIZwcoM+3raNW z5yZ0EcApISh;RPm?hISMl`~4GZwS*vX5d>}iyL_dxbLo@dtU|vw1|z1a;|==fT#63 zC-UrcdcoJgp2*uE;moBj_AflHsL|s#i?;zvW^Rvdzid$ajCLb|Rv9D^{@P=v7KG%? zKh>iRlVSMsuY6X4QcRD!-wOl%rHFnYlu2r{u~AS_3W7qTa|#h~X%jzW$b?keUFwZ% z`cCAauN5Ic_{jl7{}*D6Ty(Uc|5V9TM!mf5MYT30M+sUJ;hwiJhQLYi^y3$I9ScA@ zbw*13Kzr8t>xuq}QX==|8e-L+oY{HwnnUcgR9aBd0`NF0j8{LAQOwAX{u0^P=TN+eS4PK+II!4C#P?a zkxtw;dbj;JwCh;<1xoZ zPUN#W6rCy)^&TAw1zR!EUVm$QpGQ$n{EAW&lK()vGSd2MKU#jv`QhzHFALG`%x=+M zteHLZJrxpyj}&Gemqgl&0pu`QoMUBBZM~A&MKZ7dQ~>+Y4VS4D%;wl9*yH)v^;i@Otkl?i&gXV5tPhbWO zbN)Q-6gT1@`Dkcy1n9#xFcJ!%4KW}Sk7EG*k!YHRN?p#tlLd8J@SOTUoP_o(;KH1#L z8LtZ9`Y?Tcl9Ff5X2#t$1le>B?Rf(426a#0>r#EbB@{hMGF(~@v$BiPjwa7bG9u+Ldptw4>19B))-Fw)v4=?G zWQ?HFzxvetap$oaDY0FzQrGS#TAS&umuPLR%uKv#5$kdP&3fh-WSXg}RzuCVKc3^? zxhF9Kwl3c^_8{mDqXCV|mv|30mg_*?~!EZc+_}AFYOY&O|91_F{E? zP|SA7dvPk(Wks0VMMf&gVl9wj%bru6%iJ9Q@q9iE5kExRUWoH;6-xRAPT}b3z*Z(%<#Ek^cV?p3wlIv*9zaMn`yg& zXog9bqTNzy@%#qO!Tb$kDfYI?ewO*C?qlY+ckLl3);(I-q_5<`9lFwrd$vK(J7g92 z8)@wFki)egQW}?QKz1!ttURwlK31ABN&=Nxpv{QJ zRHsF9a_1kC(`<2X3Y}8o_r}6QJDk_VH~R50wpYAZL*8xwo{(-Fj`DKxU#NMd zbi&rav}UUm?cs`GP@Uv4EsIHo>`thg-SeE>Sd~)_qZ}{~rXZ9b%^j;$m%K*Gt$o7A zR=LD&Tf64eM0Z?7r(AEgzN4=zzSYmw($Us@o6qS8Tl-?SZ84ke@2?&$nXDNA1;&Z< z%5q(3Wc`iP&s5BK+UrdN@@!Iy<#^N@LIEg+J**&XR-qNG9VVG;uNDkW zj&Rx0(Ya%7*jqaokFz2=uxZQFL$OlKt+>wJ+)(fqMm20)m3P5R~C zlg=tDSi9dI0DpARwP5v0WA2<+Vo7(wxT4?F@=Xb#28$m(>#P zcYB-M(kd-sG#7$eB;`@zis^OIs?V`wB@q468;UhTi*NKqs=>%tFLMWr+; ztSIdp0K@rFg(|C_sxmqaiJuV>5j!)c4xV4|V#19?)&L+*Vo!$b0(qJX&mhh>b*hm!jZFzl!viO_ z3)Tdxp|0nXX3N_nU4_{CtpR7r))rUux_@kbJFs@i#q|9*vX;yjsk`&O5&Fq_MCJQC z;&x7{3hP=*{p&k@^39EMS9DRB1C__tj>yRkk1mp;zB)(2EL>Pad$_L;XXhOfU+%M;b@N_ z-)XD+`Jf3}RY7x8=>zH?>MN8V5UE{^0z0>Io?>2xN#J;dlgEPWa>o{Dx?7F2nPwl% z;F@{d>@DX{=J4vXZHDz<-x7~1CWkn0hD0yDz=rtpdJ<=w2imLZjGqtax~Ga?gU zW{JM%rsbmt;*33+KaYvf40rl>`DOIv*c^yv` zs4-N6z1X#@jw@xKz{F^nA>eMjN?#G_Z&=T$RMOAs3sXMHf(}m#KbWzxE?2>T@e_ne zgacG+e?(s%dMrK&r=NFgploPyIO47t%F!rj_nQFf-?q>0V(-^#qp`7fV&jew=2=>7 zqaZjfA#^4@09e7iCXVRlu+;UD*frFWk(e!oWcj_(u@+Py^s!g@g@%#eEf)#*?+7(N~DmUD(sfbToR=@*gmk&j)TJAZZXwb z?@>vgfp(G!b?5mIo$nT{T!k&2s$+Lr>ydpVdg}g2IVg7->>?{T!>l{YD|;G=xZ3qO>=XUMwI((xPZ$EZu02y&kTJ#j(kcqa3qJ_Bc|;7$$%bH&fOm0LIY zk%I|ITV$Zw!z|pdM=CHGsMCUW9-eixD5A$-AS#*pyMXqV3M+&PtZnjTI26|)Q;S7= zu%3&^ZWbY9x1Tr-jreW0df>>9Lsb)GLkAop#6@g$TVMHX{OoD7JiQ>w?cT)d)f)&E zZ(}KZ@QkES?7iLamr{9D%t)uq+DRK zJ5)FTk9|?$fGJR|9YM!Fx;@Q5XQ;$k)Y^#b_XC##q7j`DA)e4MW@_0#Spwy`Yc_l) zNqoFcCy=tTy@uB<`2F{?KE}kY#?1H3M6b%nTKJ_JVgl0Z&Pw1= z5i8`s!5WdtAhS%XP4O|jvW)yXIrs+ z9q%8$64SS5s;a(<+w`>h-*BSHxC6hD23XC1z(s@4>c9P5A^)iO3!@pPIPVzG#Ten^ zQL^qwk(2g8@dtBUIx_j-cNh65FW1E>+{OHyp%ho*wC z7xOUoO^xiTrNA1bzYpyXh@PwMH2X^rO3u*`+12{`(OM}v-S0)LJcmT3C5q!8m_QFB z>zi}8PV54e6}}#JefD_6&9S&`_R)sH7Jqr(R{%LIg1&ERRR0LPIhH{iw@ZEW>VJHd zfS^yor-kU|a5$lvBgP>^-HAjcrP9>qC&EQJxfzCW{krd)7@WHB|8IB0`>VQ-P`Wy& za?ndTP zNtx;K|FFlo?gHS zWflU@?7~YDW6}~g_P?G!+C&1`fX8-$*m(`SjBXGSCbPjHt_?K`8V<6>WNvZl5JJK! z*W7ucE?1+8o_Zdm8D`%-mX-;nh&9=J{WmACYd}k}Wx>slx6H=x52=}hog1Y;6pUzk z5=UD8GbRoi`Y7Di<7p18i{6dpt4+0;1Bh7y|MM`ANs&*YbjsM{?hSQ!x8;*(WUuZ+ zh#0JRC1(PU7(yyknZ)HqFUK^;ULz<$QN$NYpID!j+!J*fyac1nGQ*? zBNh_`>s;qC-J&Z4>}JmbA)G^qEQ682v6ay|RnvH?tIw6;I~jiPtstlfV|*bzaUwhIv; zO6tYX=$@&_F3(cs-t@_HZhNmCMrsi!@gv@@mgKs@7k75Xhjbp;wZk8nqZ(-H$5!3I zRl%5bH6E`-DZ%#I>H0=H=fL&>-hx#Y*G^+gD8)>Uk)m4=caY3mA9ez)NZu$NHB+6@ z3zR&tnpbXI(X?%-AYgzW-1{zcq^y>cl$yHURF}C>`3+IBbC@>|aA<@qVDXKPKK;0h zCOJST$z}wF+#MPk3i2hYAm)kz#O^_y0SfFwphr4*l%td3tWN(@2KXqW;TL&!tC*(?uRlr14!BRx zD{wl|;dLJ~OfS`tDr_~3D4!lzLPJkoo)?n-+BkE*AdKg$Q1|H9hEVEs1U>d;*Qgl8 zHVk|99o*_$_cm3ZAegtH7SLFUu5k5es|CGYEhr&q_j>Yt&MS`X7Hl6`AoTotf@$?t z24jJURb_1K5;zuq{H-Ci$i^f~ z-uMo@P_BXO33FTZ=%U3$s;R?1oG;xLB%H+>y#<<{ z%8-AM9o*zp{;Iz#F6UzO`in}9Gum(On@ME;AX_Eqr7Wr~kRB+%Y_)E^APn*%!+P#V z;I~eIZ?|FgYYpHZs2ggs_J?UqG}Axe#MFC_DChLDc@pBcg!)06g_V7q$>ly}V73|gMs z38D9RPN9~+E0YZ_4cjakx3aLAE0m45T#LP&54_W&FDe(mspoFn;@hzBvADQ7UQ$VM zbU&u;SarW$^-UUAQ$o>xZ@f4glFG%grov`G*WsLtNL3xtQng%Gf3V$Y{@bE1#y%ZA zkg}YP^q*#tEB7^Z9ibOFG+2x9i$~`7j+XhXcaDuJ_(j#7H)92%n-<+^*W*#zeI=UQ zr%g2;!6QI4#;vIq=0DqsAV)1Fn`m zN@4GMN?xbYB)Vcf3L7FZfL0OHUE-zF!k8*ZVgb=N{UDlL#q%N)lJ@z6?q=fheWWal zYggq*E!A&mT4{edaQsGyB8>Ds7&4AV9dG5V)PV4jMUQ=CC}2j9f~Re5Z?WJ{OpV}{ zBub}$3>id>ap;Ux?`h_=`{XO&ynkp>xb;mSv~k>9(Zb`)B@LIK9v}Zj+)Otp2XS(j zbd%J3++H=KZ(OsBXf`ZAWK>LWQ@mvzV-=Zl-8*968Y|1zvZn+cSEsxrC3itbNFVA- zquMG6E{W0VYY%_qQh$L#Wr8mP$&SZc3RIPlNUDg95yBLpc zK^%z`GOlQ=blIcb^}072#f*2mmo{KS8zgHYH}wa;l}Hv0`KFhIf|J(<`}Dqlh~r+l zZ(ES&iXaSVdvcN|flr(&kPnK$>Vg4stlUN1E+SRIK??6Id==E0?D#%2+~=sh991vu z6-Gfuwy?Emm+~ZZDhf5R_g@||ka5WR#jRj`lmm$@=Onre8$Y6qXqIcM4K$;Oq5fnU zn9*^8H6nN;fzp0EX0{vhU@*1W8pOI-ZvRkT<3r!%V3t74%9YslG7;T#ysWr64Z>)8 z(#T#>8WPUFzD8CZ>!=B``>*9e5Q`f|{q@qs{I8`@PWIu;x&rGXzUgf8eu^RcXN(0U)6+X}l6sbRYGJuckx@6z_`2xUM! zbXxcJMza3}NH8fFjISu(dU#+r zrgH^35;5amU2nRv@z^TOV<#Z$gO*eQ&epiN99|bHH(YnBL!ZyGqY+^iti4-ctkrVG za>IN~Yj0E)tAX8llUCy&7I4UXdDTqa-K2o-khg7^T6b(zrXr!FWGY&p=a^N@{|+pu^ljhjPh_+^u>brn=iLZmsOG?0gX)~%Dy1bl z17nn|G6coUDVeYaZ}AWHp=O=CC$e%wH|cqI?;#ozEDCs>m*=U)gc-V5m%n4kBT>8x zt9dFK^zh(3TV`VypMPUEDiVevg-3-_^7AH(w5uV1#^#zEatbM#VG+WojhbHCtw3)qj(`qg!@3hNRuA#cO4&rt_jKH*4AxsU>VSy7)y5QlJaw=3E!cDwuVA87I?$GiW`J(%1kKR-25#yZ8~w@PNJ;t^ zzY8U3_vs;fmgKONV)i}KgiZzS`dLK44dYW8HQ5>tgywPKScL748Q+P@bnKTx3rx`9=zWw!yY02Z?AIe!FRFqly29dxoRMz|7p^A&jbTdWoD0zbMTta-b4}#zeLUu!6e)3jXA0IJt6$}Qs;kjv049D>il1kI{#6} zdoQTnxl>hzsKiep{;^@**IY3?*NfqKHUIY>c|=Se=>!S)_qnX{LihAAtB-thlSpUx zbZwM6GDGY>?!#!CId9o78yg~4y$Js-dwBPU@J|G97qL0r`ksD<1lRYemO>Hl;mRxr zA^ZHX{1W2L_rJ>&lF!p0chHYN>mS$cqpy3`b}n+TuK{Gwi5;Jid7pPPMA{C{ik_k$ zPfEyB0J7q&;)P2g(f4r_)7+gd?H;n1@g^UD;?zV&ZM;nA< z`xmQ$e8brtbS_B~8d3#y5&D|HKxCkE(dv1h84qs1f1>-BZH4gSzn1tPA7%_t`q}TI zt`_4i_{@7uW!q1@X;9tG8kC*>B@&7kVXEPs> z9!Wf2l_ofe8Z<;+q(bLHOk?#YJ>dCkuD!Z&*-kF2ZA-en@jB<3VPsK64j$R`8F`HS z*x&>)^fS-I;4u3@NWz}D8by3#AR~<=5jqC&JJ{rws=fC4evB$i`_ja41p`mX zo^sYjdP`ajl)-Cr%D5DuK}=h$uG53BK8fQ^gF!8V8mV=c?cG`Tt|-p)LSlmdl$Q$~ zVIqmko4wTyN&3_5wZut-(5Zz;d5^fdH3xXw>Xp4K(r*1U@4GB11VEjD*`?53FD#iF ztf#bLyI*9m1litL2^f^tqFU20jNN2Q(e7Xr^=6o6wcyG#K!h}i14Np_5y6a#b^MS9 zafK@Ei`SEQw1!lvrO$}16r!vmCA+Bv^(->IP5A=_NyE-{zc>VQYjX zkznXXDD2Un7qLkDqXi#JtL5r@=rYx|%>#y7b~Gy8=w@<}e} z28#>m7tAqF4<%kSkgd`O4z4io*vl*5q9J_~BtOo9deDP(#GIbb4MSCRquilmeR_VD=Ck#z0xhIrr{Ciqc$2gK*CZ~K7n~%Tq2mxkttz}3O!B}uKRJd z5GS@1!`*{I7PJO_MI*?9LFCTb-H_n_7!x+wt|ZadLygiEQ%N(60`;2cr#-wfxu|o! zDUaep0gJ3SDP`IiBH9ceLF7(0n}b)Jck##Bh`D6 zNS4fBmK@_xwx=^{du^ApD)R|4kY^N(uQk(|lzIuiNeG^As$pY{aLI4y$)-Xs{c zTqGS1T+Gd0_*m5-bY?0Fkx)vYLORAQ1k%Fwf83hVoOr zMi4}KfsC5TEauKE#!m0tzb)pj({M+cOw=7Iw~2%ZR~T_tuiF-~u1CFVWEF_@5t&MY zNw2<6@n{FJ$;nCi_~HV0^tjiS4zOA~fpL}sc}XqcA4Uc$OYvVlxa(E`P+|qlDa?DI z;@;9}>pDq&KsAF8o~(>{j0d7dR`Bkfc<)TE%Dqxdc##4ck26DJ>LFfa__hHTqOsuZsV|A}pt6kO`>1X*uh);KsLdMxQ@)a-lcWJbSw-{PSd8`Oz|- zEMrEkxh;02OG%)=6ee&?D^YD7}*6Y4i#FXB4tBpQoFv{2GOht z23)gXiH>R&A4`r>k{QoK!dqJ^QnoTX(h`sHY^=r{X$=nV?0bSH;B$fZnEhxTvW;c+ zl$&v1YrE9+_;+_x&{8l2dr`;j)+d`9F~jdk#CrG8vhkeYUFRdE?F5IB`$^<*0~nLT zfmesHyAlYyi+0~ro{=FQ77D^6k^|T$gH>u;7@`dWmvO+>?=JUK5Ts?Ak@@C!<%ie3 z#@!vU-0$kwk&BhVRtz=|G^e25$~vyNn$XwRgH1fJ{KV1EEfP~!>ejR-CYnSM9 z@7=p53EEqHW^w%}M-_4j7K9DPC~fv1L7ew?0gCeCNB1~5IA8>?L;Y)BZSt(S1Dy6E zN6!H-QW{I=SWjQmYWvGbCob<73_(=pXWgKwnI^O!V}&dT=r_v4-o+U;?ld0n?gnwg z9?$Sp9U_DrMZ#gr+WgSUZAdo8)S3OZ@w;YyPesemUPPqI8bK(_g^49kyTWLxC-BIZ zByBg6e~S2ry90;F)KiIJxg~zhM$2#t>M&?D@g6*C$e>YVU`m@p^5&aTUF2fM8J zuD2(5oR)vb_u$noX1;-r^M-hC;qt;hb)sA?l86nUrT99Ox9e~s_c@a}v0o5ry}nWm zye8q38tq$S+k^3fGak)et~?pq%X_c;)>d!6v+hJt;?o)mJlnWmfvdt4T$uz`hGReYmZL`V*eB%rYF z_HZ}HFU^90D@nSLjEEUT7r2K6n?h z0a*<6>@tqi+Ez8Kzkvw3jFGqex-xC{u%E+{3b{esf_p@0Q4jrDLa))6lo#;_y|rDi z^Zag5_^DCW_CG`C!W*gE=$+62-CPy&IE^x8$CrSk>lSFw9Ljsr7%XOY*%3~9i~-|X z$YX9IZoA}K-W1B>?8S^83K~vAaZi+@$#BZl90#eg=sd)2>z#*!%eW6=!Glu8tb6NY=NA-lc;eT#QX00Ulu$guXu;*Yw%RUiitpFL03m{)DD_ z496S#$e(_S(m?1iGArYY4;{YAoCefc zpEiIySOkfaM$+g${T<;=@9-XZL}o&K5L)jC*3ZQiWbn$rx6Xcq`2Ob{v^FZQNTk^j zF>1){oG$}s{&oBMN(923(@YC{Nqx1d>%LG#&qN`tq!_iHn zukGfxDR=I`=;QTs&baAai=-{bd-u-AOsfel4DrKItNh-+WU#mGzS#YM-3$5*!4k}} zFV-NHFcZ>5!u5MkSTifpIR6<(Ye~Ad3DuP98KIQ$Zc=T~`_70DXcleKI==!G6NjpV zxJbk&k{{rREX_&(-*!A*sc?OdyQN%ZOA?JhZ!T0f)gRYJ63H=$xA{7Z9YDas3eu99 zfen<0r$wWXhPe&Y&m3K z0U>uLQQ6SsHSel4(3xgn#j&y#y)OnJ6{B?(dbX7(C*~f!+ePo z2&1XxGc1PGqj1KkMuNGj^t|vd5%4TV^N@YZ5b$mX7uovrz|0(sC$PYmtG>Jlb5WY( z#tcX^MH4FmyCCb;({=mbbs&CCQ{(g9sggfKcvAaZg`rI}J!s6tZTNS8jC z1)bZ5Z!#(EG#m|GFsZH$C4JQ@HR2>Y+m(qwJ}&j1eXTsyPFsDr zuy9C*fk#rD5krjhajoi$D_W?fE{PYRL$0~LQuR)Iju-gH_u2kL7fa$H@>z`lTq~;O?1V zWfyg<(eoLrbvnIRBXTfy3A6bOhDjRA!IgUm3|iD0ihbPla-5^IG?DoI0DfXTYovtN zPbdr^xW>Km89^jgfEow1du1laj=HQ;kGzB7(s?N)J!r??;PgU}7SN`hsxA#QYO-v% zE}$REM3>7yUX?@z=!JQ|F^jFc+28D!ab70O!VR2hPB(e*3sc}1#treu%9nGxRft1( zm48L}*cMib``#9p*djlNm)&=NJBrkQ!34qSUFH_WCw4Grta+m(V#bqxtE1hXM_yTV z)j&YtFK`d+0WYJXW9*ny_gJ)k&8=cSPk}%~R5zwdSGgG(nQ=sIA~`NC=JIkCa$LEk zx*#7H1yn$$81v0eJsE9Ak^h99%XY+zmcV8aDE0Nx;>f4)Ibk(5|jWCh`A$F+QHJbdl6RC1@CVH4SeE1k$6e`jP=_Xe<6 z#YVbOpM!IF2?*n}PI6UkpMm8)WvpXCk-&L@RV<<8`A~sGKjzR}E_> z&n?17sQ0SM@JRDaoY5hbsyFs1MMOcO7H+Y6_pe7AW2$_lnlhH_Iay%($uMb0Y<};< z9jBeyN0TXeSlzvD(w&fvpY+_$<@IftS?Z<38gAKjC{Y-RhRZSmC7EfP9&fyk+Mm3; zHi?L*5G8AV4-MT3G~Q|8U{je;T{&tcsv%_}zEo=b`7+|FMO`NXkTB4<&pZpJXKkx* z&2~IJzDZmmk;i?;th*bIp}A{_XNK>iU$I)KyJaFLX?4i!s`BJ7M&O`AJZBcLcPDC1 z;feY+`uz6)hr90pYAS8pW_8tFdjnLESk^`n5$Vke_JR^XN))6w5dmolyB3rd73n1k zA|inZkpNO+0iu*dq{Pr7EkRlgA%u{S{LhKIDl5D1_s#ds|Ihr)IO9M#ob#Ng-1l`~ z*LCkx^O+p$2P%C480Dz}azJ;JD)P}*)4OePGMlrl4`;T@;Z!Zv?uBO>!*qM?+1d6L z7Qw>+WRAG*yTCrDp^fwwVUV+R$C{$$$F7^7{e&MX1|8McHn7SQac9D90|F}N83`M@ zS*WST=GrKfLvWuPU9lz^)#+n$YVUACo1r&@W)!I^&&f|0IzNMq1gVrs+x#*Su&~N&(UB}trvUkMqRvY=2#YYY$lk9f z2r@$ZRPdYA6D(=o#8`vzPLMeF;bi9=pXBG{SgnF+BEg@Uyef5pOIsH$dfwW={qDPh z@x{#O4m1@S--={_)&s>d zIZFO*gH!A(Rg?+@CO}RTM^i@~^ACI0g3(!lHZrY4t+7vHovG1;u}Y^BoukeWGF3F< zJC3VM`!_zCa^hZKl5OnS=?B;lBtYE)K(CwRBj&A}w&7Qhima=&`1RBX!Ev`-vz3=P z3}udPYH2mVgsdXBq^}1X(j7bU{6(i$f)>NM(!e&(%5;M<@W`TQPDMUsesC1ngi|(5 zv1)+HKsbgtrXG*nd^f;{Sqb$3@aza&sdPgwqWY~@nL-ajz72G;AfHJ&o~&C~^`Qm! z{QR!{``9I*({I73e?$8755Y|>!20gAP{$?)zDQH%M%3SW31Q>jyFLfzcgwcG#BasI ztH@S*iH)GYDf={=3Gk&a4S$yLD5daX#Q{(d$vbd9;i2>`x`18f{RXh)DafZ6e9ujG zo_VOe?H4hjeSXEWbS7l?sSworasovcx;Bo7#ryUzb($h#DoJQvO@Kl^N{>96)AfEr z+*aIrc8%Bb%)MI=**h=Dez(o=Y9@=v1|6dSSnoK*ubAD9HWw1EDCbJ)@t@(-pV*j5 z^vf+k5iHL1I1w`_zU&Kj`q!K0bYb$swc_KRit9nmO1AH#`UwLCy7p8=RUG;)T_hxF z^GLGNbK04Pz6X_U&tl7ByoubPku@ZFabLQ;e%}I&r{bgcDQSY3i0*g5q;#ZQK(IS- z-p6H5?^}%cLVn?eQIeACEtp97eq!PjsVcRo^9=TJuo6sA=@fD4Gt+4Dc)O5C++~m! z-oz4qel=0YJRa_q%I@pV2VG{ODVT}o1OqpCF!u5te%( zJplKRn(W20)bGqZ649Qeb4W=yS?u+;j1SC7++V(TGj-`G+kM=~{FBpmn;5WrpUZb} zwTFBMitn%5rx*|)nSF%Ki%-fu=^3o=QnAVT?CK9$Uc@WshkQ;Eiz_T1B-9}$k$`-k zAY&*a_J-mOS9UOH|7~UZO82Tnp=0suFr1Nm&g|gz-IHPCjQ8-6+PuS)UU4e(VxB3g z<+dEMI!|a3j0;ZY&+1Rdh@WO(K5W``vED3RX3i@=y%Cub{?sO-D;vqG=wVnqb3V1O z1M)%z=6zJV!jE(uG4BAVa?I-KNGU1;gl`$1%aISDxziyf{Ch%Pwl>YZsYOX+r08yV z$1{&UP$g}%Yd$+!BIuEhUuiVYW$?X22a*#7`YYWfzde%atQbIObD=_wIqnTZHig3{ zlH;!)N}@d5-~(g~9*PNmfHK#u(+E$muYLJjIp8=mO4(m5Ra-sr=M(iSVmDdcBGkEn zMoi(g0Y?@Tj3G^b*S8O>?cQb3so!IthD@JO)>5bl@HRfDOWF~FV5b27dfz$D`yJB0 zF5qnQjw?uHxJ~ZFH9l}W^dO#q^^oU8x~NbV9>blsIc?LcpDVI*%O%%FX~hPAQn&sv z6!3oj%V$xa3ViOSW$`KAt%`-9s~b36V(bc?dsK4I9+gqCwYHAw>@3hZY*qYdxgYJ4 z{8=T3{Vx|zcOM1xarhCan@DhXBL)o_ke-%=060Sukc9=%hV;393_+FE!@H$#OF zj0y|+gIPY^@7*3rUjt^0rXz){pVTh&Kb_!hTvE{kwsmgULZuN5a+I!grJfXLt$vxG zu9mu}NN9h8aD^;=D5vK=A=V|R<#JqaLE!j+&B~KtvoEsn;MtOSZO}Y2R^-R2^tzV% ztL}^^AXM@|n(?OTE`Dl_nRFj0DKM99&Q?BZcrF#U0=3o^Z+!o_8_zqkRu^h%@pT0;x@o2rlrA01x zTn+-PYyO<|3o^x^Pj|&E7eGI(FGAFL(u|(d^~MOrlcT66%j@b|!?HP%jbh}X%fJ~4 zbo-`VVZ1fr=YRqGfrM&ydOqE6^Voy$P?@3D@O1hq?V;)m4O7d`At6rMF2-}`RgFkzq z*5a%+7#O59X1R@6f2_Xcxn;xHzIuO#Y}g3(V^1wNDd??EmV05xka*uVC2f4}aVNxT z3l5E}!=vRd%5|-Q_l8Wq4dWMXa)U30@A6s}vpEvyV-4SMJauQLAJ@B{!mJxU=9H$T zB#5(c{WS6UY8T$NXt+-0gcUiZXHCa*)no)+&1$W7hO6-~^Q2FjyFATTiYOY0Xcb>s z-!{IhRP-_BY>}sxmr|2E*N(t-9iJF#%O~eKMl`zDY4o{*{8FNshMDf%%>xL z7=_{j>RN+=91Fja!~-tlych2~0(<8m>M0?Fy*fd}MY-$h$e1aU1$dlx9o*8fs{8QN z+)5`*@I6#VI#>|RAH!ggZ_JlEZt@`nUc4?Xr~)L6rMYJd$w%Ht4zK4MD(ck<1@1!$ zlVY`>pZ0@w0qi!+nvVX2ewwgSn_rE=_^vTA0h*WR_^ z_&5}(N#ymxpv!Z?$r{lz13?&v=AiVuqGA%2_WUX1IU-fpKifYVS0UU$WVLziE}LjS zU5IA+zoWRC|55KL)F=B=Qng5E!s=B<2Et-cNJHls5R7>aarH;Sl2kS^88K+1x&@Jo zv^sW*f_j<@bGi$1H)+v=2PYns@yJ&Boi~!Js*^pWfw6`Euwpd~cBztQ$ZI^IFP~u& zvbJrc*bO;?y^wuJ`n08*C0@g6SYEYrlQG%5yyym?2)zSVKx^$ji{>$}AFtPpHi#RP zPWH(65UnPHmShe0p!mM*X`AQA5pRl35u?qd#T}*N%z`nmH@#lcewroFq`Q_DbBWYy zCMM*rSjS3*07`1To8HHu4R%qfwPb%#pCrAo;e~gMw;IuH{mEuQA(MIXUKNI%HDQq1 z-B1ZjT&WNw)>b7FSMe=}^Jz{=eHTDIg3Bmnged<)3n$7li?{dUPZ+>?loQk`pUrKf zc*i!1dm-Z3YF#Z_%?s>~6dON}S32fzkfU$I*xYzTB?(rq+`_nrb4<}*FV;~o7`RnZ zVGIAc1-sS#AYu97EfbjY=aM1eA{(upLBgoHdHy=3IO60^V!bDMaFc{^9V`d7$irJw zE}yk6F6WF7@&_>P*D1Pk?svVq{M(LEsS3Q7WL%$8@Z1qy?bbpoW!3!^!fsA*)p`=FW07Vw6BDqZrQ=)-?1CYylo|cO0Ugrw+5Y$&^E3w^wR44qqq*zwZrBi5 zuBZv+ESut2qlT)D_B5&ekaICVoDyTo^3sL?N4SJ=r8! zbT%Mi4dTiya0~P9M42p{BvPjS%8qMne~jtC5YExPX@}_X=Jy z5V9%KCc;sF?-qVMDPu`Tvh2P=uV(?u`Msw6Ab$VVNh&gExKFlw%tsZx5cxP5v1_vx z!>ZlZuc3r9Rq`e;hX&&J590e6l5w*8YOiv(>(RuWn^5K0k7W46wE=HB3#kf1Qb|@{ zj~)|dUKN8jT!lbQIVe|LiMQ~r_w6326)jt`uvFbhQ=mgX*HhnPPSo3E8z}meAgb45 z*Ttagd=A(jK3nJ+6aOe?b6t>9i+gO>65nGc5*+yYoj-10e{U8)wXx-_|7&5Z^`OU7 zmq?hACf#$ioj8?ER!nivJmVMjvV43B6FkR?u*ex6eqqje_{y{^!aLqCPAsO>rmi+q zAKf`H)OaEqNHU3?ZpaDI=i<-pjiUwLA3d*fRF<<~ekQ{;S?<0T1YOUpj=3aPH*5?} zw+6n@A!n92pmQ}~)8#!Md-XU;ZKI~3fso(vqGPn+lUJ5-d#kzM#LM}w+>={kP=W~1 z`8Z>=IfCXpo)$dxvbg&$rzd5>V4j6wyDhSdHoL`5HViarmgKKH(sB{1=F2bv9{E{`QK9gfz z&kfPP$g)uj9D6KeUf{qy;&I)A&##y9Kj1OBH`;ggCRyY;u|RXZJq?+)chxTSI`KcS z)&{l(BfMIhve^OzOhIpG*H+EW;K2_=CT)FIW{!Oxgh}p89b0vQ4`G%Ma3e$)wzO?M zOK?w=wN?d<{ZgBqX*J*!R*8wfR=UJ+hiYv>?6m{ierY3nAA5b{Le5=0QOlb0rRVwG z0tJJ)b!7*orHqOZB8IpsP|kBr(Bk&Xcanzt0=eXf_q3whb7X9`KVA$4p5Gm?^Y@0% zc|7>Oqk>1s%QOYe)d$u~9ec<)o4I=pID$7)Z_6a!c=l#jHgK0!mP+<0@xYdl=Qfm5 z4nwUxwx|1ezSMb`{^W@Zjz0fh+|hl3z0kQ0erdBbbmemqx&AjjYnA1A?Ey!ueP~89 z4LYhyT&d8_cRg08uu-n-7VTX0>5dx+g~5@Zbfy?^hdF&~uHBZQ9tj11_95{9QP~Lv z%ciGn2fh@PrKA=_|5YxZ|Fyg}=c|YEtgq$r-|unz)$TuUx+-<9i(rlGWaD%EwsUvf zJeo`x9+kU2H}S^U8;yscU6abrV~St7 z+3UV)Y?l6IUa|5kXMFy{^d@j-o_qNuNe#Go?EU-5O0BG$VA~%7UCMra`~5S2vlNFe zy8Gob_hwz(lz%Tb1~7oJ-R3It5KG z;K}}7{`0lgzx!W@^5B8&c~URZyD;{s6lH2- z0}A!aPD@|Az4D)L_P#f9M@@3#wuAdYn?e4fgFtrk-6KOy%(fzYj6C-p0Tvzr`q$yAv2?%K4O@zsw6 znn|J6Q?IsqIfCbkU90=U5dZ7F{Ns!~*KqRB6%R!pjOEM0(p4yd);pNrhX5%h)c6T7 zeZKkR$?BQ!F6s<)Lw$YqGcAl=K=oCESbaNuJi?6e_c<{^l~f+3q_)m2t><_K8e-sX_}7hpB{)b{W#|D54nqap;o@(fkO(oB zwLJ1D70!JKgcyHrGGB!l-)$l@4Xt#h0yOFAHqDW%A1zrvZJU&mQhrs9hFL*#9dM}s zyz=y=EcIdo)*+__%sL=Y`776vIDHQc{{B{XXPhxN2W#`1-BRd0`EF89yIW|A1*ogfx#di+ z*g4bAxU0s1gk83bwkWh|%uv{By5x7(gR(^N&3UHZ-r4jM;M-;f{V#OdL^!_;&xf~> zj_rd{SaSBbsl{Y8tDx8Pl%k1(pcLl5aB41Al*{M|i;LP6LJp>tKUXNL<*G`8(icG2cbk% zv%@aAA8$wOZz}Pz4J@BxxOu-OszwxbUh&Oib~@v8?cUkW+fViEupfJj>w$vrs`hfmy1H8I)apCug-<70+@vH zGcUwydr~x+glvqWR+jptWR+p{{o35bpl5Yz#_23F`|TE3wFU?{fg>bam&CORhy~r@ z*4lxz6ksv&H=nFFgJw+6qxIBEA0PQ-j|TxYpO~Z)r?llzn2S;_ZRt8-F4P(UF=e}c zFWvjy33LsGU#~^4Y(yK$%Zhta5_Sfdmh%ce#kExvfL@|@J5?zitBk6b!5hurdP2LV-|A;xqSeu>4Rl9Jnd4U`M5R5i zYCR(d^D2JJBTnAcCE%`a}TcDfokr%Nn98DW9EUcnw}L?1X~&YZ*aI3w z7b)OJFIUA*R>idqt@3CqjA#^H-kWN_L}w^If9m+v?w%!d^t_RBrJCAW4xj%TLyiQE z=5-W8E?NxdTRsQ^SFO6Y?X;vJ;@gxb4|6$YFV7lVABeY^mTmclLGq`@6OD89+*ck zv{6AP4@+P?_kNXclw)%~Ay=r!9g46M{9Z~5+2<9(Gbz)fs(F<5qx~fmFjcJ@Iy_jbl^Q#j6FPiFd}b z*JuN;BFIJ?fn1KA07h5S z$>qNx13#$teA=QwHurO^>Uv-zRCKIMSVq*DygdQL_O49vGar$3RCAtH6B;tQ z_7bl%#7Y_OPU*knf!A4L`8F%yL=)gJ2){r8*#=1`foY?iZEbx8$}}O3Px*trj~18q;X*L3KIz zvID^gl$hDPs55S0au{wRISihD2Hu4-vpiY}5gojCqZV7Q3=6yL%nXOxINvnN{3kjK zinQd4HP0VApI{^FT;7Lu+O}qu#3WcCohL1i4ky$JQ`dTpoyyf>38V z!A8(ZDo`=lax7)3-Y~(xyvL2Os6MZ8V(2uw>JpwYUaw`F?eD(N>Lt0pz#twRpU_a!Z>*=237N%1UPYvpuH(=BKA|=aghtd4KTl2#i^*t0P>!k*9!?ChQExY1k&CHsc z8&EF>_?mZUYCdbU{4QV3S*-5S+N9Ft7;l48wb~Q!!PB`yyvhu;&VlDLbVdjuAK_(G zq*)egR6jhlV$dMYquH_(J7UM6r(HgatzbOoYb=D7@$!P3&l61ZoN&^109tanXjoA{ z=un{ZI7D^0m6@}PsR2{5DkQV4id>RG(@S;7JPv&oO#?=(4{)7dZ!@<(WRM!i;n%I{ z`Kv-w6W)+V7YLU`0c~>Y7LvW3_L{y_o@zw4wE?ejR#x8d4 zpaEQGF#k}@=6Wu7^NBQmdj!R3?H0_%F@FVKC5R{l$0PhbFFJhmFWifX9li89P0#Dr z0*XN{*$4OlB5apx7P=oVKn#V!%BVtgs+sQgmItq`nZ#2#ok4Zip@2tqlkK2eXqJ~* z%`B-;$srM!*Dd-M>rvNTn{)s9lR(FhH8leU@iwPbIRG_k3G%GcA>2)|q0ddr(Gk5~ z#w}_|DNmT}?O8Hvy0fi@QyR!h)#3;Mh_09P{%#?MeXyJfxK^8xzt9d>ZHgaQ6Jge( zI>;Ck-Sl^gcF3Hxx6G!88WS1w@P-+NA##)Qg65#1)FOI>O!1a;h$99*Go>a2XQ zaRUD0PkeX^T3_2et!Fh@?F|p?v$XrOOf)CZhm?2-j|$c&Xfwk_6c0z28sj>ZS_1O0 zSY;!zKO4n4Rpf5v_4*j6InL;syJ3<>&P@!=H~3jX&m=mrGX(x5L>Og`2v;>mD#&?N zm|aFV(sZeQ?IE9kibB?7rBZbr4!av&*Y&q7 z=;YYMStveNE;%!d!FyOT$JOUaJ=|1k>+3iBJ&;@f3B7^1_1f~Rz9|$-XQTm)>Mk&l2%Et4K$C;uJ#;QrAXuR4WW^k?h1(>aJ&O z^SA>YTZo3edxBW2fNZvY!3R_tuSmP=VPkg_I9t$$+RF6w%jJtSb8Hf6t1N%_@5_{} zTpu>Ill=U1_!VK7fa3#%XK`wF6MB57Q~3Ei)B~H$*+i!)9V9!)s9G!kp0#5)rOnT7BI```PF(6`^4YlZ(Y;6_9laz9m^@bZZj0gMp2LI;}ogDKdrKk9czOANnJI1?u)(WBXa$2ZbVPn*xqwgnj<^6mOHSP zr_lC{n*8&*t_HzpH-MT|gw-roFY<%wIo=Dnw*T8cYkhU;{rv^Qdy+MBf)>4Tk7(Hw z1X~46pCZi>ft^m0BG&F0eAU+7x3Kx+linXsMBkLfpmgb-8l{Y`q(S%FvSG5RDC47m z@A}uLPcNNy@6BgkXEaEbHo}@6byC zENs04u=-_LQ=fk3NI=^cvjETuW>myeaK!d%t@|$D2B4Vpy<7^?5R@I`Xn*{C#;^Y# zy-jA$`*#pvVf$$P^v_DB<^34}G%662oI(axMK8P4@t6&8&t0pbPrujz+Hp&r++n8f zcn|1MR^0s_QG}3!lRJ7yXcg|#(9OS1%f8(p3kUGETY`SgfAj^!m$msSpF+g z`VBoWJp}>2PtP607}n2>nS$&ZAVL2LGj(a(J`*wkFw?St2vgvxyZ3*Dmu@?~IeBKh z^vSww52r!c(=i|b=XxO$>7l!R_)O>@+q_z^P5Y#hZvRK<5i(fGu)h3pSWVbbR3`(y zn-?3%--cK+l?I+D0*oYKMgSLJm%9%8o=M(zuyX8E<9`~@D8cnpopnd|Y*5s@Tr(3) z{%vwV|C@PIeg%#GM0Fp4Ko@%2Hxu6W^_yk@bkBGIl+nygedfDclMUTaO>Oc_sHk(h zYUCxL>XHU5n!3N=@Ml~(beBMR^6&8d-zMc#=f_WyBv|$ZfV=zvn@&R?*JLW!)UEt2 zJ%A(g1I7&A(wa;_Cs=s!z)ZCTp_}TLyZf$?@WY*a7>TEXB`n496`glWgjA}be5ey3 z03n|^)@_AWFtAhkR>YYZo$QkAL|+F2Af~nOT+TGaRD!$7oX>TPy?Q$9=yvYO(9IjZ zUiiNXp`E!G2t87;Kft`yLvFA7J0Pp+(tQnDl6K$XQ3>`4e&@@MBPDYlBs|mMG6<@d zvbY9>^6AhlO85$b0m>Zo*Zw2M{AH(+`rL6WaVKqTkKH#U4!S_-fe&ZqtpDv>C2IOI zhM?RKLCrK6S@H=mhyi#<2sf|%cEOpd2a+Y+?%PuFWeNXw|1U%@^NT!j)48t;<|de1 zV6{RmJNJXGSr2~PBP4U`Uup_qZoJ#dQz-S@e?d#i^xc;O6b#Y*{ou3&C8}j`+Jn=` z@54{YYyzM7^94Ykop#h%?Dwc>9`|m1N8$*oKe!REa(YTZM0>C14oNgJPi`OaryNuc zf8v3I{oBqj6I$6F_$f;@-?Ol^oM-efX|J{*QF0iE(#)FpD_(3ENG-BOZ$uXOM=EeZ z^#t??*&PMbYKh!8?ai$F6-0+oK$LVJ6oaHJK0bNknBY4d@Lq7S_Wwr+H1q!=1p2gr z16TJC8sQi<`1gq#9_-6X(DvRN49I^wQ7-_1O3+R!Jo4ap>i5;To6}p=Fb!9B=W{ z%+U?o1(VJ3h&M0{NOOkOf<}B!KJ#qc+<9dc z9HWv!SIi-8T(T$vkaISG&%|hd{P;TkG;_Q6+v`pgpQ8>A4&FkTX!#(P=xsZ<(}$|U zAH)^CeB@oTTDJ1-7Wow*ed-RTw<+f2t|sbz@;cRtwbbYIZUkN#FcZ@82xiY&pVUPI z($~a3{i=3+>B(wad$8xT?tIujwJBC*PGvB?&ggTkDE0RbS@^)zvggn-9oZdE)J#c~G|>7c~Cr z8*R}06j42{wkJvC_>KQ@@%1r6qLun46D+P#{%UI=&{oX%GMMOiD zJ)S)&QgQlmaB}IZS);Aky%!z#OzefoHQea`TQF(Of;_rBr*V~N#L9R6o5gGOngwZq zL$QJ+3>L34LRyQMkj<&+62l1Cefmc%AnS0&oq|l+-s`lX?H;t9qCkd`Jsk#X?f+wk zmCcm~zEh=5(NxiR{t9vMaVVGJ*HnTjvH_*6q>jI|L#dCfC%_eorA5v0Vs(+<$R>8< zYvk$^M(m3f1?ozRml$-LgBApl6ZH*YfT0y~Qcs+f%E38fxti_Dt4KCoXbmlv;q+f$&E& zCLp4%3^7+&DlN^`o03fnDIkw$Kpd#`RGUOu6FHCZjDU(xPzsSjptugUuJzlM`XIf8 zg(EGkVPl)4k3zv+6)P3(vGL@Adsh?P0i||RZ^{j8l!FK01Hz4wBHES)H@+daS}hBk zQVSncX)d&?xbAEZb_Ejvr`GM`EvaWdW{xT~8ODMBgCUb+6V&TY&9rnSt89oz)+hFT z_fOd9EpU^|=S$nes3j5AI0v%EFlFc-|p0Z`wAyZQrbFC{@ zPuzOU4@i=drx)=65Z&q?hJrv1a4>&_!#~Lh#JlSh{6GZ6NJS|-C8Jp4TX@;ombfWtnR{iL|sG| z&B4BQp+!h;Ki*WVOEKG(^LXu-=Du}k@T|+F>yt?sO7XftW<*gou#AFzO?X?v~u`OU#$-hU-Bn3aq({% z_s7ehxnXecQ>ej`imq43BM+pJXI(-dsm^kwz81hNQ7fVicFkq+Vm@51^{~qs_N$@y zD5)CA#tVB=Ci<@~E3~g2+UY!ERY6FhI5n>#YF{SKg(33H;Wz!JI=@Ko?vH`f;kE_D z<1%wGM~tH*e>}~0@Y#uM|DY}WSk6EVVc&b_ zFJ8;g6-Q}+#ERnv2)jPk-kD~0Q&F1e+#>omq*zRj+_+?QikF<8LkrXQbA?_=&Q3`J zCdKGo0|Fc~b2G|9TT9DwW`Wy)Lt4OSLm(wrn-q5!KiKxdM}vgYP8YQ#X@JdoB_>$7 z$M&$JRRGeQRnBol5(fs{OirII@H14%=2_E`Ih9M+TV)sbn%das*Gy*8Q#xVnk-B{B z8L$m;l}05&0S=; zj{a!$&b+XCAN_q^#BGq6dEV66o2{x|a27vSfYYS&#>Q4GVNwsY`;lxi%vsU^*oVX8 zFyhh)BLA@!A-AaO5#O~IwpSBYpJY}^LF*cxt@EBD9c39RH5-bmb5yH9)eRk`MOS>T zig!+z$y_S+Gtfa_#(jC|%&FSw!8@{Q17Nymp2wI8CWEh96U9lw+UFs<~q0ec`V1rl# zfQW08y|zpO0MnRd7-C-q40XV%4`_L``!9Ve0EyXq6hVnHQCJh_g)SMHOs;(25mY%` z)NWB)-Ush;~O4c5GL@4{ZX$ZSTtcT7xTcI?4RDx8ARAWs$O- z5cgznU_vIn0lKs5dnPJ9Fs~EI;RX-ZyX!Ro%ycy-cx(@-T;YP-8nP5n6Z2?xyW|AJ zTJ)uQBLz+=C^nZ34)w}}QyHUoRg^{x2KOmE<3+1^3^bL6PB8;e5i5@CsvI|9BG~;` zUyrIBrna5Kx5g$$<jqGgrT>35Fp_=vm9ZA=^-#aK=nyqiCE-C;c=JCX?({7*cU*DB=zVtZG6Z z^A^!Saj|ai8w-yp-_cliR@qdbP(%%5=KRcrFEyO}9KwDPvd{i6wnAP1DevY?+3I6j zwgz-IAdrwgWu+{I!YTI>Zgf6i+8X1-!&gml&G{`4%&mhF8J*NxRed?4;pCQlQm0Y0 z8Qex4(WT`#)PIG;HDA-dvoPPsw+4oe01Wf}3oSfyg=MhFE2^TvQ8r)ZzR~_Y2_?NS zX0L+{VZ+WK7%lvz`*A$ABH#_tzWqafA<0l&w}PDoNC*OjiAEtOWykqoebJlQ&^=ai zi}c?;rUs2Y2;yL_Vpk4PQO%E^$V-{_E`ExXY_kACMu!0K;i{69gA_YG!=L zd^%u>R+#N*yK<2f!>+`(yrK>f+8pmDsTYACkI+YGUocoR|H68PV;*IYU z!2doK>QqYxDRjVe$*j=pZI{XenLO4KR8iAD$zuH&bZL6CS89%})VEpdikpOsQWtIRI0VZDGanb%{W%86}n>HZxAq;5GG%~8V zRU$nD{M?z?$^S?!jJWY9;c|a<^lFFge;dzfOu+l6YSJO}6HxQ+{2fXLa{~OhW~wIi z%(Iz5aN@WmZ2m`JM>4=tTO~|Zsn9t&uGI@qFaC8JeH@eu08`Iw+sbv)GuI2Iv-J*J zCPIABxZJbMzw<%C(hD`-rlh0}=%)W%I{4aqa;XH@9!3U4C8jr!joel65>v+o-wflv z!>FJ|ur&b?B4hud)&VsF`LWh9?cPDT;0sxF`WuGO$(2U|z4U*+c7V*!ede|ElAWI@rE8^NZ&3(M=GCM6xH1l5BdDfC}9#(yL*?|ykNUJJmGM6)`~FF&@>}fE-@^~FA1b837#X!KJ z_*mb{B1KJn$)7mqSJ(0HW~qerDJ0a$>$|x%yu^o0RlT8fznkq(A==sxbL|^d2)7KC z#v_iW>X9G#lq5H>d!K;QZ;{K7bFI1kAkCSYf7s zLqU)$wsOyJUfhrygr0D$)?&8|;wpX3ZR9~zWt?Hu^cU07@P=B32`PlvuCRoT^0&T1 zi}LPhj;{n!u_D;X)Ml*=VRU?TH!4v9_oUv%Z$eFRH9zb+uG8}e$Pw+k!PBL%g4+B@ z9o_FXM%R*pf%MN9aQEHuQ{;TWfY7=kyaDuBBzctG(N#uqm#d2xINv{Jo4D9I>b>=I{BTs6g zy{iM_t2^h(FGqn8F_4aLO&YBJl_bLYT|ZA4Wi{bd!-waMDDW1Qt3aurHR&1Pt1$XL zMp11Q#1-A?tt78vMuGOAu(rp^M5Gw4dzl_kfdk%?q~DEn^s6Hkq>1{%7eYhz-sei) zb)4-u|6st`@Sad3Mxl*_>yYA{*LJV4e>^KI(~q7S7T4BRL$phT4*$hdy{}Zf)P13A zAbAWc>jcKpblp$Wj(Ko8KYf#om#>RltEUU(SP%M3M?)V!ek`W%E&Dta<4b_0YI>Yq zSTa&mcCpPF53A>Jfk{Ns#AJ>t$JE;ofn*1?2k|`e0a+x2bg7&X5bfJS|Lts{>stR# z&4+-N7b&N=8A`I|7H#mDjtSAjci~@FTUGM7Jd|z6N002h4kEAQ_vj^stw$xk2cuqHUMN-E&Bak=S1=)P_a#SqXf zbRKtdfKh!NtJD{v2|AHZSW^I_uy3%;abHh@O+6uFHXNZeiESd1eWdFhMP_L>3zkV< zJ_FR-mES8SX`ziU-h0L@2t=u3C z4Epn-?*VTi;+bztn|9nFO)sxv2*$1%n1f-SSr6b`1;Ysm82*VAv# z%J=U?+PAQ|7`KC9-60XS3|xR@=mthrNiX(#y_)dmhh&j$1`K%3@f$gUiYa(DX9AMh zrq%Ki2X)L5Zsodj?0~(T-Mf#ofh0{)A>iT%eUdtWG1K>vjzh%oNFW^LrXfniuAGn) z5X1Rs>ds9BSaDFQ^i|-gEu%M7W>Ve*Tjght6oPbAA+=Q5lEvSCL|Gba>`%riJxnzx zDZrTkY>h?JCO?Q?Ec!!)4fE6jo2dEhM^;s1E{%3gk8$?h*Vx`v5AiLhw7^{zlcN#Z zy-)2q!~21iK`m(J=7s%GgaW+;d-7X!<#t^m%VL5QkBbINAT~D?ujYS;GOS{uulT3+ zl=Q^ONs1hPv;EO#fNp0S)K>*r(%H7>KJBh)aAA}4smGHk9Qm23QI{@3aR0K`^tTkV z{{?DP&r}zy5&)XxYYl%|r!jK~2zI@GGqZZ&|Ig=nzjzr|#jx^#0q8Lr5a;3m5jhUC zMKu0cyZ`n^`$CPDTaNXL-TyPf6!%ZUR5);fRtM>Hg>gAf&ui^nMB~NyJ%UQmaAJ9e z2|E1zKCdW9K@9V+=Pq{B9|vFpKzphHu_*#M8y*4eK4RE!8;u0Nf%Wq0%BSm2uIMR1 zmi6u`$*Ou`GmrG5W3CAYP*g?d{r?Q*Z+?+s7RyR4xDNaZ*GKD*`+EcYpw@i;_JwhS z&3YpSe#53qu3onW**0L;I6s6!VIHWbYdYPQnkH47#$9?{vv{rjyUuylfbr7P9G}Lc zNg3UA-{c2qg3}Wc5c3_r5LHM;&qiI^Uj`O1fBYd3g1fAy|w9HKDS^Oo@`A=!sUlPdw$CRG$W6VDX z_pcnx?S191kK})l>4DUFX3%2VaDr?AVix>8Nu43S{>CzyDR2Ek;!w8eAw_BQ-CjCv z+Cuj}=k!0N(vYHZ)bR%%jDtbo!pGaW>!d7-Rj4`sA|oW=y}?1@f7kC&>L37sb>fMG zq0@kknTQlK4BR(y;a9GatFc6o30?H>g3M_bb-q`y70O1xu=A$x_h7w)A4_;eGtJHa zDzE4-MCTu5!SA-3na!Vbug2mrHcdi-U4RHyPv0P zP30vr3n{7pAgPwTeB}*Ka*i0xx_|2^;O1HH{Xx$RZoC<|=q?96e`&RwjRc#Sa#-hk!_iYkiD!RF{i64bxDQ^)kEF#{-=KkiozP!dg@Eca zGpi6H`v7&f!9P)u=0EyE_n8R@_>=JSHyQ80LTBI9>VK^(fJW??ab2m0Og{TDnV&YC z0Au{$lLrIA`Wm2Jm>FyQZ>H2+2OI2n`)1Gk>BTD#fID-~U})EF zehAJP?s@b8&E!SpQ<3wSB!A0G*>@=j&1k?&?(i3hl6dbymfz4+z<*0lEw6snjWHK) z0Xn^aOoh3-4;9XUy#c%B4N6MSWC)|TV7A9TO@th7*zktobbedD1O>M!mdu3(?*X?( zv4YQ#i&+dUnBC{M{qp->KFD#w!$?-p)@^gvM?7@50(ilH5_*EB5*nbaR9M_akFT=w zD$}L~<9*!^1UJasAV?S? zG0rHdUCypzVyaZc<(eaF1Fcf+1C^;tgjP@Hs;2`<4JEaA)hSb50&gn#)!&0y;VgTg z93fjLv@9pvjiZn4Q5aZqy|-UZ{vbiFmq+8y5iGIT zIG0s+V94j=3Hz&2MK_~UWzZ{7L1)Uw0rH^n3my|=B%Hk2%F5-Z8O-yP5y)RT=w85Y zX~>(h15#A~?t%!i$7g2dHp7fMAdHIk@cW>F;iwWP^hb&v4hB!W{H)zK#_4HSKXGf` zjSfrZ#1Ioulg6Wgvyz%(QqfJo0#_*NxEuoVaf3qA1(r8Zx-k%l%T*{hm{_w%GK1II z04JV9UxlITYX08}Ljl%M^}s|v9?ee!twL62ff`KcTuV`^TASpJ2berJBFwktjP^&HMryD10di1o2ZOwz) zA0>OOkn=1%V92BxaIQRaZQcyGu^-kRC^p(379BwX6}`3es!^q}dZXlRF z5YhtqiwDbe;%7lViqW7Pcmb$AI9EW0&c1cbCBORYV3isPvogZpHr;OouhR-x4jIhR zkWm~&Jupghn6vJ*hW(9Op?|O1T)1;D_vhL=%W3;nqSZGq_?KJvI7yHb+ngrGLE(Rf#!O| zy4siaXzi_t*toZheqd4*y$9G-0WVll@PV$O$wd|h(R}_-g;p0GaRK9V%&QIODXdx2 z;qMP&J}4o%?M9`Bx%EmjGcgZc+t=48k^L$F(S?7f?r%_|Av&DkiVNT{*f|-|H}c1#k!VOMY9RfoQptDt79CBLz*{jXf5BT)-@#jDDQ^!~(H!P5_VYL(m6>1jT;EtaSl zNHApks(Iy!M4-E=TwBz>Dk^_uZu0&?uq5)@#8yE5x%pVqs(pFo8286bQKc!pY%BWS@qrC$!g33oktkb@DmZ7XEx zSk|8e+!qx&DjS@r?^>cYu6F@tJ%w8ciBNIB)Yhc_4N4TJJ|Q|XARzfrAbR9nA> z2_)%fSS6s7P)XINOXYCqk3w7>SHq2*__pRfpxg-7+RYn!VpWRvN6*9;QKvn8-!ztLG-GO-*cy@J)y3cXE z+nE+UN-~Z?El9B;gt)-rnrF_K!~Nc{@PoFqb{RuOXhAl8)aap<%<*Zc&(>cKnH~U> znW+vsLDr7f;4~6qkAdjz=97Veexq|-@GnZ3pc9o`7{wTJCA7FVKB~7y;5rPB1Sz=Va z{TeLkA{4M5g*VX7|}xe zg3<$ZP+y*|^_jo-?lW?r95bgA0u}k=5%|H2mEHk+KHRQS)N2XCUTU!iK9^|MqiOn_ zlA+0qUsSCA$MzIjge~@2Yhq71Maw_EzoT}caoA9PNm+c7ne(D@Mz3YgL;*|OK$zXb zcS^en$=Lv%gQ@^#ycJ_k7mr;NLFp^P>RSOQj}L!L^I(&YRN_$V7>iZAs+`U+^<&o# zW`^KkJVX{3H#ZjWbXP1?7)-6O^1GjD-TaG1IZPO^v!*QVH-P> zooGO64(rXl07`t_rIY7c+{Qk&z0;o57?5Wz!IT_h)J)9Va2iH6Waxak4c}%2+tm2yE@kJC3tME->E^-lf=RqK8{m+oGAg2Pt*9me!tNHxqHkiLR<--~>*)HT z74>-tDrk~mk?$oA=C++3bbt3z2LZf4wD~wDgW3Wl+U}rb$L9RYJO#+MqgsH62iMm_ z+wv6L(m<5~q<+I!{?x=mktlzDF%V%#L!_=W=9|N*N~-1Sfc`e#yXCrhC2+04#2=)M zrvls17);LdC$8W#d4&_W1?2FJNPelLOw$lH0{XmWktXFl(hyrdgEGi1v|)lhtKlZ# zvVUg~h$&}4p0p0Ksa8QA<);v+SX@o}6@2dK&Rtf`gkIAQyJ4jbIQ~f_3v{v%AwjK4S^E$gi!bxK{^c#Sx#pi zt7ndba+`3^7iMSZb<7{P55UcuBPZH0C>T_@a|e17e${!%8`E~Fqt%(TiMEXH`}?9J zn_DclKr(DlDlkBb2VZl{{_s)y1#f1vq+M&*++p9{mxo&npkkM~P2lu_K@&(g_YtL_k1# ziAsqmMQZ3#0)!q~2qEpY%oN5VhlOiD zEunRXVu)j2qoPrqD@EQry6=hx-NTr9oKbTjeqM$ngEvjDQGx@mF>av2s)}EEGFyog zjjJp<qH0ZDUT8*7m%|VFlnOpwo7*xZCZd2fG|)X*~nj?iMF7 znT^4un>g%dBxX0p686GRm1eEA@XG`pMZgNCM%3u^Qgb~Y&4^DNDh^6E10>wDf>(8P zJ$#{|u~#2%vZv_zROcMg)^fJUu>vt}z@&G)vF8Jl{sYj;>}7+!VonG4a@MbEjAG22 znzya!I-jZ4#%|OdD-Ui}^qG^B{eI(vh;h-Xj-BYT`Pkp6h-R8f4;7Gdo@&0u`w z7XRXk>0`(EmE(u1a(AT{I7q%82>DL=x+>y-0>t-F$FIDv+a}=O%_e=|5PEiUyP_-1IxcH=sJa^)6WUb?qncHU5mSohWd0R+HO)Xr*$` znP=lY0QCQ+1m@O;=gSR2pv!$NwE(OOvAaX`ks$t%`jNzfc(|pcr|$zG^G9|V0>}4R z8;ln3w;oayj4jx2##JWA?LxF*aTnY3GJcRuB1*rwiyx!pC4T%{f1xgjZVq|mO`V6nijx!!yW`8EDqZ@xdV)N?iA<_j>Ft~`CY z`}X1l3+C(syu10{hQR!qLP&I3=Z1giPe2dj^DdBW0iIm{&n}n$n-G<`~yRlKD>zJLEFxfS1zE!@$bric{wcy8n|W_bB98~0Rqq>QHH!Wws>9-x_i~s*V|CYf3 z)ZYKA@AE(0O3S{PC8pURUWq$Z`MA?O(0YM}N;$F^F9l4C+f18p3CryP%7W#`g1w5% z3tA}dz~b$M5En%XlO<0{gw1Juiq%v|jH*}Q?Fv-J>?uS^dR%=q_lVAa*?4QuWY$4j za|!J1*XE}|#N>@94HcwUX?v{M<9#9bYRvakSP*2#J7!W8%rUsrxUU`0w_bXT$k^OlT7LJpX3T*&q2l@Su~Vr_eCP z0Px${Y-E>n2uT(%jhHxDOr4W(>N>}VS9QeI576>Jq)`c+gc|(b%hLn-l-Lf^R|X|$ zm2{CzdePjIeD;ubzgN&X!g(=>zTuoNbtCR_)E5!;+578QKKdxKK`rpD<5i`s@1V%- z0?(meOJ|wc`F-GC&)uG$2=4Q&(1#SkB_Mr(UtjMp0Ga7nA$%0Y6EMWq)xi)_oG;=bp@ z%e1iru^wU~2%d$(51<^_hFfMn<2-rSO!N$+M4p&Uep_RKU9$H6Nd=-xdyd&2z;1Pn z!3}*4yBJD&IUG&3XoT$X-vD&`zX9luBktU*b~Fl#iuP1#lqhYj(QfH`Ss7+N^xMn{ zC=UrD*<_97M*wK+0ruR-fYOgaF&14^#UNCSuW$5h)OHg5INhx~P@!$#Tw0bVVweOO z@M6gSxsUk$sG!Gw2{U$|QNy3r*WZlie3j0uof9NmeF3wTQz-R>;XaW`5Wp4$dmqHTd$Sg2 zD7ZeyHm`VZWMjJjOrVAYH5eS@H-mFR@EXOoeY~i-y!xb*9Y_*Evq;`xe@FQpLC42+ zbmuxX5un%HhdH4dq%yX){yC|~sWH$1@0Q72=`&S#`D5=fh&@}2c=P>kiLZ!1MfA;V zDHQC#ZK&UBmDq|~IC23$HR;Je{g1 z#45ns^F_>*odc8<3`Awd9KOFntT)(t%eM^?w6)&Y?KpoK5fJ;Q#@DJ)%e@m@N77%8 z@LNZ_*^KzS-8O+I1;3)Hr=}G+L|+?$Xo-hb5*!_M#_z4Z5Zyrh+|k2YPpL(pK;j@w zc@c&91Vus$OuO#bN(E%s;?#Uydoy}o9HPaL8CMDEK0>o0Wm8!L^W6&T`4KtkAzp@+ zDX)lE`GJW(J}f!d+Sz5UfDa#6f)NT1(QoXBa1EQXrIC+w|KXP^Zsf>Rl~ zH+!+%3mt0<7lz43C|350bxgW`creJUFdn&hGZfbH>U1dE^ zLngP?6VHErwD0817Wo<0-Xk2;-3r7&4x>(=ZO=4m{{2YwG{Jf5+>^DaYi{1G z<}fEljpE_DK7(+>b=}@R-pbeet+{0YPsH`c{X_kGmdhGeQNh;e2r+c|;Uh;_vCP}n z*jL#xy>3j$&e3UWYQLTB`KRh>GPWUj>dcE0kV0Q3y9KkwD~lp#Ad_ z3tc(gda%~@8d-nJiKUF@*L`VXlS zArF^XYDBY|vaPN;nR~%*hG2I^Xezt&l~XA!<%@?X+#$q<&jhX!5-T4fBPpVnYwW z_=)|j+&`i1RG{18Y1Dv2G~4lsK2NK@YXpjqFZY3Q{1lvTi=iXQySbwo?1+hXoLq&2 zl%%9r2xgtP!g~gvtM#tan2YyOxwL{$lg+XY+K@l@VpcqW6VY z#Jhn<>Iz{rT|iWy6Qb2@&l%0IQ0=Z4)j$r2umJ<0z20uA2u;x9txOF>YRP;SdJWtN zC5bELizK@}?sHuvR{1B*J}j+a)cEEmos1IjckBMW)_aLJp_#gc)4csVr4a!(DF!C; z*?YvLB~odfNW2*h2(DL3$oj@99OJsSyc^`JL7Z#lUQ>GlHR!Yc#ZT=ZuFTs&wAwQe z{1*kZaGEi|=9JB=GA<)2xDTQs?Ymqt=3}&3|@2%eGW^5*U&h2KrR{FVxah zI}I$TL6sP9LMEHBZ3qc8VrSv0k{Y{{=01D(w z*$j!AGs|WMJEU{F9g=4?vYam&+0;r!;a#D5iB}^_I<*!hg$YzfBleIaezTB(UuwQBudAeu9%g-DfNib?_-tE}PUbxr1Pj|2fM}Qh zOoA>TdqbTX^@=xGLPKj7-`{Z`H0Z;BkcLa=?9O1od;y^3VF@=UwUlt=7# z3Agm(>6<`MHmfw`GhGjUBN$Vi%N=e(U~T7%D9GXebSR8{A8{jy>`17J?P@rkFM#X* z0((zOe1rwKz`mCH$R61_1&SNMpO9K^yly$WcU+0{WEdJr*oPT7=C8zq zxu7qwxUC^k0SyFQ#+H(q$*IgwaXvj{EtX2GC-ZB#iv3l#0Ad8Q_Kzm#o=&9V0EeM+ z$RcGRmNFL51PKN*J|4vCz@WGLREbbXgj_y6&TJPLhDX?@iQ0|~JO$(9UV8kR!_u$u zYl(dS4W=HC{&z67YFMb+zk;c)+W$X?sbLA|o(Dz8f}92r&rRTWV9uN>mc5#%UUO-w z`;0Q@O4NXrJhPlMEXYPA0*=F4~bU!rJ!_C~%H9`F%bA__RvZ4I`#E^Dfn2Y!9L%$;i zx!1QGy*rO+3TB^2)8^Sj#=e0iDzjfju(#st5i)i?I68|{*R86v{%Oz4g|HX%ZSqWT zuuoGoy$^hS2|!gJI+jL=KyzpV@PH1f(Odl!MMN~VbDu+-&-?)rZ%f$0SbJ(8ms1a3 zYx8;D2-3P#53GrP6yHJhE%&j-8YK!YM4#-qyXieWAGMKi7vy#E-Cu;mzXYg&1Nmvv z2REr|9(HAXWnM0m^$~c@18V1YY73^-{0pZ*KvWRd%J1wA|Ia~CP(yqVf_P+xF@YjXV z>eG7{A`t(}L-`Z7IkLQ41TJ?fl8Un*B1!t!|3DFkF2GCOUHfViL53abi?%;|=2Pq{q-o-aJCLYyWw5ehlX3xFff7f05bm!!Ki^QYwyLAUCj}Cfv zuwuQ+(v6)Y6$UAJf(k0jW2cGc<}*aoS45z_m&G|4^HGC5=j{~S4~w{klugm<4n ztKL98J$&+zN0U7K6!~T1=Reyhn-1^)qoK0ky96I2Y4ArZ3lcMJYtg>QTdRConDO2l z7$(1)_}_eCvn#j|IVd=`q>YOY^7yTkwXB>*PVB*t2Z9`R+|3nW7O?w79T0?~pRD}#U%qQ7O#=k;t+nlYEt0+R#`&kX4tT+5!y_XN?Mr@&+mtfzP&Gl+eKve( z$d$hM>4A9z^X*e20n}=~xYgfZm2cy|;B{T-s(-uIJlM1eQf2G)UH9gl?elNp+<#1y zxc4ptpJmMa_AM}^jX6d%??oTulAfy#A@c*KNu(|^jDHR2Kfin9IJ}hS^_6@!-}1_V zGtzIU`~37z%i2Ekx%K1KyO5Bi8OM_dQZsKO=|xwL%s>70fCnS5(+7UK#q;Lqxlpq$ zryqcwQ17bK%jDPeogtjwEWgI;Oykq{_s;NK=uO%{2)gHTqwS86S7_S#!)UgWP_zR2 zxRLbID@*5pvFjiA%ZsfrgSfAMdKdSreZi=X)94ynf3RdG@qpRKJW8Wu3Wwg#!zMsV zMeGkZz#@>Wp0_HGR8G(~7nWQl*BHAF}3YlV~K1SpG&0uQW9po53wNHj>YU`6Gbti(rUD6V~SUZWNx6( zjH(g@X6~#EqVIKJ(uh5d1mi6^IXT$;beN8rq;xL;YsZ9^Jln!AYhCjYyxn%QUFb(9 zdOnaZOm{xpqO?ncMwhO9{WVoH!?eV*A>sZ6Bz9KRD6%CSiUtcc^Gs~|&OvZd={kwE zqU#aN+O6AD)}fFsI+20n;O07_efu3Po7da+p*Z8!&O;eEY7z$TSUYznpyj8hX@~9x zEpWRmK6vr*_;g5cWtyU7sDJ)6IT`D{#|#D9kGT%-v8lU9!qQDh5ZLqKfLUFI7Z6?? z1d_2HI?OLdcsziWZ6m&lZFa-wt#af^>8cJ75P$R*;iIR&SRqBVnRx71~tVDUC<3F#)0twtPc z3C8WbeM@|!H>JyMl4#~TSV3=h=1#wlzk%BI=Q?kp6}7x8L<3SY^7Gs5eVr=TUe_`| z6h<>v^JRBvgDF+;Jqp&_J3E8RS$G;!YD_c_SK-vo_TA2GO!or2eWt9bhewk!;Z2#8 zSO2x~Is?`=HpmRA1P)FDBZ^ZZubt>4;ntfe554u!$XKJ${VRz3H={JDQ4^n8Zi;ip z!6E_8oC52N3R3HaQeglRmB5#Zekd(1!vrC@t5(W4Ih%zdh(m9y)~q5#=ylC(hUEka-pX3bW* z`SM5EW!4lgc^^Z2uomTxy8B>FqSV_cN2c{iX59^$YoEUWMXDZ~KLdlokk|m^q0u{P;o9XVKwTbq5x5>Gf{qmClN{c(bn@tuU zjC--7$;^EUNjRU;-x|*;Ta7#iYmg_qGrzqFW-A||B55R%-MBmO_zSNK2+8}UQpP9o0-&hW)%X5A0Opd9C@gU zS6D^U_UM6&Lqf&l(O7(%q6wc5L-HJ|f4bsvU0?8_yJ-!-GhU{pREeghGQ+>Mtz{@e zO9CF=-=OhP)JwW8xs9yh&go)0weC)pFZ3m-(*pVo_*DoDV=!tJSb8rdz!A$@TWhI7 zDP$#iq?7MpOax0dQ-tpddw8EU$g`cHe@#uFxL;>8{^)sqfpb`at4wXU%yvxiXwtAH zgtt14hXn=hU`*S(GBkX`9%!(hz2q=%d5mn@4=!gvJOyC?_4AH#l7O6xCnsOPsSx4qtE~1&|g=EBVqG4HL!)-yhUCM1*qOWiZ{gT&p z{m@7@@g1Z9?UO+|3Ct%`J?$v7iTlH_Ck~XwxF5GGVM%3DU5m;gB3yX1Juf&@)OVe9 z$*i}rXT2oWT@pEQQsX z`&IjwI)U-k{@W31HWmwPyr7{@naO4jcPr{b1HLMoXo24)quA zAKZLZoM{FK#9DZ{9tcu}AU%G>kymoY{AJ-Mqm(xcu*5xBvFw z=jWECJXWXYErYQ4<=K=3a=Ha82jm#`|LwZ|b%pn@3&n%cgRj3fa?%Y?%1JZy%O74Y z=M~R)%`Z&mS3DzpnrKzzufAnjCp~Wc)%; z#LCs19y~CA=|JjzUBMjJl`Fw<`hP65ue3=&9CC&KT%T<~`5y`%O}N6^?cP?Ua;=<{#(Fw@I3k?hv*>y@pKR z%=2~s%i~?B9Oj+_&v+XsoFD#hqy4pdeFG%!@(Ta(q(=aW7kf>L&~^W(SipY}fJnn^ zyM+M?Xw>9UfAP~#m{;EO|4BjQqB5t=fsyj$hr#-W?vR7a-T^P^4OQ1qe?CTltjoyD z?{9#L1uPJf*IClM58>(X`cI3+zg7hoa7)~m^IxVIcMj?qStiG=gFdX?@D84|qw}6A zd;b*wBRGlQGuHbTlM+jg*DnNOz*+A9boN}E_^!h+{@mMi{=WB(KlcQ_TT`>%>Y%3b zoZcm3GW|L6tU-VP@@MXNk!C|m8-MS}*k@7W&5+FNs-pGEKAKSmmwvY^_jO`a@L8~n zfwD*v;3EldF;U^L}v1~wZ+^U8|v5gh9%21iN4xLfHPp(@+v~+Yy8B-d*@T+ zy5RGcG5m_ICyHl=2IlaFFFAhT0e@g(+@IEqgN?P>tG$;JA!?59?L!8l{l}+O6Ab}% zWV|*cL-KRYXgw$B1C7aMKn6Nr9WAq+NP%Ko4@0z3|FqgzV{XP|H)o08&l^w=!n6Xb zX$ID#XvGJh-H-*>=yg7GQk$T2f~bjw26ou&xiSg4aQIt4iyncCZSm#0M0t<)o(Oz! zkf`EL&0tUD;c^CpMIej5 zXllGt?>NaKrCO&H_qTu0dAqn2ZHA zXDVv4dGsZTN-(`Y%yBx2)a*5}URlk#s$}h$LcFkocTVfoq8Q8Bm#O$)v}Xb%4do{$ zwYQVnZPOoWi4@Z|(A>a1DTt#=Qk)>Cve#jXr{7=35}gPoqz{&-9+bneBH=5*7@Oa~#MK;>>x@7+Ld}!I8gs9Gz;G}xFfF%Dd2V``kIWo; z2!=qzlUr^9h!7ml+vZhDOHO%rNdLhhXm8(n_2znYxQ6-|jvSOf^2B+#EbvqoP|7OD zyoA?D0Eh4m<+F?_2JOO}YEPY-a=5?LkOms8bwy(Zm{)sU&bvUKhX(kr1E1w?&ya+4 z5I~|WM2CnQ{uWTWMX(Bo>t&&FA&5X`>8zzMc#NGgHw$JEH6hOu&|311YKE zEuk6c%gpDegX0->6CYkM11B&g(cBeOG!j~t>4LSXvBdlGukFUTF$X6DB7JZTwwC}T zt6Zo;B^KL`m)c6;5QeV2!Og4vmngZcV8-V*WIk}@f*l#mX7fT+XnWE5&5gl(RgY;5dtdaM&sseej@|yr7_Pj&TU$< zoVS)1a)A|Cz#36A`dV|C(r9B*>aP`XU-TJ0hRPTOb zYDV$XCB<**Br*y;5vyuC*|NxW^m;e}skZvd)>`yV)oGrrdBrT4&K?0tb2`WHiRoJL zOUCw8^dxPlFU<5_WMun!2l^(951+qIfCqwiF;>_D#)@3x1-@C6BC8FZV3~Y=$b0;q zR~nnO1X(ygifuK%l`!s*S29xS7Z#Zu+H-e0;^ zdq(rR?}Zv{S&y2dd&oHTXw|gj)1P%9!oko(OVKLQd89k)i3&ITfiS^GxLR2}JOQ z1TB=`#|u3v@`+TL%+DYzPU~G!wwmnaN4ZuT6Pg-WHoKO-8D!9>^@1zWocx{o7d)C< z9g@2&>DvyGo^A;KX#J?>)0mg&y1ODy-o>;rRVS!rE2p3;li1cjQNNkIj|y&^qU#K;Yo zv$2>q{rwc66asYL;l=M`+=z-mUA+bTXaYnYJ5~$ZYR?Qt+4kOe=O%S}e`|7`uG5$2 zX0;h5fJmy}J-%dl8UzX#x~(>|qJmTB_Ui^0^u#b6v3eY5pU2uK03`LjrZ7-UE8dTd zwg^3`u8!`-ano00oh4yTKT7ap^io(#AdPGkTE-^N;mCeYe+P{xeY^#1PD(z0pDU-E zJ*ZT(u`}`Q8#cwH2>&WVmITSFsiJ1>+142Yb56-7S(k{u6YUa#MYBVN&Z=&MPnHyj zheWFB5XNLO52V%da;_quKvbP|rCAEsUlUTC!S!5DPZsSe7?TE7Y#!c3stin7D}ZvRbO{Z#92-9IZm?CxQXtL#^OsHW z3RkDP*}fm{(f)8 z3chVA!%`&^m`Q`RjxL+edo~ulEPTnPEcgC8F2ozlNR{nL5@esj_^j+jQ0j>aX^gxM zXY799nCenvaqqdV0^AiB7J#WPyw<*q08ub%p}VoD_}KB$&Z_WkImdxQjA@8!p{~23 z7+NLiv?Fl|Z&mQ)gCPc*IDQVZ1Hb6&0G~5nUoXt;xJ#Q_LheFv>Ya zlTR)Ohun8K*is5QaY~8wDEwjfyoXQ?+TJ&s;1`P1~dZoTDyvv6ZYEw5p{Vm0L zq*)PB^j`ng=z-oQcI-Ahld zIh62QiD7KZ6U{|Q>mwwa<%Ft-qZK3}_js=JSW7Zd7Z5@8b~(Mgi-&BcuePTaIdCZV zYTjfxt0?Y8kHXIQlgCf}(ace4jNKWf{5VF);#`c07dn1e_jH8H@+ggrq}&cCn$QOm zmoe#Kv+c)L9%o;tS}D(-$Hdndp}RUp^NqSYy*v7>fUV{BkbBOfx+t9E2PCE zO`1JLos%ACN5qtYo!;+$jHF<6b!Jz6rB`d(@JMZ;xajgrgVv{4-i&I|DJ=cUPF|lf zm{Zj7F||*2aij8`!Qn|C0A$ME-9c^8I~}G%8M>K0EpX~UM?UO1G7lxsVN=ky4(+Tc zkz}8{GX& z!p$KO*_Zn|5|RnmZn^k&1_@6MOO|LNdjp>SFy8k^K9sn1MHW^1&I|`QpMO%j@x;61 zWq#Yy?FsAM2hC&>oL5I(D5gE3*Ni}YmWD!ZMfsC;TH4mOiP`B59@kDDs@izCm@`&H z-&1&}!N)PLQ6v-kQoYXQ4gAF}CS`cXl<7O(0x6NTR@!8bL`AaTP?uMgCOM;~Dgg39 zD8Uvfx*odQ z_b3~05l}NBAM+l&@%IFoeDO!ci9dV^k32cIi1?MvC& zXz0P|@~@=};gEuChQ&0mallo-?He{D+8C2L7go|EmtBVvvpObbu(Q-V3L4&~ieuqv zA8$}8BEAFU~e&2RFF#(Ps?bFO>kZxWlV&G_F}O* z1%Bc7(*iz`2d6hKZfQ~A%?dmJd+^u+WJX-P@iRQi_+l6VLM!cax@wUIO%);0;hCI@ z9NJ%A=y`t6=g=uDhsdDQ(R#~`O~Sr*7LpL&6Gq=WCO(LvDH0f7sojmnpQHy;r~6%D zr-^jcJ9k}U{5B|5AWtww1urXM^$$D8g>~OE^BsSX$<~bO_Qb+!kXuk!A>2%-)~g)~>;vij8d zZkJ>4YHOgwoIYDdcUF@a4@tO4UyjmHbqh%xSB_zvCm7}qi(sRMhcP-C&s}^k&dojR z1X;ou9sPRR&x%Yhai|(-$`C<+7RnHXenCLp))P4m*H&9!Fe3W01kua-b>8i~Vdz;q znCmPM6`?ZO?KzbrbgKouE*C1jor?6kYs3!&q2sF0$)=Lp%fX5--2&Q`i^!WNksJkYa!y(V$p_7v5SwC73N z_lHa`o0i8E%9%BI*dg2dkt_zeC$6kC+CNZ`O(o1J#_7$X$J(slcuOiTvwbyI!vv5A zOCluH2cImm&uud&xKBT4^xP$KJmb^L0u?({mLHQ0eP6SYmrX9j;XQC{oA|oX0?Gm9 zt#&C*!p|1JmkW|zdMm~2_1N4U*KQwTXJ1HdnfCSzg6)^G(}wH#ZL7L#s&0;*8af@> z!A{P6>bz=sNSm;3qXnlc?`q4^cHOC>v5m0_al1ze#RuOPN~Jbch1MoS6P%ACNCQ2G z_zRL-R+^Ch{+!mUO$ZMd>2?)NO^{J+Q`V?%O@j8&h#-(tGf7fj6;KU4!ap>1ohXoj zl2vx8x*2Nhb!QD>z?o4^q+`GcB$h!dJ$ABX^o)w_B(#G!+e?;6>D_f)`BC?EXdzqo zicY5!A8BzO(Wnee3etb7w-AOc=^q_YXg@(M#$rIr`3&cX*i; z7USwWU7xQR98$R4+O4Cdf9qcKyClM(s$%ubs7l`?vT8E#dl$|iwe>Y=FWN8(J1mj0?^h%pi%D+E ziD7>|B48WMzHxBwE>DWrwTe*vDwAsQ6{oh@^f13I6$h04U$1Fi{+lzuYCdzNMD3I< z(TAKS6dN-W(`Nn_k^-VpNxT_y*Bw86ZX*ezAa%@L@~$>?opp(sde--MFb-pVSpp_u zDz_Sl~)K<(1>zxYncA?Gv!yd)p>^(6#z&E9g z7Jqp1fcel$Pl!c~QtNLhkWIHy3SWG$km@ZkRfIw>%h)TY;%e7f5`Hje2V*7xQV?un zgCh#1^}dWB%SeXhplhJLnPBV|OY3Op2o#`u^PbfgQt&P%#Hy^MKyf8xS4yq4&7AQR zteJ2XpGBO(dl+J(VZ+vlRB`EJQ?ZoPR2wBF_Ya>3nr@Dj+-aaGEIr~gr+~6`9yp#V zw`zl)yWAD}Hs?_n`x;Es_%Yz4oaO!4a>1=k?f47?j9qcfB}J>OXjHz<8O=%sI#q{T ziZ}aWA$DV2V*N+)SK1Ax$@`rUzv<9B8JkI!zTvpiuk^d(Ozrr4dgqld4UBuEHfYT4 z3YJVW(-v8!A|AX-NBBk={9mxVpJ;;AOE zGLdw$)-1ZD#o$-gM&Z&S0XjQmS}oRRZh|>y3eri-zOUPXu=A-eGhSTiL<6?*MeoMd zyn-6P0$_!uNF1}hvov(*)Q8o5-?!-OUyL!|*5tK6Kf{yPeJ84~HsVf$QjJS)Tc^tX zq3$>x$7e)u5^i!ujogLI6uDntkJSvGdZO9U+@z5->}_HoDV<^W;zl z6D-9K8i!KL;EzZ0{a%ohFTGlT9+sQ8fHTXM8aY-pn_ARA80)4Hs z(FM)i@?TuzgrO%Hm~O#1HEc`rjVlsAFE&uHh6aP}lqvSt%rGw5-N8im>u$K}ClXh}R`uRH4ZO2o8};Q*3(4AyjMKmi~40Of8WQ zv=9gE&8$1tKPRD*8KX`HC?7Mb&TPlpPhZ%AayY@8pvT{Swvgk}-Or+R z#?pTON*&B>Xa_i_mZ_%uwtc#qP>5D%fhy=#xyzl)jnsF{qZwUGS%%B^c+YRJZP)BL z?b%3UdyU-#`qDmM?-n`|IMP@D5S}fj2w5VqFh=+7<61nZ`04>|d`z!S-N@_ky1u_4 zwV%kDb!OQ&(rv_x>F>?8$o1hV+Z~3QQs~9`8}k##o{@r;;*QuB1E1mgT|&JXOMh&c z=Wq>S%Fq`GF)_q)2c?zrF+0M#Y0##Ay-I&-ArN4 z?(HoPNjge9x_xMAMEgQA@M9>sdCw1(yBl13e+F`URs2~l}C!|r^S z3H3og1+&to)vduUv4FO%Cn^{6a3&{?Wfg^SkRnlUbRILfn1DVPStlQo7PrFOKi zDm0mrbOXUm*G}KzH3(8mW}L9R944%^OGk;`)M_49(v!F`oh-YKfqw~u@EG>)$rxI> zcgOZ1Wf`K@%jAtm(E|`2ZRi$1P;wZXKQtLIMDX~Sf~twRBpu|f;1-@Jl|@x(-xGZQ z1ld#So*;*n=dIIIhhZ>;eoDOP0aioRG4?6lWIQk`Wpg`Slhp)rIDS?@J;Z*9zujny zx_voi^HAZn5DbS^m-+FkZDml=Sd3YoP4rm#ebI_1K68B-<41)$v<~}EFMf+Da;e!i z+#_!3B6&+u!$nNMG0E9AIZgw*6!Z9C~H+2zrJ=?OHj4%RvWW}RPW`w6^t)`ycQPD8(( z$Qa%@mUud=7C0{?K{L9phUhi_lezco-C89t*G504$lfl=>vl0=*>mPN=^rwZ<&Iwm zkG0wZ(@0++jKePOM4uxA$|MRsFel%W332MT!!wYG9d_GbL8I+~1kjf>i!em^L3-|$ zKH5YLJ;*SNaie>88LWK4p%jT#@&W!T5?u8Dk-75IQ)r}t(dWseDAl%E_r%c4^sdL{ z1AnPkr_4p8yLBz`d%bq9Rx;_N=3qfch?bUyDR+SG2bA^7q#yq$0p?d?C%RSvMfvL8X4Kbv;z8x&B9L? zSP0~ih2Te``@Cc3PQVU?p!5$^aD?RMAU1yY$$a6K$_jdQ3@B|#H?=tyWR4c25&95_ zaH(=a%qRIso*8J8=#Z#b6hf)8-a6{sPI*H)`|K~0QVYGg1D+49R~pkMS=@(E_1Z<- z0;1__-p1)B#u@VC#s}JLC%}KY?L|t8O(E>|Zj7Hhqi}Z2ZZNJ;qAeiZB(e^uKk3b9t zX2QadSFg`Pe_C?^G=?LaPN61_vKeptmT4hUpW%#$K~~Gx)GlfV^1DUvs=9KBMH?#1 zNnF1AVJYj`gCL+?y)u-w1c4suHaWHyE1FrUg0Q;XN1N-Z!P#dyiy#lszvt_6N)^T| z>lE(1`G?~&SDU8jbG6`!`&2xHl*osz3l0Oygbd=Uj_i}`lTYCWx-B!ql`S<(i8P{D zGP|_V^Vybs@9EK^v%HgHCz!iTp%x;V#pDpWc0rOw&A{i(L(_vrXHUea$iGZ|c|9&H zAv3NDv8&y%(|aR4pYPrHl(sHFI`fhUN(Fe^{OUuUAaUJSZekNLMfjn?P)FmJt z=(){polfkYt=#QRKi2QsdiAmq2{9kVQbvs>2^^PgrwdrTbGjp#&tW|u4$VBE5o1_M zuAXHcj2PNO`&^>@9M#NoM)0#GzA_uEoD7(3CckQb*<1#tHAN2`gUFW19yc!rcF>5I zg;SrX)V;iJ?~;1UL>cTU6#WXb|CMOPw!5NyscEJ9$kI4cP^L+BY!G$rHJGH@By=~P z(%2kkd~HSu+xYf?KO#g4UZ0u~L#)nlFc8kb%^Wx81l#uHMrAn8bcO(kt!y^bq&^0s zGOkltnSqHqxPdq}RlmF+W+t$OVCrmz)V|n!TxwdTE0eedcOPX&y*mrnMuEYE0!Ua( z#7mbsnVei11J2CLm)T&zOg^OTh88H7;wMNwV8ie*RjOz&P=HvPW?0SmB($hcYiZ^n zSfA;4j0pM6Q3ITP(VCsEjcEGn_ob{k{F%EW>O@9k)0b@$70=;R59wb}zI*~JLL)kB z8M{^$P@jJgGelH(v=ZKXoAiyv+ua8EGjJ*@Y>&}qx<_95%~xLFpK%YN@9Xoc>;XpG zMp55!Q?Rr;m_CRJG`);*w7j<9@B9nSthuQ$tkdOTGlLd1fXiE3? z8RajZ&tpI&0AOKxIcPk<*f{_QKYKyL7uRM<$)wz%Gg=dE3A0z2v;3@vRTG3%>5R1r zPar!*%C+4dd)_nRMt$ZXJU`0U_#xz}=FdF{01Gm+Kzitq1KwojKM5+_^57P0NOXVExR$V7kP6isYl6(dMFKwvzH>y5wjb4OnQk@p6r}7MZan zLzH-Jg2P0AREE4qbY+aE_|bruFZq?OT`R?I+$WXCe8gYaFz!C`c=-@PpXP2O=~&D@ zzNZ-z0q$nz1+mt_6R#eG8W^f$=`2tH;~8z+ zK#JwsUBnmbwVU$p(I$hS8DW+3<)X!kSmKfJlQeNe*8Deh^SX8VejB?-a|!GMQtvZC zPAKseh&u*_!aHXvxaQ@z#1oWQ$+*DhW%^a`h+x}+ElWq>9=Ad7;al-NHHrdvMa9GE z6NY4RdY+MEq10wd$>CCslINTdGvh}~${;v(d$;d!AeeBkpNPj|`8J68HrWM6ITrZX z6%XnwANKBj?iKG$PS2dXFkER+$}Snmnf=9S6r1rO&x@YO=e$1$j4=8>Q*JQEuDY73 zj^;Y97FJM;#muC*e~DF%HwqSkSV%#zDF!0^nHkorN%vIPO#xj_^|8^lDMkB8h2mnaO{UNps>yifo8fLRoIeR^x-5xcP)gO^9wf$jW~b!_ zKn!mp!tEM!(_tBcVu%mqVg|lGiG=RmscBnmGxE;(>~FQ5=%&ku&HP#tOTp1*nC(Q1 zC}D0+q@#CV06p^wlHyzHGjxjNPa_5}#!4lT)Qpm_fepY~g5|%^?-~TQ1eOJBZ0q(U z<>ZrE1f7#R0Eg)p@VGc0vufkInZfL{Lhb`$Q??YgmqVR-)7t|Qt6vGZYXz`)~~(&#sWFcczHzb$gR|_M!57@Fb!O zjqDiI057#hrt{uWqnE=?OT*v4-6DILSogFl1c^NUj#=d1*LQ|$dvqSTXsR>`TL3j< z-!LE`>*0QLWw$+HM>~WRE*oB4R!EL5+{RiizUt+e{OTVh@%nyEXc{PxdwMfOOgTHf zpLD-Uf0+&=OeT($XCYAP99C)K~`9~;fXeAIk3^_18`N(VENZ2>0rU?UEZ~gNX<-mPF1TFW;Qom`vgf&-oI@#slvytC4IvD+5n7mw-U+kPgh$>Usc==YC3Hd@9s z)kJ(pF4Eic@5x2xdcLNkzdMs_Gq*O_lE?jB9cS`Ew`(6goz`dpg2WU`{s|NRL9~0l z2hMIreWczplPPmsGese{-8Gp>Q*N%}=;k?eP116t#*eq>IAU?ZAt>IdhT*N~_Cy`v ze}w58bXG5WcjP6$>0HFno&|_R;eQf|%>GU!I-UOqk;uQTQ1-w#B9Q_!_$~0|`s5QZ z7iGLoc1;rXlI`N<(WB2$3PL|esw`nlkMcEihf%aojP#YI8xV1bUOg)5;x56TT-C<5JA;Jxx$-YrN2~;+@>D z*@=;N{5@j8pKCPF7^_;Uc&5Wdy!r>WCQ0obXO0x43y}UZxjM8YW zi?vlm_9TAuZU0q;DDjI7LXLrAq14jQ6zA82Q&+DR3A@$Z=sZGZXR+m4478<;&? z5&}+I#pehmz&-9OIl29`;2r;CE2D-A>ydPaPD%GNT)O>6-WDI}Ar%X+8Dq5!h_-RC z-N?H$WlHLHzo0{wRs3*cI9?g8pOl#p=%DDV=_?Y5CA_*U>?|1?3lX?`3m7v|ll&jg zk;etD3ak)w9y%LiW^Hz@LP*-C^YY3AMiyLBQ2pOXLC03QM78V(Qji8X?dj3w^A}*p|gcVfrjTJ;kW7!9efEYX~4WR|0RsW;~ksE*(G^BDML~eJ^%aA6BW`XY#!phROpZ4}~LqPqMSGx0F9obz6!&yn_lt})#O)jk|bPlyNo^i$7l z-s^M3Pr(c4Psud^nfeZQzNfziNk27TsyY#+T@-J!z}dyQIvUipCC>;!gHovX@#Ys0tN)>J%JQM0oM+!w*2($u8Hn- zHD2BCnlvBJc-3IoEBO zu_jikgB$1C(IDcqm9^F6Y^%bI!V!qzSSM=Rn(oEe!@WdA-B;PAukG3n+~?r3$yn93 zx9sw}A{|QvtL+m_H){AgP9MPuuZ=BxCYl4Cv?8CG6UWD=(B4dTX!+tX?+=Jc+uZ_+hf^C6AY z?X(yoKA&nCSS=|x!sCZ>HeMWGFt%?%Ba%zX_V^gBtl+}8OanR{afI7WWh>AX_OsqP z96&76IvP~!7<>H)n!U-8{GmFB8k%#n&fU%Or1gnVo7ZSY%P)spa%3)jV5o$vJGC+4 z)>bJ2Vq4dX>b?wDa>6BU3)LzrQG4JOh_Yzds)M_ehO5u;UmjF@@2=p}`(DxDq4C0D zMCaeDI&{DQU95*#n2I4J?6I66ZmEabNEU8XBSu%}JMaAnW|qx4RLoHUF^`rKO6lSm zLKPPWhLKeSaqDE8#cT|ljmv^_sBzc?V^M5-xPNeI%2;k2Y9gGu;Le9DUQtzg4%<{W zd=Nbp`}EK%{rF)K@7p~*NeBIQ*w!%uhxV^}hbHGV?2s|5WR;OlxtG9aQxhU1W*n#% z`tu%Un93jGpw(Z9gQ}LrL20q1w!esjj{G4GI==5qaZp}FpumwMtX^nBk@$?50$B#l z5xbyCNW9JO6JPN&!^;TSa>12KQH&cKo?_o$=hi*NzCr70B#~9ez%rm6AGUIo>+#-d z!R6x2mfytIa37mqQO;L-2Cm(Ew8d6evim_F^EeE}8Whbx2&wQJS)M09e3n)wh2^o& zpU`6qyv?Q`lV2ZKjrfgFjCl#7FnUXj)F{*rI?b*$yu6?!p2KVnX~|THVulQna7UMd zs?}^jGL#6Nd^dnC_w?0@^g9h{arpmQ*q}ZI*c?gs$`~he1GqD<;zke8iTAtWhSnQh zv4EOZmZzw<)$-;bf3Z$pPz-Gx`?TBNNHaNmj98nINXQ?f z3Yjh~7y8=hP*+3Yj&x|Q{ZMzOm#b-yWlfzx5-<}}>&6>R+MC&FBq@33kx>;Mp|HaD zJ5Kme7Qhy)>~3Sp(3{l#pyEDaKePsfO&KqMEgTo&m7edPmLd!rIgS$-4P;o;gifpN zG6U4U%P7h-*V3QHZBCdDI8DAg#ZaL~MpGt6>isCx`n3mB_z=c10=Y6G(0Oumszi$URMGWmONU7>aL* zx$X!nI%^l^CPe|Epz4oS31j&otIxt+**z)qZLDa)SU#h_eIktx5yDP9)cl?&{geaw zOd|n$X637jM&m%Gl>+V~Dl`cmv>h@AqU~Y~XW9w1=t#M7Uw2#eob93WHE3J~;jVMF zApkif7Q8%C)a8yTjuP#OU6FHW%s987Y~ExDmy>vRZ_mG{90+pTXTMzpNSDExIBFO;EbOx_ua zr(}D*xE)Q^ID)@d>NjFp9eu{%N>;_tYEUizHf0-ji&hyKu@JJidn&U{mEw6f0asje ziFGYn06QLGcEf^aZtfRG%i|20^;oD9O){d};+`gTUHWyfW^k#V66rSeHrH>EijF!l zTkly2k5WRl4S1rUGRt=;?nrt(C%zI>|`O0f&WF?(vJGu0_^G2{K~eE7qaO=GL0VKVQhb!&ZmLNuwH zEqsE2O8yY`?EF&Lv-pRw#|9Dhw5u4(eoxpF>-N7T>=9Qv)(ZBT%?KH3zCa3HKaH!Q z$Suusa~CVPwujyHnQGUTUH~I0%^e$Ax;Um8-VmHlr?5RhYCSln_M6aBvsgmG1esJ# z6Rj7BJs0f5hqVcFnrNIDD56ugr-Sd<^yAaFGP-he*2=vT5H2&uwb~HfLY>4iXPzte zk!ElG)B_O%F(yd4RZN5Fg1B%+G4oTijWrs++E@p(u!)LwPM3qKF(AxnR7&E{Bzv4N zz?78Cq3VNLuClV-+oXY#05KcEO~`wAZhi4m>d+ktQ|Km?4w4l_$uq#wsiZ#|5?XbM zU)JRwx~XHohe++d6yoCZd340JAx$UNRuG?5g5q>h)(i8lIXf@ zdjy9wcPLFgvt9UgvsqdD;lNU>Wmpiz7N)ylgzm`qMT?X{MJ}=^o688rD2{SOdOSUv z^BQSs8*%77jGrVf_O?8JH;TBtzZ>=M7IHI zQugrRE8m*Cn+njaacpb2f5AO&2uDxMnN#vkQ+CG+XE~SlLhHuAs7rIwufQlE=YngS zHIwg53@Dy=1Sq{T8iz2z?x4C=mt18JjyLKU-7};&i%7P3h4PI>lj@K@LZ=&gMz^FF z_}mZdv7_T&O25nt#0kHhB5HIQt=%(xA7I#sE3uEZLaO-}-)0w|4wL@MZF4B?X3t@D zQX_eWz@*+=^foX`Jv$}S)N*uTW6DWw<76{IPt>u2+R^ub$pLd@%IgAP^#b>D?_e+t1N}z|h+E%RklN*N&fpw28 zKT%{qOMc+h^A8hl{Gi67nCGj6nk$k?GzhEYRQjz>c$Myxk@ZXcOeN2-uEp^ssLoTE*-sHz+ z!O(wzaRqc?AUjaLhsM3WwjSEF-%+1^hVURCgFKc|yWc!p7GAN;+Ng)imOMG}Eg}k# zOnbNAdj7Q_<+Elco=4i@q^-Wl%In^3Pv4$+P9z$FrtbK%j!wa2s#0*D+E#nTXDnae zO+Fo7qG8T=zBs}mLLOhbl z%Mgu5+k63sF2LQX4>br~~!B6OB^0e43ch%0F|)U4r7 z$KKR^01oi5Y6k%}qA8+M0eP_Thd^FF1<%6*f_Oo0Ah2FGK(}~LfUHMqeqNkMB6(q; zXa)~UTIfNUQDC!f97Y2g!RyeJ3UiK`QIg^V*PF*l!ErwD6*QlKHeG=%Cm|)>v%+)tJ)|A&I%Uhh{IVN~; zJ^vPd$m#(<7vLPHo@LFy_ceulf$2{m(TY(ew0rWY|^f!x`k-7|PFLA8beNZgS z4mSptf$iN8m-A1W58K+#gy2Un%YsOxy!s=@j_nzo%1x zeS^loR4S};`mZFTIP-r^MnS~3Zop`vk=rt<9Lju7Ci3)3fA>-Uy&CspSPyLqwa>sL z<@d`vc8mHH-}&^FXi4|b+A53fa>7b*wBi;ufY`AuVJ{>zX7W8=Y$OvLE{0XF9aIcD^7U9nX$d8Y{!U|}f~%w)nQP1hEW?gpoU2{!2$#1Cd4 zIbXkwfX&ab_f_%Vt3=&1Uksv$N7PK=?d|S#OwV|fCWyM+4v%F`mjAHG(jFcdb&;3&=uKtX)FzOozvIX$6-K(8ugz?^qB3;v6mt;(9GPuuFf&zuQZ07 z)t+_cv+_L_M4)FA?+3VhB5@1S+xZwKW6f4WlW-Z*$)Ozzmne@l!n^mG8*;D;cr@%= zeJj3gq7#m^;moYT`fbE(QFiG7(tVGRJ?cCj2Lsx`t{^t*m<}L_q#2du;s-gSo0!!1 zsv!y*%%zIn@t0S0+S}7Xjlu&az)w3gdvyL{fPLwV+~^}Y0Vad4STj9QN1tA2EWg+F z*ivu0ztfs02A!#Kvb2a+lbmQCr15)ME3gS+;Q~7jWP?aFq@c)xVbn0F**KurdunXxjG^}i20*Dynv(j% zt%WSCw(e|Pg|<9w2rQ0WKkFxeP`SC_U!7!vOcubIigFVw2AtB4)NZX69yE{%BRtTyuIycW=4>WF+Yyy4MIP znym`SL{lQwgh@C(2oJD4WEs^~74|4nxrZW=h{e;c&8*U?oOpGfc@;Hb4PK0ZmyuivXb>@nSQdJR@F^&Q1kd6`goE3ux zuOEa@exgNe&HIKHQH%frs||_0!#pUgYE1PzaV>NdWOe~^;x2%`BUWi!}s9cH9! zAyl5y2XUutn3n|)HkM4alKZ*_;sejFmMr!?_PK?3l6+S*}0bi35# zoSS8Cuc2%EZ_4u3ApzBA3=V+Wgran#ZJ!F|U2^u!yu0|osFZQ!4|!a-g~9NK&{MAY zn5ssjM?Bv=L)IY(TB&Bo$H{~1@u4Y9<)|b34RQS~+^2G8Mti{B_AcBX_Ud=JgzPd# zHDo?FTH^+TD(B1i6(yhOc^qXM3UPVcsB#5NVC^`zw|e0aP?0`F%t62={m|V`%Rmns z3A$9Pc38`z^J6R8;kwPsQC_B8N+)ue>_(fvl4x-L(c*Do(!c0cie7!+>($1E4fmYccGy_;!CRh0-n8aF+m+9p z&D#IZ`<1+4zp0>f#c(EXuzl6iRGX?Dw}sjfb_k}0v8?P-CJeTINDvsDepp%tII)XW z#H0FFSW@`PEVy@v(yfhlT=A&dn-{42bEJw4f%4E`&S%}Eb-|voY}ykq6(;Aap*tBS zp`)&MlQYSCTv14oEU~~aA=p`k{~@Anb!op!XvR=~m@Gi$k90ffPw6hNkAADz28U|? z`Y&vzdjgHGl(=I@bEvriMQQcdCYPLUJ%BG$EnCuaUsKz9Zh&dv;%G(s>r5J&otljIE?L2nhnujg+db*v$r#kvu7^n~Ud0j*RGymCNK+Bvr&4Xu47XlRk|`<3m8P4$x^&l2R1i{USZ)wffw6zOky z8N=yI@4$FY8G8iFo1{Hs6garSy)Y|v2Kp*hf;x5^dA{gsp=b_w_sokg7<6DHHavxC zg{EtNQ{5EXfmx`^-eeD4xoV1dC#LLhRm}x2W**Xt2b^f%5J9y^#!r4GdX5J#D}{g$ zw7A=aJ;z7`#2WtDlHAv^h7Z*lfYazB6+bG&!X{HUsfAMSWZU}Fyd?=!zkyjv7`|EH zrj}NwX6TLXNM-MIH3z)om64Yf5u$GI&fx6=hjyTao4j3-yU0?${p&uLDghBZ)>c|W zDml&aY54KF28Ct^n}P8QBnuZ~OL?n>8Ge(}`=#cnWdX_A;QL!+8Zp4XbYv>H7Au9? zZBs-IFGA>Z+@wWmBS}w0z=Fsaw1vycu@Z4`50|=n-FnN)Ix;p)oc0x(%`+x@Vf@@ zf9eBeeA5RqkHpIVyB6>DeB#oq*86aycf2C5SSQP&R~!A8bb`>WF5k6z<9`ywa3Mx- zWH&Bv{q1NldEsD#qPN|r@6>3TAhR&>F3 ze5i=XX`RH66hoeA@c7RKCW_QNQxA6@YeN{bBOsYTj0+`O+D3wM`s#G65TQHJ#%^yR zh^%@P7dF)=J$0wYNjk8w0_eTs)!-RkE=;&w>?TypA7+ys8Q>FudCDqxx-`+Tv&FpF zlbR=1#xg=OXB^3&>Lc_$Os^=T2dpe~UTyHT`#P-uukLGfU<^k>7q-#evDaxLii%TU zlb*ekYmU%s%LLrF|HXgpP8pTz>890Gdp@dGQ8RQHyk8D0qy9g#K{8HC`88ZK zoj~%O&SVTTb9NR)T!aM=KqyOP?qC51(F5*lZh9x$nlbt}tr`JDFt=|EjJojXOGK(# zJ?^(yJ`_VytGnO7ACt0^g(cuB6rPqd3$Cx~1*7lsFSuJfwygt?U=^sj!Xoc0RQyF7MC+_URvPS)?8GRZ0BI5dzPDA1lkxmJ^KY~8J{-S*c)xSOeUMk19oye!}_kBu0BrJDb{=Ql9eeV78Qsyfb{&JQGWMnx7W{SipA$=|CG=3pP7;gxe?0~8;*}nBUCmfIdEnA%CGYc{=Ex|6SO5aC$@e0ZrW=PBkM$X{L}RMc^&iTm;UsJDBiC@A;_y=_QAh5h(5peNpUqk z)SPNMl1F}Vem*F3`G(2`440K9t?WfpD4vt@&V$Du6+a~&75^XsX@ zrunnk*_{^+iwXz9i^-e#K-W4Yl373v<3PeI(uNzwW4@3lXd>G)+>zw;$pna|p!WcS z?GAzl_;4k$7_@0Uy##(vYCi3vzR0Enb(#4%rKEydv#OLxoujiQQTaSbsDoOltb_n= z3cN+BruQKW=S9LjX_^li&q~cnYa!XZoY*okt-T}y3o>|jK|jAzKR;ya-{E;^3ofVM z&vEcnf$cP9b%0qYzYE^9U}kiYLNdn4fT_h9N#wYloT~>yuERc)WJYN!B#bmG8OOz5 z=|T@Sl1_n%7ixmaear_M;3b~h`m*vG#CF}6rcK$G6|r}=4OlmbACi5bI4Fmps+G{_ zY559d)A`W|lO>`-ftd!0DgRqBsD;h0{mZyy3$vJ>0cyNuoqz4rs{rSx16lAy{){`#axDF8{M z7i6E!;xUEE55Su56y*UZeB?2`D)lk2a78?KzFwqmp>ks#)FqsjjA>h zV3;hi$BXxK%#Ii?P!4t{REXU35zN|Gisz@n*tV@<(8|O$(!sY{XHh%VuQar#-E6^- z7gGh5^(RGd!C;?;;#1RNowy2GR%R|}57N8SetqwZP|oHGP-)QCi)QI^rGy1AbKjPR zQpis*PRa79gb`IAUkX; zP9nJXLZT=%D@0AI&@^e2kGNfon_;`rYv{U3lrr4K`j`7dC7jHbq@7Af{NQ@zU*MmO z8OUs?b6g_ewm`&mN|(%Xbhmmr%yHsk$TaCV^@6)UOD;;eifsey;euZ~ZhE)ZRU8T| z@@|-;cd@3`9J6|nQXQy|1vDu`X1tCM%Z8w5m=%KnuqlE6xuB>ocb*vYgy*4RtXRcf zwb}j5OX@|>t!c@wcVYs!Z3X6_UM{0)cup1$$Zdr6;L^5mJqt;qh7P4Da!_=gqg7;; z1s0~IyMs2FA`buMfL2}!_3|aTxYaDErZ}qBTu)fxEic9bRf5R>a(t-Xb%yy7VrNE( zwgs7*)bDv;!-*8>c4WylgW6PbNRAm;KvjkWNDwsuD zPBrhMmsM^Pn~X$;-b^!vmO65+LK)0>Cc#%(O8})p!x=}SOWB{t#_lC6!6+tx{^bFq zHPaOGxExzfr74fr_!4iQDx;uqx={s!*JhdaRMgX?7h{UonFA%q?eDEyAyjvcYZdRg z^&3lGq@KiwaHy(@g*-ne%4zERV#40!q(al3J>M{-oQxavg8 zA--DXg$9Y=FiZ?J+-+w*(9AnDoU8l!6a$$t;%I-6g7y4^v5n)3vpppRXEHNfTV?dpZTR;^%ty`A zrg46_PK^HI@LSJz?ftBeKYaX6toj~kgNmDLHAe@=SlZsbTo~Iw$;kCnyr(QklmcYW zMqKVttn^^IU|Cv}fM0H|JUwh}70)de8^>Fh@jMc~d2*{FBlObDGM0}~qW!aoO%m2k zhqUUgNm!#c39F|4e;gm%M*9y(Rx{>qJGYWK{n!pJ_Fh{7%k`R}3z0F_PYm5#yhSlX zy|Zrz%}XL|>1X^v;@t-2U+;4nRvEKpRXCvunIWF{1lN7{eJ!>3#fgoiTaraP;$q|9 z-QWJ>_M+}n>*{Q8-p1d{liR=}Aza6{KWB@GUXUHHWc&Hdl2w>;LB(=smGY_QcO?>a z;;fT)4|7ObG)wna2ZuXGkXAI$xOBP)W-TU!K6mst6YUS)*FDz86p6wEfzFySKRp2& zs5%D+aztMJ%d_eyT3%C^SYwCLkqZ^%EiJ~$dehGO1;?VcdUYHg?Af8ies6O{V7&Ey zNp|z&u~CjJ8B=k0d2LkM}~t z1u_>8OrK1_R@Gj+2)y#AG4<|9U%{sO+7neS)&ht1Gs>kS4z-85(WV1C6!!N#me|zk zNlBh^B;3pocg!UnTQ$9S<`JW(EKe`Gv*3ktP3NHEiM{y@vtEk6|BC$hgvNxDl0ai# z+cwwxKlK><@upM!Ib?c{T4FP})hXj^xx zbshH7%J;7y`6&e1Y0kb4wj4L!KG#d*WcaDXse6nCTFH2^S(y)flmsE#(2>z+R5eIfbS*k|4F&0Y53SgEdW-VRc`j2m94)Mr_I zXgrsAada!aRW;SQyt~j8=9&a84UIs&9B~uNZwlohYs>Z4mWyaqJQ04t)bNnvk+2KF z7F;WtoMp_JmlUp|xj0MhI5?VSOb{PA_#xKNXUZ>>eXr($cKW-QIX%f$Q7oGjQ4}4= zsnmTj>yirOx~g92Wmq|Pcov*q!nt<@1eRuzj4HFL;YZ`ii&q@xHLL0S^7$jN#Gi@I z!;du5#Jg*+l%)8rwt*N38PU~CQ;Sm*!-QOpL>GP^pmtoYAo%Tc9$ik&dc>i!HCPQ3q;_+*Hmn6Q@(N5woT6U0)cnvg5?#N#v^;LZ zVyjE}d9zj8ftx{bFe7ePcW8cw_o2p~*62aI)QS|eX$NsJ9lI}o;iCN9Y>{`pFE%*j z_PxyoIvDdSY%QK3{o%L$FUsxXC`J-(5 z3#auTh}12AR#5(*Jc}nr$sv0!8$~|_#?ZwK<8%jXm{aM5=qyqHIm{G2a3%Vdtm8iE zPNNw!cX$Y1(+%@1rJMG>?~A!s=On|-OZj&)N-;9-1il+ww9 zs0Y6L1aSNNF^lKo4S88uUMt0fg$eU!4y{MFga!*G-hsuL3s@=J=ZT-u0 z{x8l&nH>sJlxiXv3-*;GQ%#5Gh@g4+OrF+;HJhe+#qU3(qqZPZ<81?l7v~8ZSXlO4 z{Sn!+NAGZ9Thx~Ui`}^ z?co(wYmU9vJbQ<^mZp^V0gjM)WS*~6aY)L7%a^;_uS{Uhyz95v@SL$t`@*i7rFW)b zY?@!9KwJ@!HT=4uG%gbR*fIHiK;lXAF4mKgMSk}cuH|pOkZ=+2?xc91qO7=C6YnLi zP!P?wP<`%P%$WeULGRjaWjqp=JSV8zB38TIgrr0bS@dN-Hw*F$9Rl{yrC0lv{CKwc zDO|(#yW>Mk9rs0SF(gi({^4EjVy2hVLT-@n}z)}=QR;Zy5>JE*~ zL7Po^)A9(^AI%J0uW{lHy)&F+T|bVGU(QuEPFOwZQktxA)_|rc`hB#Uc_DA@YfPN@ zqIF&RC47mA+x`Ve*QXp+CE;8wUymqHw?qa(|TZ-v=dHUiM56QssoK3s# ztIb+KKMc3qr|#wHYnyN}c}t)%TAN2{@0Ba~kc{W1lrhKoH?-#$M_VV}D4bZ=w)e)z zhx%jp3|*4_SKmNz3CQwh1Mk8NFNdI7#BZD&TMXp3mG9sFBg@l68$bPm7`SVvnoSQ$ z+kaGzTYfOOEQk` z`lu=*&&|x5Yt_y3xIip0OKx@SD$yy%vhr~$^SP_Z1M$PSjSwPXeJZiZ)@1N;$>5rT z!uPp$R1fqdN@7jJe#zF--tCRCtrh#ML3&RcZ+&*+(4qxuWcl7PDULE06OEOH8U2^HU z@F+5nn=CWbym8vnFYE~nqsIH37~|Ji#(Wkiuv&*>vamw=M z;-yqCOSqbLm@->4LX~%WrjX%4BUDNZPf}29!zJRIX?D)y|%by^A-~h~!B#S6^s7=WA>} zolsL}o2-{n@T#M93PwZB6H%j`gKYy}gvWP{XPhxD%3lGddSQ^U^|sQ2|Utjo&d z7`s>Vxn4sqwAl^<_HiwiV(6lhX>1V33155dr+bSW$RqMM50ePK0t%kWuw==fpjFK| zTujo>6n3$X*wm)|GiCq->0u9qD=ljink93j>^a@tvqfF2M@Cz@Sy*O`mkVy!`FCE@ zcBmB7RPv9_DOtsB$cY|ms<5a}Zy8I)QBSB&d1Yr?*Pp|}oO^G61CO0QO5mDqfys$C zd7gX^H69UvDK9ix$c1w%I(oDGQ6zv$=3)QR_E-pUzg*|CnRxDfF3l|2BBK6hmo|)_TTdf5Xd8_7*V6EUbgOhr(hga4i<}YP!idxuc?B$L zXgIn3{WYPyg4H399;{VcS=Gw}zub>?Y+HzaUH3O68;A ze#;(k?HbXhUAP9ht-btVap_fJJ$ggUd>7rMWb$f^$LQ(}yd}2u^?oEH0bUqD=MzY) zA@JbUGA#YeGc`3R)Hi7%WuD3=YThUakk$} zTFl7J?);S8Q1c7zIHP#OOe4nXTKYRvlc^VvVD}KFl_Lz_=dkwu-@6K1M1Mv86dtc2 hdHlcAvz?xciZ<7rS9Pb8$B^Hxa!TW5%JIv;{x3K#;s5{u literal 0 HcmV?d00001 diff --git a/README.md b/README.md index a4dff896..defc78f0 100644 --- a/README.md +++ b/README.md @@ -60,26 +60,9 @@ LuaBridge3 is usable from a compliant C++17 compiler and offers the following fe ## Performance -LuaBridge3 has been heavily optimized and now competes directly with [sol2](https://github.com/ThePhD/sol2) — one of the fastest C++/Lua binding libraries — across most workloads. In some cases (e.g. member function calls from Lua) LuaBridge3 is actually **faster** than sol2: - -| Case | LuaBridge3 (ns/op) | sol2 (ns/op) | -|------------------------------|--------------------|--------------| -| lua_empty_loop | 2.10 | 2.07 | -| lua_to_cpp_free_fn | 28.30 | 21.54 | -| lua_to_cpp_member | **70.23** | 101.13 | -| lua_to_cpp_property | 139.29 | 125.34 | -| lua_to_cpp_property_set | 70.70 | 62.58 | -| lua_to_cpp_property_get | 64.65 | 61.98 | -| cpp_table_global_get | 15.24 | 12.60 | -| cpp_table_global_set | **9.99** | 11.31 | -| cpp_table_get | 26.24 | 18.54 | -| cpp_table_set | 23.41 | 17.74 | -| cpp_table_chained_get | 70.55 | 27.87 | -| cpp_table_chained_set | 66.87 | 26.50 | -| cpp_to_lua_call | 33.41 | 30.92 | -| cpp_c_function_through_lua | 52.52 | 46.47 | - -Bold entries indicate cases where LuaBridge3 outperforms sol2. Lower is better (nanoseconds per operation). +LuaBridge3 has been heavily optimized and now competes directly with [sol2](https://github.com/ThePhD/sol2) — one of the fastest C++/Lua binding libraries — across most workloads. + +[Benchmarks](./Images/benchmarks.png) ## Improvements Over Vanilla LuaBridge diff --git a/Source/LuaBridge/detail/CFunctions.h b/Source/LuaBridge/detail/CFunctions.h index bdc357db..2cbdc9f5 100644 --- a/Source/LuaBridge/detail/CFunctions.h +++ b/Source/LuaBridge/detail/CFunctions.h @@ -1507,13 +1507,21 @@ struct function static int call(lua_State* L, F&& func) { Result result; + int numResults = 1; #if LUABRIDGE_HAS_EXCEPTIONS try { #endif - result = Stack::push(L, invoke_callable_from_stack(L, std::forward(func))); - + if constexpr (detail::IsTuple::value) + { + numResults = static_cast(std::tuple_size_v); + result = detail::pushTuple(L, invoke_callable_from_stack(L, std::forward(func))); + } + else + { + result = Stack::push(L, invoke_callable_from_stack(L, std::forward(func))); + } #if LUABRIDGE_HAS_EXCEPTIONS } catch (const std::exception& e) @@ -1525,20 +1533,28 @@ struct function if (! result) raise_lua_error(L, "%s", result.error_cstr()); - return 1; + return numResults; } template static int call(lua_State* L, T* ptr, F&& func) { Result result; + int numResults = 1; #if LUABRIDGE_HAS_EXCEPTIONS try { #endif - result = Stack::push(L, invoke_member_callable_from_stack(L, ptr, std::forward(func))); - + if constexpr (detail::IsTuple::value) + { + numResults = static_cast(std::tuple_size_v); + result = detail::pushTuple(L, invoke_member_callable_from_stack(L, ptr, std::forward(func))); + } + else + { + result = Stack::push(L, invoke_member_callable_from_stack(L, ptr, std::forward(func))); + } #if LUABRIDGE_HAS_EXCEPTIONS } catch (const std::exception& e) @@ -1550,7 +1566,51 @@ struct function if (! result) raise_lua_error(L, "%s", result.error_cstr()); - return 1; + return numResults; + } +}; + +template +struct function, ArgsPack, Start> +{ + template + static int call(lua_State* L, F&& func) + { +#if LUABRIDGE_HAS_EXCEPTIONS + try + { +#endif + invoke_callable_from_stack(L, std::forward(func)); + +#if LUABRIDGE_HAS_EXCEPTIONS + } + catch (const std::exception& e) + { + raise_lua_error(L, "%s", e.what()); + } +#endif + + return 0; + } + + template + static int call(lua_State* L, T* ptr, F&& func) + { +#if LUABRIDGE_HAS_EXCEPTIONS + try + { +#endif + invoke_member_callable_from_stack(L, ptr, std::forward(func)); + +#if LUABRIDGE_HAS_EXCEPTIONS + } + catch (const std::exception& e) + { + raise_lua_error(L, "%s", e.what()); + } +#endif + + return 0; } }; diff --git a/Source/LuaBridge/detail/Invoke.h b/Source/LuaBridge/detail/Invoke.h index f0b64b56..9e826499 100644 --- a/Source/LuaBridge/detail/Invoke.h +++ b/Source/LuaBridge/detail/Invoke.h @@ -31,16 +31,6 @@ bool is_handler_valid(const F& f) noexcept return true; } -template -struct IsTuple : std::false_type -{ -}; - -template -struct IsTuple> : std::true_type -{ -}; - template TypeResult decodeTupleResult(lua_State* L, int firstResultIndex, std::index_sequence) { @@ -80,8 +70,7 @@ TypeResult decodeCallResult(lua_State* L, int firstResultIndex, int numReturn return {}; } - else - if constexpr (IsTuple::value) + else if constexpr (IsTuple::value) { constexpr auto expectedSize = static_cast(std::tuple_size_v); if (numReturnedValues != expectedSize) diff --git a/Source/LuaBridge/detail/Stack.h b/Source/LuaBridge/detail/Stack.h index eb160f56..783dd695 100644 --- a/Source/LuaBridge/detail/Stack.h +++ b/Source/LuaBridge/detail/Stack.h @@ -26,6 +26,31 @@ #include namespace luabridge { +namespace detail { +template +struct IsTuple : std::false_type +{ +}; + +template +struct IsTuple> : std::true_type +{ +}; + +template +Result pushTupleImpl(lua_State* L, const Tuple& value, std::index_sequence) +{ + Result result; + ((result = Stack>>::push(L, std::get(value)), bool(result)) && ...); + return result; +} + +template +Result pushTuple(lua_State* L, const std::tuple& value) +{ + return pushTupleImpl(L, value, std::index_sequence_for{}); +} +} // namespace detail //================================================================================================= /** diff --git a/Source/LuaBridge/detail/Userdata.h b/Source/LuaBridge/detail/Userdata.h index a09d4e06..35e6aa3f 100644 --- a/Source/LuaBridge/detail/Userdata.h +++ b/Source/LuaBridge/detail/Userdata.h @@ -297,21 +297,33 @@ class Userdata const auto classId = detail::getClassRegistryKey(); const auto constId = detail::getConstRegistryKey(); - // Common-case fast path: exact class/const metatable match. - // This avoids parent-chain traversal and registry table lookups. - if (lua_getmetatable(L, absIndex) && lua_istable(L, -1)) + // Common-case fast path: compare the object's metatable directly against + // the registry class/const tables. This avoids an extra interior table + // lookup (getTypeIdentityKey) and the lua_istable guard (lua_getmetatable + // always pushes a table when it returns non-zero). Safe because scripts + // cannot set metatables on userdata (Lua security model, points 1-3). + if (lua_getmetatable(L, absIndex)) // Stack: ..., mt { - lua_rawgetp_x(L, -1, detail::getTypeIdentityKey()); - const void* identity = lua_touserdata(L, -1); - lua_pop(L, 1); - - if (identity == classId || (canBeConst && identity == constId)) + lua_rawgetp_x(L, LUA_REGISTRYINDEX, classId); // Stack: ..., mt, class_mt + if (lua_rawequal(L, -2, -1)) { - lua_pop(L, 1); + lua_pop(L, 2); return static_cast(static_cast(lua_touserdata(L, absIndex))->getPointer()); } + lua_pop(L, 1); // Stack: ..., mt + + if (canBeConst) + { + lua_rawgetp_x(L, LUA_REGISTRYINDEX, constId); // Stack: ..., mt, const_mt + if (lua_rawequal(L, -2, -1)) + { + lua_pop(L, 2); + return static_cast(static_cast(lua_touserdata(L, absIndex))->getPointer()); + } + lua_pop(L, 1); // Stack: ..., mt + } - lua_pop(L, 1); + lua_pop(L, 1); // Stack: ... } auto clazz = getClass(L, absIndex, constId, classId, canBeConst); diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index e7bca939..a4bef1f5 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -16,6 +16,9 @@ if (APPLE OR UNIX) GIT_REPOSITORY https://github.com/bombela/backward-cpp GIT_TAG master SYSTEM) + if (APPLE) + set(STACK_DETAILS_AUTO_DETECT OFF CACHE BOOL "Disable automatic detection of stack details for backward-cpp") + endif() FetchContent_MakeAvailable (backward) endif() diff --git a/Tests/Source/Tests.cpp b/Tests/Source/Tests.cpp index 0661c3d6..5f2a7457 100644 --- a/Tests/Source/Tests.cpp +++ b/Tests/Source/Tests.cpp @@ -311,9 +311,13 @@ TEST_F(LuaBridgeTest, TupleAsFunctionReturnValue) .addFunction("test", [x](Inner*) { return std::make_tuple(x, 42); }) .endClass(); - runLua("x = Inner () result = x:test ()"); - EXPECT_EQ(true, result().isTable()); - EXPECT_EQ(std::make_tuple(x, 42), (result>())); + runLua("x = Inner () result1, result2 = x:test ()"); + auto z1 = luabridge::getGlobal(L, "result1"); + auto z2 = luabridge::getGlobal(L, "result2"); + EXPECT_EQ(true, z1.isNumber()); + EXPECT_EQ(true, z2.isNumber()); + EXPECT_EQ(100, z1.unsafe_cast()); + EXPECT_EQ(42, z2.unsafe_cast()); } namespace { diff --git a/justfile b/justfile index a421aafe..ce65a306 100644 --- a/justfile +++ b/justfile @@ -10,8 +10,16 @@ sanitize TYPE='address': benchmark: cmake -G Xcode -B Build -DLUABRIDGE_BENCHMARKS=ON . - cmake --build Build --config Release --target LuaBridgeBenchmarks -j8 - ./Build/Benchmarks/Release/LuaBridgeBenchmarks 1000000 + cmake --build Build --config Release --target LuaBridge3Benchmark -j8 + cmake --build Build --config Release --target LuaBridgeVanillaBenchmark -j8 + cmake --build Build --config Release --target Sol3Benchmark -j8 + ./Build/Benchmarks/Release/LuaBridge3Benchmark --benchmark_out_format=json --benchmark_out=Build/LuaBridge3Benchmark.json + ./Build/Benchmarks/Release/LuaBridgeVanillaBenchmark --benchmark_out_format=json --benchmark_out=Build/LuaBridgeVanillaBenchmark.json + ./Build/Benchmarks/Release/Sol3Benchmark --benchmark_out_format=json --benchmark_out=Build/Sol3Benchmark.json + @just plot + +plot: + python3 Benchmarks/plot_benchmarks.py --input Build/LuaBridge3Benchmark.json Build/LuaBridgeVanillaBenchmark.json Build/Sol3Benchmark.json --output Images/benchmarks.png clean: rm -rf Build From 10e98bb8e390ce07d49ffcb0f0513bb0548e2f89 Mon Sep 17 00:00:00 2001 From: kunitoki Date: Mon, 6 Apr 2026 15:59:51 +0200 Subject: [PATCH 02/10] Fix image syntax for benchmarks in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index defc78f0..de6e820e 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ LuaBridge3 is usable from a compliant C++17 compiler and offers the following fe LuaBridge3 has been heavily optimized and now competes directly with [sol2](https://github.com/ThePhD/sol2) — one of the fastest C++/Lua binding libraries — across most workloads. -[Benchmarks](./Images/benchmarks.png) +![Benchmarks](./Images/benchmarks.png) ## Improvements Over Vanilla LuaBridge From 29a108167f496ba5d07ea3adbe8e0a0d83aa4e37 Mon Sep 17 00:00:00 2001 From: kunitoki Date: Mon, 6 Apr 2026 02:29:40 +0200 Subject: [PATCH 03/10] More stuff --- Benchmarks/CMakeLists.txt | 7 +++++-- Images/benchmarks.png | Bin 164809 -> 164815 bytes 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Benchmarks/CMakeLists.txt b/Benchmarks/CMakeLists.txt index 4e2d7f3b..efabe9d1 100644 --- a/Benchmarks/CMakeLists.txt +++ b/Benchmarks/CMakeLists.txt @@ -26,13 +26,16 @@ if (LUABRIDGE_BENCHMARK_WITH_SOL3) sol2 GIT_REPOSITORY ${LUABRIDGE_SOL2_GIT_REPOSITORY} GIT_TAG ${LUABRIDGE_SOL2_GIT_TAG}) - FetchContent_MakeAvailable(sol2) + FetchContent_GetProperties(sol2) + if (NOT sol2_POPULATED) + FetchContent_Populate(sol2) + endif() # Work around a sol2 optional::emplace bug on recent Apple Clang toolchains. set(SOL2_OPTIONAL_IMPL "${sol2_SOURCE_DIR}/include/sol/optional_implementation.hpp") if (EXISTS "${SOL2_OPTIONAL_IMPL}") file(READ "${SOL2_OPTIONAL_IMPL}" SOL2_OPTIONAL_IMPL_CONTENT) - set(SOL2_OPTIONAL_REFBLOCK_OLD "\t\ttemplate \n\t\tT& emplace(Args&&... args) noexcept {\n\t\t\tstatic_assert(std::is_constructible::value, \"T must be constructible with Args\");\n\n\t\t\t*this = nullopt;\n\t\t\tthis->construct(std::forward(args)...);\n\t\t\treturn *m_value;\n\t\t}\n") + set(SOL2_OPTIONAL_REFBLOCK_OLD "\t\ttemplate \n\t\tT& emplace(Args&&... args) noexcept {\n\t\t\tstatic_assert(std::is_constructible::value, \"T must be constructible with Args\");\n\n\t\t\t*this = nullopt;\n\t\t\tthis->construct(std::forward(args)...);\n\t\t}\n") string(FIND "${SOL2_OPTIONAL_IMPL_CONTENT}" "${SOL2_OPTIONAL_REFBLOCK_OLD}" SOL2_PATCH_NEEDLE_POS) if (NOT SOL2_PATCH_NEEDLE_POS EQUAL -1) set(SOL2_OPTIONAL_REFBLOCK_NEW "\t\ttemplate \n\t\tT& emplace(Args&&... args) noexcept {\n\t\t\tstatic_assert(std::is_constructible::value, \"T must be constructible with Args\");\n\n\t\t\t*this = nullopt;\n\t\t\tint emplace_workaround[] = { 0, ((*this = std::forward(args)), 0)... };\n\t\t\t(void) emplace_workaround;\n\t\t\treturn *m_value;\n\t\t}\n") diff --git a/Images/benchmarks.png b/Images/benchmarks.png index 274eeeb6a8e211f9544dfd0e64bcd920f390d17b..b848f341a25dd1a1467dfe01240f850aa89210c4 100644 GIT binary patch literal 164815 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 Vm=JUpIG#9nZpd8E6ubZU{{U#?tfBw_ diff --git a/Source/LuaBridge/detail/CFunctions.h b/Source/LuaBridge/detail/CFunctions.h index 2cbdc9f5..b8621190 100644 --- a/Source/LuaBridge/detail/CFunctions.h +++ b/Source/LuaBridge/detail/CFunctions.h @@ -104,6 +104,24 @@ auto pop_arguments(lua_State* L, std::tuple& t) return pop_arguments(L, t); } +//================================================================================================= +/** + * @brief Push a tuple on the stack. + */ +template +Result push_tuple_impl(lua_State* L, const Tuple& value, std::index_sequence) +{ + Result result; + (void)((result = Stack>>::push(L, std::get(value)), bool(result)) && ...); + return result; +} + +template +Result push_tuple(lua_State* L, const std::tuple& value) +{ + return push_tuple_impl(L, value, std::index_sequence_for{}); +} + //================================================================================================= /** * @brief Check if a method name is a metamethod. @@ -1513,10 +1531,10 @@ struct function try { #endif - if constexpr (detail::IsTuple::value) + if constexpr (detail::is_tuple_v) { numResults = static_cast(std::tuple_size_v); - result = detail::pushTuple(L, invoke_callable_from_stack(L, std::forward(func))); + result = detail::push_tuple(L, invoke_callable_from_stack(L, std::forward(func))); } else { @@ -1546,10 +1564,10 @@ struct function try { #endif - if constexpr (detail::IsTuple::value) + if constexpr (detail::is_tuple_v) { numResults = static_cast(std::tuple_size_v); - result = detail::pushTuple(L, invoke_member_callable_from_stack(L, ptr, std::forward(func))); + result = detail::push_tuple(L, invoke_member_callable_from_stack(L, ptr, std::forward(func))); } else { @@ -1571,7 +1589,7 @@ struct function }; template -struct function, ArgsPack, Start> +struct function, ArgsPack, Start> : function { template static int call(lua_State* L, F&& func) diff --git a/Source/LuaBridge/detail/Invoke.h b/Source/LuaBridge/detail/Invoke.h index 9e826499..fa52ee79 100644 --- a/Source/LuaBridge/detail/Invoke.h +++ b/Source/LuaBridge/detail/Invoke.h @@ -32,7 +32,7 @@ bool is_handler_valid(const F& f) noexcept } template -TypeResult decodeTupleResult(lua_State* L, int firstResultIndex, std::index_sequence) +TypeResult decode_tuple_result(lua_State* L, int first_result_index, std::index_sequence) { Tuple value; std::error_code ec; @@ -42,7 +42,7 @@ TypeResult decodeTupleResult(lua_State* L, int firstResultIndex, std::ind { using ElementType = std::tuple_element_t; - auto element = Stack::get(L, firstResultIndex + static_cast(Indices)); + auto element = Stack::get(L, first_result_index + static_cast(Indices)); if (! element) { ec = element.error(); @@ -61,29 +61,29 @@ TypeResult decodeTupleResult(lua_State* L, int firstResultIndex, std::ind } template -TypeResult decodeCallResult(lua_State* L, int firstResultIndex, int numReturnedValues) +TypeResult decode_call_result(lua_State* L, int first_result_index, int num_returned_values) { if constexpr (std::is_same_v || std::is_same_v>) { - if (numReturnedValues != 0) + if (num_returned_values != 0) return makeErrorCode(ErrorCode::InvalidTableSizeInCast); return {}; } - else if constexpr (IsTuple::value) + else if constexpr (is_tuple_v) { - constexpr auto expectedSize = static_cast(std::tuple_size_v); - if (numReturnedValues != expectedSize) + constexpr auto expected_size = static_cast(std::tuple_size_v); + if (num_returned_values != expected_size) return makeErrorCode(ErrorCode::InvalidTableSizeInCast); - return decodeTupleResult(L, firstResultIndex, std::make_index_sequence>{}); + return decode_tuple_result(L, first_result_index, std::make_index_sequence{}); } else { - if (numReturnedValues < 1) + if (num_returned_values < 1) return makeErrorCode(ErrorCode::InvalidTypeCast); - return Stack::get(L, firstResultIndex); + return Stack::get(L, first_result_index); } } @@ -144,7 +144,7 @@ TypeResult callWithHandler(const Ref& object, F&& errorHandler, Args&&... arg const int firstResultIndex = initialTop + 1; const int numReturnedValues = lua_gettop(L) - initialTop; - return detail::decodeCallResult(L, firstResultIndex, numReturnedValues); + return detail::decode_call_result(L, firstResultIndex, numReturnedValues); } template diff --git a/Source/LuaBridge/detail/Stack.h b/Source/LuaBridge/detail/Stack.h index 783dd695..eb160f56 100644 --- a/Source/LuaBridge/detail/Stack.h +++ b/Source/LuaBridge/detail/Stack.h @@ -26,31 +26,6 @@ #include namespace luabridge { -namespace detail { -template -struct IsTuple : std::false_type -{ -}; - -template -struct IsTuple> : std::true_type -{ -}; - -template -Result pushTupleImpl(lua_State* L, const Tuple& value, std::index_sequence) -{ - Result result; - ((result = Stack>>::push(L, std::get(value)), bool(result)) && ...); - return result; -} - -template -Result pushTuple(lua_State* L, const std::tuple& value) -{ - return pushTupleImpl(L, value, std::index_sequence_for{}); -} -} // namespace detail //================================================================================================= /** diff --git a/Source/LuaBridge/detail/TypeTraits.h b/Source/LuaBridge/detail/TypeTraits.h index 8f8c8d6c..38b4a54d 100644 --- a/Source/LuaBridge/detail/TypeTraits.h +++ b/Source/LuaBridge/detail/TypeTraits.h @@ -9,6 +9,7 @@ #include "Config.h" #include +#include namespace luabridge { namespace detail { @@ -27,6 +28,18 @@ static inline constexpr bool is_base_of_template_v = is_base_of_template:: template constexpr bool dependent_false = false; +template +struct is_tuple : std::false_type +{ +}; + +template +struct is_tuple> : std::true_type +{ +}; + +template +constexpr bool is_tuple_v = is_tuple::value; } // namespace detail //================================================================================================= diff --git a/justfile b/justfile index ce65a306..34916b27 100644 --- a/justfile +++ b/justfile @@ -19,7 +19,7 @@ benchmark: @just plot plot: - python3 Benchmarks/plot_benchmarks.py --input Build/LuaBridge3Benchmark.json Build/LuaBridgeVanillaBenchmark.json Build/Sol3Benchmark.json --output Images/benchmarks.png + python3.14 Benchmarks/plot_benchmarks.py --input Build/LuaBridge3Benchmark.json Build/LuaBridgeVanillaBenchmark.json Build/Sol3Benchmark.json --output Images/benchmarks.png clean: rm -rf Build From 791367d665166022807cd51f0dbd661016a04778 Mon Sep 17 00:00:00 2001 From: kunitoki Date: Tue, 7 Apr 2026 08:15:53 +0200 Subject: [PATCH 05/10] Work with C++20 coroutines --- Benchmarks/CMakeLists.txt | 1 + Benchmarks/requirements.txt | 2 + CHANGES.md | 7 +- CMakeLists.txt | 2 +- Images/benchmarks.png | Bin 178913 -> 170105 bytes Manual.md | 170 ++++++++ README.md | 8 +- Source/LuaBridge/LuaBridge.h | 1 + Source/LuaBridge/detail/Config.h | 14 + Source/LuaBridge/detail/Coroutine.h | 486 ++++++++++++++++++++++ Source/LuaBridge/detail/Errors.h | 12 +- Source/LuaBridge/detail/LuaHelpers.h | 51 +++ Source/LuaBridge/detail/Namespace.h | 28 ++ Tests/CMakeLists.txt | 120 ++++-- Tests/Source/CoroutineTests.cpp | 591 ++++++++++++++++++++++++++- Tests/Source/TestsMain.cpp | 4 +- justfile | 8 +- 17 files changed, 1433 insertions(+), 72 deletions(-) create mode 100644 Benchmarks/requirements.txt create mode 100644 Source/LuaBridge/detail/Coroutine.h diff --git a/Benchmarks/CMakeLists.txt b/Benchmarks/CMakeLists.txt index efabe9d1..fa866471 100644 --- a/Benchmarks/CMakeLists.txt +++ b/Benchmarks/CMakeLists.txt @@ -1,4 +1,5 @@ cmake_minimum_required(VERSION 3.10) +cmake_policy (SET CMP0169 OLD) include(FetchContent) diff --git a/Benchmarks/requirements.txt b/Benchmarks/requirements.txt new file mode 100644 index 00000000..8248f97b --- /dev/null +++ b/Benchmarks/requirements.txt @@ -0,0 +1,2 @@ +matplotlib +numpy \ No newline at end of file diff --git a/CHANGES.md b/CHANGES.md index a992da8b..eb9a3c63 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,3 @@ -## Master - ## Version 3.0 * Moved to C++17 as minimum supported standard C++ version. @@ -17,6 +15,11 @@ * Allow specifying a non virtual base class method when declaring class members (functions or variables) not exposed in the inherited class. * Allow using capturing lambdas in `Namespace::addFunction`, `Namespace::addProperty`, `Class::addFunction`, `Class::addStaticFunction`, `Class::addProperty` and `Class::addStaticProperty`. * Added multiple inheritance support: `deriveClass` now accepts more than one registered base class (e.g. `deriveClass`). +* Added C++20 coroutine integration: `CppCoroutine` type that can be registered via `Namespace::addCoroutine()` to expose C++ generators to Lua using `co_yield` and `co_return`. +* Added `LuaCoroutine` awaitable to resume a child Lua thread synchronously from inside a `CppCoroutine` body using `co_await`. +* Added `lua_resume_x` and `lua_isyieldable_x` portable helpers in `LuaBridge/detail/LuaHelpers.h`. +* Added `LUABRIDGE_HAS_CXX20_COROUTINES` feature-detection macro; opt out with `LUABRIDGE_DISABLE_CXX20_COROUTINES`. +* Added `ErrorCode::CoroutineYieldFromNonCoroutine` and `ErrorCode::CoroutineAlreadyDone` error codes. * Added `Namespace::addVariable` to allow adding a modifiable value by copy into the namespace without incurring in function calls or metatables generation. * Added `luabridge::callWithHandler` free function and `LuaRef::callWithHandler` member to provide a custom Lua message handler during `lua_pcall`. * Added `luabridge::newFunction` free function and `LuaRef::newFunction` static method to wrap any C++ callable into a Lua function exposed as a `LuaRef`. diff --git a/CMakeLists.txt b/CMakeLists.txt index b0d83295..a79065db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ project (LuaBridge) include (CMakeDependentOption) -set (CMAKE_CXX_STANDARD 17) +set (CMAKE_CXX_STANDARD 20) set (CMAKE_CXX_STANDARD_REQUIRED ON) set (CMAKE_CXX_EXTENSIONS OFF) diff --git a/Images/benchmarks.png b/Images/benchmarks.png index 1038bc1aca72d22efe9a64e295bc305212bfc3f8..f015a46a20e74f8aa656d0cac374147d7256844c 100644 GIT binary patch literal 170105 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

fTQIxtiDF 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 diff --git a/Manual.md b/Manual.md index 40f72a7b..946c541f 100644 --- a/Manual.md +++ b/Manual.md @@ -44,6 +44,11 @@ Contents * [2.8 - Lua Stack](#28---lua-stack) * [2.8.1 - Enums](#281---enums) * [2.8.2 - lua_State](#282---lua_state) + * [2.9 - C++20 Coroutine Integration](#29---c20-coroutine-integration) + * [2.9.1 - CppCoroutine\ — Generators callable from Lua](#291---cppcoroutiner----generators-callable-from-lua) + * [2.9.2 - Accepting Arguments](#292---accepting-arguments) + * [2.9.3 - LuaCoroutine — Awaiting a Lua Thread from C++](#293---luacoroutine----awaiting-a-lua-thread-from-c) + * [2.9.4 - Limitations](#294---limitations) * [3 - Passing Objects](#3---passing-objects) @@ -77,6 +82,7 @@ Contents * [6.2 - LUABRIDGE_STRICT_STACK_CONVERSIONS](#62---luabridge-strict-stack-conversions) * [6.3 - LUABRIDGE_SAFE_LUA_C_EXCEPTION_HANDLING](#63---luabridge-safe-c-exception-handling) * [6.4 - LUABRIDGE_RAISE_UNREGISTERED_CLASS_USAGE](#64---luabridge-raise-unregistered-class-usage) + * [6.5 - LUABRIDGE_HAS_CXX20_COROUTINES / LUABRIDGE_DISABLE_CXX20_COROUTINES](#65---luabridge-has-cxx20-coroutines--luabridge-disable-cxx20-coroutines) * [Appendix - API Reference](#appendix---api-reference) @@ -1245,6 +1251,113 @@ When the script calls `useStateAndArgs`, it passes only the integer and string p The same is applicable for properties. +2.9 - C++20 Coroutine Integration +---------------------------------- + +LuaBridge3 provides first-class interoperability between C++20 coroutines and Lua coroutines, available when compiling with C++20 or later and Lua 5.2+ (requires `lua_yieldk`). The feature is guarded by `LUABRIDGE_HAS_CXX20_COROUTINES`, which is detected automatically and can be suppressed with `LUABRIDGE_DISABLE_CXX20_COROUTINES`. + +> **Note:** C++20 coroutine integration is not supported on Lua 5.1, LuaJIT, or Luau (those targets lack a public `lua_yieldk` equivalent). + +### 2.9.1 - CppCoroutine\ — Generators callable from Lua + +`luabridge::CppCoroutine` is a coroutine return type that bridges C++20 coroutines with Lua's `coroutine.wrap` / `coroutine.resume` API. A function returning `CppCoroutine` can use `co_yield` to suspend and pass a value back to Lua, and `co_return` to finish and return a final value. + +Register via `Namespace::addCoroutine`: + +```cpp +luabridge::getGlobalNamespace(L) + .addCoroutine("range", [](int from, int to) -> luabridge::CppCoroutine + { + for (int i = from; i <= to; ++i) + co_yield i; + co_return -1; // sentinel value when the range is exhausted + }); +``` + +From Lua, use `coroutine.wrap` to create a callable iterator: + +```lua +local gen = coroutine.wrap(range) +local v = gen(1, 5) -- first call passes arguments; yields 1 +while v ~= -1 do + print(v) -- 1, 2, 3, 4, 5 + v = gen() -- subsequent calls resume without arguments +end +``` + +`CppCoroutine` is also supported for coroutines that produce no values: + +```cpp +.addCoroutine("doWork", []() -> luabridge::CppCoroutine +{ + performStep1(); + co_return; +}); +``` + +An abandoned coroutine (one that goes out of scope in Lua without being fully consumed) is automatically cleaned up by the Lua garbage collector — no manual resource management is needed. + +### 2.9.2 - Accepting Arguments + +The factory lambda receives the Lua call arguments on first invocation. A `lua_State*` parameter, if present, must be the **first** parameter and receives the running Lua thread: + +```cpp +.addCoroutine("adder", [](int a, int b) -> luabridge::CppCoroutine +{ + co_yield a + b; // first resume yields the sum + co_return a * b; // second resume returns the product +}); +``` + +```lua +local f = coroutine.wrap(adder) +print(f(3, 4)) -- 7 (yield: 3+4) +print(f()) -- 12 (return: 3*4) +``` + +Multiple independent instances of the same coroutine factory can run concurrently — each call to `coroutine.wrap(name)` creates a separate C++ coroutine frame: + +```lua +local a = coroutine.wrap(adder) +local b = coroutine.wrap(adder) +a(1, 2) -- independent from b +b(10, 20) +``` + +### 2.9.3 - LuaCoroutine — Awaiting a Lua Thread from C++ + +`luabridge::LuaCoroutine` is an awaitable that can be used inside a `CppCoroutine` body to resume a child Lua thread synchronously. It runs the child thread to its first yield or return and gives back the status and the number of values the child left on its stack: + +```cpp +.addCoroutine("driver", [](lua_State* L) -> luabridge::CppCoroutine +{ + // Spawn a child Lua thread and anchor it in the registry so the GC + // doesn't collect it while we hold a pointer to it. + lua_State* child = lua_newthread(L); + int ref = luaL_ref(L, LUA_REGISTRYINDEX); // pops thread from L's stack + + lua_getglobal(child, "luaGenerator"); + + // Resume the child synchronously; suspends this C++ coroutine until done. + auto [status, nresults] = co_await luabridge::LuaCoroutine{ child, L }; + + int value = (nresults > 0) ? static_cast(lua_tointeger(child, -nresults)) : 0; + + luaL_unref(L, LUA_REGISTRYINDEX, ref); + co_return value; +}); +``` + +`LuaCoroutine` always completes synchronously (no external event loop is required). The `status` field contains `LUA_YIELD` if the child yielded or `LUA_OK` if it returned normally. + +### 2.9.4 - Limitations + +* **Lua version:** Requires Lua 5.2+ (`lua_yieldk`). Not supported on Lua 5.1, LuaJIT, or Luau. +* **C++ version:** Requires C++20 (``). Non-coroutine features continue to work under C++17. +* **Multi-value yield:** `co_yield` sends exactly one value per suspension. Use `std::tuple` or a struct if multiple values are needed. +* **Thread safety:** Coroutine frames must be driven from a single OS thread. +* **Instance methods:** `addCoroutine` is available on `Namespace`; registering coroutine-returning member functions on `Class` is not yet supported. + 3 - Passing Objects =================== @@ -1965,6 +2078,30 @@ Override the default when you need fine-grained control: #include ``` +6.5 - LUABRIDGE_HAS_CXX20_COROUTINES / LUABRIDGE_DISABLE_CXX20_COROUTINES +-------------------------------------------------------------------------- + +**`LUABRIDGE_HAS_CXX20_COROUTINES` — auto-detected, override allowed** + +LuaBridge3 automatically enables C++20 coroutine support when it detects a C++20 compiler (`__cplusplus >= 202002L` or MSVC `_HAS_CXX20`). The macro is set to `1` when the feature is active and `0` otherwise. + +You can force the feature **off** by defining `LUABRIDGE_DISABLE_CXX20_COROUTINES` before including any LuaBridge header: + +```cpp +#define LUABRIDGE_DISABLE_CXX20_COROUTINES +#include +``` + +You can also override the detection result explicitly: + +```cpp +#define LUABRIDGE_HAS_CXX20_COROUTINES 0 // force off +#define LUABRIDGE_HAS_CXX20_COROUTINES 1 // force on (must actually have C++20) +#include +``` + +Attempting to use coroutine integration on Lua 5.1, LuaJIT, or Luau will emit a compile-time `#error` unless `LUABRIDGE_DISABLE_COROUTINE_INTEGRATION` is also defined. + Appendix - API Reference ======================== @@ -2360,3 +2497,36 @@ TypeResult get (lua_State* L, int index); /// Checks if the Lua value at the index is convertible into the C++ value of the type T. bool isInstance (lua_State* L, int index); ``` + +C++20 Coroutine Types (requires `LUABRIDGE_HAS_CXX20_COROUTINES`) +----------------------------------------------------------------- + +```cpp +/// Coroutine return type for C++ generators callable from Lua. +/// R may be any LuaBridge-registered type, or void. +template +struct CppCoroutine; + +/// Awaitable wrapper for a Lua thread. Use inside a CppCoroutine body with co_await. +/// Resumes the child thread synchronously and returns {status, nresults}. +class LuaCoroutine +{ +public: + /// thread — the Lua thread to resume. + /// from — the calling Lua state (typically L inside the coroutine body). + LuaCoroutine(lua_State* thread, lua_State* from = nullptr) noexcept; + + std::pair await_resume() noexcept; // returns {status, nresults} +}; + +/// Register a CppCoroutine factory in a namespace (available on Namespace). +/// F must be a callable whose return type is CppCoroutine. +template +Namespace& addCoroutine(const char* name, F factory); + +/// Portable lua_resume wrapper — fills *nresults on all Lua versions (5.1–5.5). +int lua_resume_x(lua_State* L, lua_State* from, int nargs, int* nresults = nullptr); + +/// Returns true if the current C function can yield via lua_yieldk. +bool lua_isyieldable_x(lua_State* L); +``` diff --git a/README.md b/README.md index de6e820e..31755614 100644 --- a/README.md +++ b/README.md @@ -35,8 +35,11 @@ [LuaBridge3](https://github.com/kunitoki/LuaBridge3) is a lightweight and dependency-free library for mapping data, functions, and classes back and forth between C++ and [Lua](http://wwww.lua.org) (a powerful, fast, lightweight, embeddable scripting language). LuaBridge has been tested -and works with Lua 5.1.5, 5.2.4, 5.3.6, 5.4.8 and 5.5.0 as well as [LuaJit](https://luajit.org/) 2.1 onwards -and for the first time also with [Luau](https://luau-lang.org/) 0.713 onwards and [Ravi](https://github.com/dibyendumajumdar/ravi) 1.0-beta11. +and works with: +* [PUC-Lua](https://lua.org) 5.1.5, 5.2.4, 5.3.6, 5.4.8 and 5.5.0 +* [LuaJit](https://luajit.org/) 2.1 +* [Luau](https://luau-lang.org/) 0.713 +* [Ravi](https://github.com/dibyendumajumdar/ravi) 1.0-beta11 ## Features @@ -87,6 +90,7 @@ LuaBridge3 offers a set of improvements compared to vanilla LuaBridge: * Consistent numeric handling and conversions (signed, unsigned and floats) across all lua versions. * NaN and Inf values pass through floating-point stack conversions without error. * Simplified registration of enum types via the `luabridge::Enum` stack wrapper. +* C++20 coroutine integration via `addCoroutine()` and `CppCoroutine`; await Lua threads from C++ with `LuaCoroutine`. * Opt-out handling of safe stack space checks (automatically avoids exhausting lua stack space when pushing values!). * Optional strict stack conversions via `LUABRIDGE_STRICT_STACK_CONVERSIONS` (e.g. `bool` requires an actual boolean, not any truthy value). * Error handler support in Lua calls via `LuaRef::callWithHandler` and `luabridge::callWithHandler`. diff --git a/Source/LuaBridge/LuaBridge.h b/Source/LuaBridge/LuaBridge.h index 2e5d6e0d..ede78604 100644 --- a/Source/LuaBridge/LuaBridge.h +++ b/Source/LuaBridge/LuaBridge.h @@ -18,6 +18,7 @@ #include "detail/CFunctions.h" #include "detail/ClassInfo.h" +#include "detail/Coroutine.h" #include "detail/Enum.h" #include "detail/Errors.h" #include "detail/Expected.h" diff --git a/Source/LuaBridge/detail/Config.h b/Source/LuaBridge/detail/Config.h index 786a12aa..412f9456 100644 --- a/Source/LuaBridge/detail/Config.h +++ b/Source/LuaBridge/detail/Config.h @@ -12,6 +12,20 @@ #error LuaBridge 3 requires a compliant C++17 compiler, or C++17 has not been enabled ! #endif +/** + * @brief Enable C++20 coroutine integration with Lua coroutines. + * + * Requires C++20 and Lua 5.2+ (lua_yieldk). Not supported on Lua 5.1, LuaJIT, or Luau. + * Define LUABRIDGE_DISABLE_CXX20_COROUTINES to force-disable even when C++20 is available. + */ +#if !defined(LUABRIDGE_HAS_CXX20_COROUTINES) +#if !defined(LUABRIDGE_DISABLE_CXX20_COROUTINES) && (__cplusplus >= 202002L || (defined(_MSC_VER) && _HAS_CXX20)) +#define LUABRIDGE_HAS_CXX20_COROUTINES 1 +#else +#define LUABRIDGE_HAS_CXX20_COROUTINES 0 +#endif +#endif + #if !defined(LUABRIDGE_HAS_EXCEPTIONS) #if defined(_MSC_VER) #if _CPPUNWIND || _HAS_EXCEPTIONS diff --git a/Source/LuaBridge/detail/Coroutine.h b/Source/LuaBridge/detail/Coroutine.h new file mode 100644 index 00000000..f3bd3585 --- /dev/null +++ b/Source/LuaBridge/detail/Coroutine.h @@ -0,0 +1,486 @@ +// https://github.com/kunitoki/LuaBridge3 +// Copyright 2026, kunitoki +// SPDX-License-Identifier: MIT + +#pragma once + +#include "Config.h" +#include "CFunctions.h" +#include "Errors.h" +#include "LuaHelpers.h" +#include "Stack.h" + +#if LUABRIDGE_HAS_CXX20_COROUTINES + +#if LUABRIDGE_ON_LUAJIT || LUA_VERSION_NUM == 501 || LUABRIDGE_ON_LUAU +#ifndef LUABRIDGE_DISABLE_COROUTINE_INTEGRATION +#error "C++20 coroutine integration requires Lua 5.2+ with lua_yieldk support. \ +Define LUABRIDGE_DISABLE_COROUTINE_INTEGRATION to suppress this error." +#endif +#else + +#include +#include +#include +#include + +namespace luabridge { + +//================================================================================================= +/** + * @brief A C++20 coroutine type callable from Lua. + * + * Register instances via Namespace::addCoroutine(). When called from Lua, the coroutine body + * runs until the first co_yield (which yields a value back to Lua) or co_return (which + * returns a final value). Subsequent Lua resumes continue the body from the last suspension point. + * + * @tparam R The type yielded/returned by the coroutine. May be void. + * + * Example: + * @code + * luabridge::getGlobalNamespace(L) + * .addCoroutine("range", [](int start, int stop) -> luabridge::CppCoroutine { + * for (int i = start; i < stop; ++i) + * co_yield i; + * co_return -1; + * }); + * @endcode + * + * @note Requires Lua 5.2+ (lua_yieldk). Not supported on Lua 5.1, LuaJIT, or Luau. + * @note Not thread-safe. Must be driven from a single OS thread. + */ +template +struct CppCoroutine +{ + struct promise_type + { + lua_State* L = nullptr; + int nresults = 0; + bool is_done = false; + std::exception_ptr exception; + + std::suspend_always initial_suspend() noexcept { return {}; } + std::suspend_always final_suspend() noexcept { return {}; } + + void unhandled_exception() noexcept + { + exception = std::current_exception(); + } + + std::suspend_always yield_value(const R& value) + { + nresults = 0; + if (L) + { + auto result = Stack::push(L, value); + if (result) + nresults = 1; + else + exception = std::make_exception_ptr(std::system_error(result.error())); + } + return {}; + } + + std::suspend_always yield_value(R&& value) + { + nresults = 0; + if (L) + { + auto result = Stack::push(L, std::move(value)); + if (result) + nresults = 1; + else + exception = std::make_exception_ptr(std::system_error(result.error())); + } + return {}; + } + + void return_value(const R& value) + { + nresults = 0; + if (L) + { + auto result = Stack::push(L, value); + if (result) + nresults = 1; + else + exception = std::make_exception_ptr(std::system_error(result.error())); + } + is_done = true; + } + + void return_value(R&& value) + { + nresults = 0; + if (L) + { + auto result = Stack::push(L, std::move(value)); + if (result) + nresults = 1; + else + exception = std::make_exception_ptr(std::system_error(result.error())); + } + is_done = true; + } + + CppCoroutine get_return_object() + { + return CppCoroutine{ std::coroutine_handle::from_promise(*this) }; + } + }; + + std::coroutine_handle handle; + + explicit CppCoroutine(std::coroutine_handle h) noexcept + : handle(h) + { + } + + CppCoroutine(CppCoroutine&& other) noexcept + : handle(std::exchange(other.handle, {})) + { + } + + CppCoroutine(const CppCoroutine&) = delete; + CppCoroutine& operator=(const CppCoroutine&) = delete; + ~CppCoroutine() = default; +}; + +//================================================================================================= +/** + * @brief Specialisation for void-returning coroutines. + */ +template <> +struct CppCoroutine +{ + struct promise_type + { + lua_State* L = nullptr; + int nresults = 0; + bool is_done = false; + std::exception_ptr exception; + + std::suspend_always initial_suspend() noexcept { return {}; } + std::suspend_always final_suspend() noexcept { return {}; } + + void unhandled_exception() noexcept + { + exception = std::current_exception(); + } + + void return_void() + { + nresults = 0; + is_done = true; + } + + CppCoroutine get_return_object() + { + return CppCoroutine{ std::coroutine_handle::from_promise(*this) }; + } + }; + + std::coroutine_handle handle; + + explicit CppCoroutine(std::coroutine_handle h) noexcept + : handle(h) + { + } + + CppCoroutine(CppCoroutine&& other) noexcept + : handle(std::exchange(other.handle, {})) + { + } + + CppCoroutine(const CppCoroutine&) = delete; + CppCoroutine& operator=(const CppCoroutine&) = delete; + ~CppCoroutine() = default; +}; + +//================================================================================================= +/** + * @brief An awaitable wrapper around a Lua coroutine thread. + * + * Use inside a CppCoroutine body to synchronously resume a child Lua thread and obtain + * the number of values it left on its stack (either from yield or return). + * + * @note Runs the Lua thread synchronously (no external event loop required). + */ +class LuaCoroutine +{ +public: + LuaCoroutine(lua_State* thread, lua_State* from = nullptr) noexcept + : m_thread(thread) + , m_from(from) + { + } + + bool await_ready() noexcept + { + m_status = lua_resume_x(m_thread, m_from, 0, &m_nresults); + return true; // Always ready: runs synchronously + } + + void await_suspend(std::coroutine_handle<>) noexcept + { + // Never called because await_ready always returns true + } + + /** + * @returns {status, nresults} where status is LUA_OK or LUA_YIELD, + * and nresults is the number of values on the thread's stack. + */ + std::pair await_resume() noexcept + { + return { m_status, m_nresults }; + } + +private: + lua_State* m_thread; + lua_State* m_from; + int m_status = LUABRIDGE_LUA_OK; + int m_nresults = 0; +}; + +//================================================================================================= +namespace detail { + +/** + * @brief Trait: is T a CppCoroutine specialisation? + */ +template +struct is_cpp_coroutine : std::false_type +{ +}; + +template +struct is_cpp_coroutine> : std::true_type +{ +}; + +/** + * @brief Trait: does callable F return a CppCoroutine? + */ +template +struct is_cpp_coroutine_factory : std::false_type +{ +}; + +template +struct is_cpp_coroutine_factory>::result_type>> + : is_cpp_coroutine>::result_type> +{ +}; + +template +inline constexpr bool is_cpp_coroutine_factory_v = is_cpp_coroutine_factory::value; + +//================================================================================================= +/** + * @brief RAII frame for a suspended CppCoroutine, stored as a Lua full userdata. + * + * Kept alive on the Lua thread's own stack (not in the registry) so that abandoning the + * coroutine — i.e. letting the Lua thread be collected by the GC — automatically triggers + * the __gc metamethod, which calls the destructor and destroys the coroutine handle. + */ +template +struct CppCoroutineFrame +{ + using HandleType = std::coroutine_handle; + + HandleType handle; + + explicit CppCoroutineFrame(HandleType h) noexcept + : handle(h) + { + } + + CppCoroutineFrame(const CppCoroutineFrame&) = delete; + CppCoroutineFrame& operator=(const CppCoroutineFrame&) = delete; + + ~CppCoroutineFrame() + { + if (handle && !handle.done()) + handle.destroy(); + } +}; + +//================================================================================================= +// Version-portable yield helpers. +// +// Lua 5.2: lua_yieldk ctx is int; continuation signature is (lua_State*, int) — ctx +// retrieved inside via lua_getctx(). +// Lua 5.3+: lua_yieldk ctx is lua_KContext; continuation signature is +// (lua_State*, int, lua_KContext) — ctx passed directly. + +// Forward declarations +template int coroutine_continuation_body(lua_State* L, int frame_abs_idx); + +#if LUA_VERSION_NUM < 503 +// Lua 5.2: lua_yieldk takes lua_CFunction (int(*)(lua_State*)) as continuation. +// The context is recovered inside via lua_getctx(). +template +int coroutine_continuation(lua_State* L) +{ + int frame_abs_idx = 0; + lua_getctx(L, &frame_abs_idx); + return coroutine_continuation_body(L, frame_abs_idx); +} + +template +int do_yield(lua_State* L, int nresults, int frame_abs_idx) +{ + return lua_yieldk(L, nresults, frame_abs_idx, &coroutine_continuation); +} +#else +// Lua 5.3+: continuation receives lua_KContext directly. +template +int coroutine_continuation(lua_State* L, int /*status*/, lua_KContext ctx) +{ + return coroutine_continuation_body(L, static_cast(ctx)); +} + +template +int do_yield(lua_State* L, int nresults, int frame_abs_idx) +{ + return lua_yieldk(L, nresults, static_cast(frame_abs_idx), &coroutine_continuation); +} +#endif + +//================================================================================================= +/** + * @brief Raises a Lua error from a stored C++ exception (or a generic message). + * Removes the frame userdata from the stack before raising so GC can collect it. + */ +[[noreturn]] inline void raise_from_exception(lua_State* L, int frame_abs_idx, std::exception_ptr ex) +{ + lua_settop(L, frame_abs_idx - 1); // pop frame (and any value above it) — GC will collect it + try + { + std::rethrow_exception(ex); + } + catch (const std::exception& e) + { + raise_lua_error(L, "%s", e.what()); + } + catch (...) + { + raise_lua_error(L, "unknown exception in C++ coroutine"); + } +} + +//================================================================================================= +/** + * @brief Common body for the coroutine continuation: resumes the C++ coroutine handle + * and either yields again or returns the final result. + * + * @param frame_abs_idx Absolute stack index where the CppCoroutineFrame userdata lives. + * Any resume arguments pushed above it are discarded first. + */ +template +int coroutine_continuation_body(lua_State* L, int frame_abs_idx) +{ + using CoroType = typename function_traits>::result_type; + using FrameType = CppCoroutineFrame; + + // Discard resume arguments pushed above the frame (we don't expose them to C++ yet) + lua_settop(L, frame_abs_idx); + + // Recover the frame from its stable stack position + auto* frame = align(lua_touserdata(L, frame_abs_idx)); + + // Resume the C++ coroutine body; yield_value/return_value will push at frame_abs_idx+1 + frame->handle.resume(); + + auto& promise = frame->handle.promise(); + + if (promise.exception) + raise_from_exception(L, frame_abs_idx, promise.exception); + + if (promise.is_done) + { + if (promise.nresults == 1) + lua_replace(L, frame_abs_idx); // swap return value into frame slot; pops frame userdata + else + lua_settop(L, frame_abs_idx - 1); // void: remove frame entirely + return promise.nresults; + } + + // yield_value pushed one value above the frame; yield it, keeping frame below + return do_yield(L, promise.nresults, frame_abs_idx); +} + +//================================================================================================= +/** + * @brief lua_CFunction entry point for a registered CppCoroutine factory. + * + * Upvalue 1: the factory functor F (as aligned full userdata). + * + * The CppCoroutineFrame userdata is left on the Lua thread's own stack (not in the registry). + * This means an abandoned coroutine is naturally cleaned up when the Lua thread is GC'd. + */ +template +int invoke_coroutine_entry(lua_State* L) +{ + using FnTraits = function_traits>; + using ArgsPack = typename FnTraits::argument_types; + using CoroType = typename FnTraits::result_type; + using FrameType = CppCoroutineFrame; + + LUABRIDGE_ASSERT(isfulluserdata(L, lua_upvalueindex(1))); + auto& factory = *align(lua_touserdata(L, lua_upvalueindex(1))); + + // Invoke the factory to create the coroutine object. + // The coroutine body does not run yet (initial_suspend returns suspend_always). + auto coro = invoke_callable_from_stack(L, factory); + + // Push the frame as a Lua full userdata and remember its absolute stack position. + // It is NOT pinned in the registry; keeping it on the thread's stack means GC will + // collect it (via __gc) when the Lua thread is abandoned. + lua_newuserdata_aligned(L, std::move(coro.handle)); + coro.handle = {}; // ownership transferred to frame + + int frame_abs_idx = lua_gettop(L); + auto* frame = align(lua_touserdata(L, frame_abs_idx)); + + // Give the promise access to the Lua state so yield_value/return_value can push values + frame->handle.promise().L = L; + + // First resume: runs the body to the first co_yield or co_return + frame->handle.resume(); + + auto& promise = frame->handle.promise(); + + if (promise.exception) + raise_from_exception(L, frame_abs_idx, promise.exception); + + if (promise.is_done) + { + if (promise.nresults == 1) + lua_replace(L, frame_abs_idx); // swap return value into frame slot + else + lua_settop(L, frame_abs_idx - 1); // void: remove frame + return promise.nresults; + } + + // yield_value pushed one value above the frame; yield it, keeping frame below + return do_yield(L, promise.nresults, frame_abs_idx); +} + +//================================================================================================= +/** + * @brief Pushes a CppCoroutine factory as a Lua closure onto the stack. + */ +template >> +inline void push_coroutine_function(lua_State* L, F&& f, const char* debugname) +{ + using FDecay = std::decay_t; + lua_newuserdata_aligned(L, std::forward(f)); + lua_pushcclosure_x(L, &invoke_coroutine_entry, debugname, 1); +} + +} // namespace detail +} // namespace luabridge + +#endif // !Lua 5.1 / LuaJIT / Luau +#endif // LUABRIDGE_HAS_CXX20_COROUTINES diff --git a/Source/LuaBridge/detail/Errors.h b/Source/LuaBridge/detail/Errors.h index dbfdb108..a9f091a0 100644 --- a/Source/LuaBridge/detail/Errors.h +++ b/Source/LuaBridge/detail/Errors.h @@ -35,7 +35,11 @@ enum class ErrorCode InvalidTypeCast, - InvalidTableSizeInCast + InvalidTableSizeInCast, + + CoroutineYieldFromNonCoroutine, + + CoroutineAlreadyDone }; //================================================================================================= @@ -77,6 +81,12 @@ struct ErrorCategory : std::error_category case ErrorCode::InvalidTableSizeInCast: return "The lua table has different size than expected"; + case ErrorCode::CoroutineYieldFromNonCoroutine: + return "Cannot yield from a non-coroutine Lua state"; + + case ErrorCode::CoroutineAlreadyDone: + return "The Lua coroutine has already finished execution"; + default: return "Unknown error"; } diff --git a/Source/LuaBridge/detail/LuaHelpers.h b/Source/LuaBridge/detail/LuaHelpers.h index 5bdbaf7e..daab583b 100644 --- a/Source/LuaBridge/detail/LuaHelpers.h +++ b/Source/LuaBridge/detail/LuaHelpers.h @@ -702,4 +702,55 @@ bool is_floating_point_representable_by(lua_State* L, int index) return isValid ? is_floating_point_representable_by(value) : false; } +/** + * @brief Portable wrapper for lua_resume that normalises calling convention differences + * across Lua 5.1/LuaJIT (no from, no nresults), 5.2-5.3 (from but no nresults), and 5.4+ (from + nresults). + * + * @param L The coroutine thread to resume. + * @param from The thread doing the resuming (may be nullptr on older Lua). + * @param nargs Number of arguments on L's stack to pass to the resumed function. + * @param nresults Output: number of values on L's stack after resume (yielded or returned). + * For Lua 5.4+, filled directly by lua_resume. For older versions, computed via lua_gettop. + * @returns LUA_OK, LUA_YIELD, or an error code. + */ +inline int lua_resume_x(lua_State* L, lua_State* from, int nargs, int* nresults = nullptr) +{ +#if LUABRIDGE_ON_LUAJIT || LUA_VERSION_NUM == 501 + unused(from); + int status = lua_resume(L, nargs); + if (nresults) + *nresults = lua_gettop(L); + return status; +#elif LUABRIDGE_ON_LUAU || LUABRIDGE_ON_RAVI || LUA_VERSION_NUM < 504 + int status = lua_resume(L, from, nargs); + if (nresults) + *nresults = lua_gettop(L); + return status; +#else + int nr = 0; + int status = lua_resume(L, from, nargs, &nr); + if (nresults) + *nresults = nr; + return status; +#endif +} + +/** + * @brief Returns true if the currently running C function can yield via lua_yieldk. + * + * Returns false on Lua 5.1, LuaJIT, and Luau where lua_yieldk is unavailable. + */ +inline bool lua_isyieldable_x(lua_State* L) +{ +#if LUABRIDGE_ON_LUAJIT || LUA_VERSION_NUM == 501 || LUABRIDGE_ON_LUAU + unused(L); + return false; +#elif LUA_VERSION_NUM < 503 + unused(L); + return true; // lua_yieldk exists in 5.2; assume yieldable when reached +#else + return lua_isyieldable(L) != 0; +#endif +} + } // namespace luabridge diff --git a/Source/LuaBridge/detail/Namespace.h b/Source/LuaBridge/detail/Namespace.h index 610b234b..229f8e3f 100644 --- a/Source/LuaBridge/detail/Namespace.h +++ b/Source/LuaBridge/detail/Namespace.h @@ -1900,6 +1900,34 @@ class Namespace : public detail::Registrar return *this; } +#if LUABRIDGE_HAS_CXX20_COROUTINES + //============================================================================================= + /** + * @brief Add a C++20 coroutine function to this namespace. + * + * The factory must be a callable returning CppCoroutine. When Lua calls the registered + * function, a new C++ coroutine is created and run; co_yield sends values to the Lua caller + * and co_return sends the final return value. + * + * @param name The function name to register. + * @param factory A callable returning CppCoroutine. + * + * @returns This namespace registration object. + */ + template + auto addCoroutine(const char* name, F factory) + -> std::enable_if_t, Namespace&> + { + LUABRIDGE_ASSERT(name != nullptr); + LUABRIDGE_ASSERT(lua_istable(L, -1)); // Stack: namespace table (ns) + + detail::push_coroutine_function(L, std::move(factory), name); + rawsetfield(L, -2, name); + + return *this; + } +#endif // LUABRIDGE_HAS_CXX20_COROUTINES + //============================================================================================= /** * @brief Open a new or existing table as namespace for registrations. diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index a4bef1f5..414d3a9a 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -6,11 +6,13 @@ set (LUABRIDGE_LUAJIT_LOCATION "${CMAKE_CURRENT_LIST_DIR}/Lua/LuaJIT.2.1") set (LUABRIDGE_LUAU_LOCATION "${CMAKE_CURRENT_LIST_DIR}/../ThirdParty/luau") set (LUABRIDGE_RAVI_LOCATION "${CMAKE_CURRENT_LIST_DIR}/../ThirdParty/ravi") -add_subdirectory (${LUABRIDGE_LUAJIT_LOCATION}) -add_subdirectory (${LUABRIDGE_RAVI_LOCATION} ravi) +if (NOT EMSCRIPTEN) + add_subdirectory (${LUABRIDGE_LUAJIT_LOCATION}) + add_subdirectory (${LUABRIDGE_RAVI_LOCATION} ravi) +endif () # ====================================================== Locations -if (APPLE OR UNIX) +if ((APPLE OR UNIX) AND NOT EMSCRIPTEN) include (FetchContent) FetchContent_Declare (backward GIT_REPOSITORY https://github.com/bombela/backward-cpp @@ -263,6 +265,11 @@ endfunction () macro (add_test_app LUABRIDGE_TEST_NAME LUA_VERSION LUABRIDGE_TEST_LUA_LIBRARY_FILES LUABRIDGE_EXCEPTIONS LUABRIDGE_DEFINES LUABRIDGE_LIBS) get_filename_component (SOURCE_LOCATION "${CMAKE_CURRENT_LIST_DIR}/../Source" ABSOLUTE) + set (LUABRIDGE_BUILD_SHARED_TESTS ON) + if (EMSCRIPTEN) + set (LUABRIDGE_BUILD_SHARED_TESTS OFF) + endif () + if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17 /W3 /MP /D_CRT_SECURE_NO_WARNINGS") else () @@ -270,21 +277,23 @@ macro (add_test_app LUABRIDGE_TEST_NAME LUA_VERSION LUABRIDGE_TEST_LUA_LIBRARY_F endif () # Dynamic library test - set (LUABRIDGE_TESTLIB_NAME ${LUABRIDGE_TEST_NAME}_DynamicLibrary) - add_library (${LUABRIDGE_TESTLIB_NAME} SHARED - ${LUABRIDGE_TEST_SHARED_LIBRARY_FILES} - ${LUABRIDGE_TEST_LUA_LIBRARY_FILES}) - - target_compile_definitions (${LUABRIDGE_TESTLIB_NAME} PRIVATE - LUABRIDGE_TEST_SHARED_EXPORT=1 - ${LUABRIDGE_DEFINES}) - - target_include_directories (${LUABRIDGE_TESTLIB_NAME} PRIVATE - ${CMAKE_CURRENT_LIST_DIR} - ${SOURCE_LOCATION} - Source) - - list (APPEND LUABRIDGE_TEST_SOURCE_FILES Source/DynamicLibraryTests.cpp) + if (LUABRIDGE_BUILD_SHARED_TESTS) + set (LUABRIDGE_TESTLIB_NAME ${LUABRIDGE_TEST_NAME}_DynamicLibrary) + add_library (${LUABRIDGE_TESTLIB_NAME} SHARED + ${LUABRIDGE_TEST_SHARED_LIBRARY_FILES} + ${LUABRIDGE_TEST_LUA_LIBRARY_FILES}) + + target_compile_definitions (${LUABRIDGE_TESTLIB_NAME} PRIVATE + LUABRIDGE_TEST_SHARED_EXPORT=1 + ${LUABRIDGE_DEFINES}) + + target_include_directories (${LUABRIDGE_TESTLIB_NAME} PRIVATE + ${CMAKE_CURRENT_LIST_DIR} + ${SOURCE_LOCATION} + Source) + + list (APPEND LUABRIDGE_TEST_SOURCE_FILES Source/DynamicLibraryTests.cpp) + endif () # Main binary test add_executable (${LUABRIDGE_TEST_NAME} @@ -295,6 +304,11 @@ macro (add_test_app LUABRIDGE_TEST_NAME LUA_VERSION LUABRIDGE_TEST_LUA_LIBRARY_F target_compile_definitions (${LUABRIDGE_TEST_NAME} PRIVATE ${LUABRIDGE_DEFINES}) + if (EMSCRIPTEN AND ${LUABRIDGE_EXCEPTIONS}) + target_compile_options (${LUABRIDGE_TEST_NAME} PRIVATE -fexceptions) + target_link_options (${LUABRIDGE_TEST_NAME} PRIVATE -fexceptions) + endif () + if (LUABRIDGE_COVERAGE) setup_target_for_coverage (${LUABRIDGE_TEST_NAME} ${SOURCE_LOCATION} LuaBridge) endif () @@ -321,8 +335,10 @@ macro (add_test_app LUABRIDGE_TEST_NAME LUA_VERSION LUABRIDGE_TEST_LUA_LIBRARY_F endif () target_compile_options (${LUABRIDGE_TEST_NAME} PRIVATE ${LUABRIDGE_SANITIZE_FLAGS}) target_link_options (${LUABRIDGE_TEST_NAME} PRIVATE -fsanitize=${LUABRIDGE_SANITIZE}) - target_compile_options (${LUABRIDGE_TESTLIB_NAME} PRIVATE ${LUABRIDGE_SANITIZE_FLAGS}) - target_link_options (${LUABRIDGE_TESTLIB_NAME} PRIVATE -fsanitize=${LUABRIDGE_SANITIZE}) + if (LUABRIDGE_BUILD_SHARED_TESTS) + target_compile_options (${LUABRIDGE_TESTLIB_NAME} PRIVATE ${LUABRIDGE_SANITIZE_FLAGS}) + target_link_options (${LUABRIDGE_TESTLIB_NAME} PRIVATE -fsanitize=${LUABRIDGE_SANITIZE}) + endif () endif () endif () @@ -337,32 +353,42 @@ macro (add_test_app LUABRIDGE_TEST_NAME LUA_VERSION LUABRIDGE_TEST_LUA_LIBRARY_F target_include_directories (${LUABRIDGE_TEST_NAME} PRIVATE "${LUABRIDGE_LUAU_LOCATION}/Compiler/include") target_include_directories (${LUABRIDGE_TEST_NAME} PRIVATE "${LUABRIDGE_LUAU_LOCATION}/Common/include") target_compile_definitions (${LUABRIDGE_TEST_NAME} PRIVATE LUABRIDGE_TEST_LUAU=1) - target_include_directories (${LUABRIDGE_TESTLIB_NAME} PRIVATE "${LUABRIDGE_LUAU_LOCATION}/VM/include") - target_include_directories (${LUABRIDGE_TESTLIB_NAME} PRIVATE "${LUABRIDGE_LUAU_LOCATION}/Ast/include") - target_include_directories (${LUABRIDGE_TESTLIB_NAME} PRIVATE "${LUABRIDGE_LUAU_LOCATION}/Compiler/include") - target_include_directories (${LUABRIDGE_TESTLIB_NAME} PRIVATE "${LUABRIDGE_LUAU_LOCATION}/Common/include") - target_compile_definitions (${LUABRIDGE_TESTLIB_NAME} PRIVATE LUABRIDGE_TEST_LUAU=1) + if (LUABRIDGE_BUILD_SHARED_TESTS) + target_include_directories (${LUABRIDGE_TESTLIB_NAME} PRIVATE "${LUABRIDGE_LUAU_LOCATION}/VM/include") + target_include_directories (${LUABRIDGE_TESTLIB_NAME} PRIVATE "${LUABRIDGE_LUAU_LOCATION}/Ast/include") + target_include_directories (${LUABRIDGE_TESTLIB_NAME} PRIVATE "${LUABRIDGE_LUAU_LOCATION}/Compiler/include") + target_include_directories (${LUABRIDGE_TESTLIB_NAME} PRIVATE "${LUABRIDGE_LUAU_LOCATION}/Common/include") + target_compile_definitions (${LUABRIDGE_TESTLIB_NAME} PRIVATE LUABRIDGE_TEST_LUAU=1) + endif () elseif (${LUA_VERSION} STREQUAL "LUAJIT") target_compile_definitions (${LUABRIDGE_TEST_NAME} PRIVATE LUABRIDGE_TEST_LUAJIT=1) - target_compile_definitions (${LUABRIDGE_TESTLIB_NAME} PRIVATE LUABRIDGE_TEST_LUAJIT=1) + if (LUABRIDGE_BUILD_SHARED_TESTS) + target_compile_definitions (${LUABRIDGE_TESTLIB_NAME} PRIVATE LUABRIDGE_TEST_LUAJIT=1) + endif () elseif (${LUA_VERSION} STREQUAL "RAVI") target_compile_definitions (${LUABRIDGE_TEST_NAME} PRIVATE LUABRIDGE_TEST_RAVI=1) - target_compile_definitions (${LUABRIDGE_TESTLIB_NAME} PRIVATE LUABRIDGE_TEST_RAVI=1) + if (LUABRIDGE_BUILD_SHARED_TESTS) + target_compile_definitions (${LUABRIDGE_TESTLIB_NAME} PRIVATE LUABRIDGE_TEST_RAVI=1) + endif () else () # if(${LUA_VERSION} MATCHES "^[0-9]*") target_compile_definitions (${LUABRIDGE_TEST_NAME} PRIVATE LUABRIDGE_TEST_LUA_VERSION=${LUA_VERSION}) - target_compile_definitions (${LUABRIDGE_TESTLIB_NAME} PRIVATE LUABRIDGE_TEST_LUA_VERSION=${LUA_VERSION}) + if (LUABRIDGE_BUILD_SHARED_TESTS) + target_compile_definitions (${LUABRIDGE_TESTLIB_NAME} PRIVATE LUABRIDGE_TEST_LUA_VERSION=${LUA_VERSION}) + endif () endif () - if (WIN32) - set (LUABRIDGE_TEST_SHARED_LIBRARY "${LUABRIDGE_TESTLIB_NAME}.dll") - elseif (APPLE) - set (LUABRIDGE_TEST_SHARED_LIBRARY "lib${LUABRIDGE_TESTLIB_NAME}.dylib") - else () - set (LUABRIDGE_TEST_SHARED_LIBRARY "lib${LUABRIDGE_TESTLIB_NAME}.so") + if (LUABRIDGE_BUILD_SHARED_TESTS) + if (WIN32) + set (LUABRIDGE_TEST_SHARED_LIBRARY "${LUABRIDGE_TESTLIB_NAME}.dll") + elseif (APPLE) + set (LUABRIDGE_TEST_SHARED_LIBRARY "lib${LUABRIDGE_TESTLIB_NAME}.dylib") + else () + set (LUABRIDGE_TEST_SHARED_LIBRARY "lib${LUABRIDGE_TESTLIB_NAME}.so") + endif () + target_compile_definitions (${LUABRIDGE_TEST_NAME} PRIVATE + LUABRIDGE_TEST_SHARED_LIBRARY="${LUABRIDGE_TEST_SHARED_LIBRARY}" + LUABRIDGE_TEST_SHARED_EXPORT=0) endif () - target_compile_definitions (${LUABRIDGE_TEST_NAME} PRIVATE - LUABRIDGE_TEST_SHARED_LIBRARY="${LUABRIDGE_TEST_SHARED_LIBRARY}" - LUABRIDGE_TEST_SHARED_EXPORT=0) if (NOT ${LUABRIDGE_EXCEPTIONS}) target_compile_definitions (${LUABRIDGE_TEST_NAME} PRIVATE LUA_USE_LONGJMP=1) @@ -377,19 +403,23 @@ macro (add_test_app LUABRIDGE_TEST_NAME LUA_VERSION LUABRIDGE_TEST_LUA_LIBRARY_F endif () endif () - if (APPLE OR UNIX) + if ((APPLE OR UNIX) AND NOT EMSCRIPTEN) set (LUABRIDGE_TEST_ADDITIONAL_LIBS Backward::Backward) else() set (LUABRIDGE_TEST_ADDITIONAL_LIBS "") endif() target_link_libraries (${LUABRIDGE_TEST_NAME} PRIVATE LuaBridge gtest ${LUABRIDGE_TEST_ADDITIONAL_LIBS} ${CMAKE_DL_LIBS}) - add_dependencies (${LUABRIDGE_TEST_NAME} ${LUABRIDGE_TESTLIB_NAME}) + if (LUABRIDGE_BUILD_SHARED_TESTS) + add_dependencies (${LUABRIDGE_TEST_NAME} ${LUABRIDGE_TESTLIB_NAME}) + endif () if ("${LUABRIDGE_LIBS}" STREQUAL "") else () target_link_libraries (${LUABRIDGE_TEST_NAME} PRIVATE ${LUABRIDGE_LIBS}) - target_link_libraries (${LUABRIDGE_TESTLIB_NAME} PRIVATE ${LUABRIDGE_LIBS}) + if (LUABRIDGE_BUILD_SHARED_TESTS) + target_link_libraries (${LUABRIDGE_TESTLIB_NAME} PRIVATE ${LUABRIDGE_LIBS}) + endif () endif () add_test(NAME ${LUABRIDGE_TEST_NAME} COMMAND ${LUABRIDGE_TEST_NAME}) @@ -428,13 +458,17 @@ add_test_app (LuaBridgeTests55LuaC 505 "${LUABRIDGE_TEST_LUA55_C_FILES}" 1 "${LU add_test_app (LuaBridgeTests55Noexcept 505 "${LUABRIDGE_TEST_LUA55_FILES}" 0 "" "") add_test_app (LuaBridgeTests55LuaCNoexcept 505 "${LUABRIDGE_TEST_LUA55_C_FILES}" 0 "${LUABRIDGE_LUA_C_DEFINES}" "") -add_test_app (LuaBridgeTestsLuaJIT "LUAJIT" "${LUABRIDGE_TEST_LUAJIT_FILES}" 1 "" "liblua-static") -add_test_app (LuaBridgeTestsLuaJITNoexcept "LUAJIT" "${LUABRIDGE_TEST_LUAJIT_FILES}" 0 "" "liblua-static") +if (NOT EMSCRIPTEN) + add_test_app (LuaBridgeTestsLuaJIT "LUAJIT" "${LUABRIDGE_TEST_LUAJIT_FILES}" 1 "" "liblua-static") + add_test_app (LuaBridgeTestsLuaJITNoexcept "LUAJIT" "${LUABRIDGE_TEST_LUAJIT_FILES}" 0 "" "liblua-static") +endif () add_test_app (LuaBridgeTestsLuau "LUAU" "${LUABRIDGE_TEST_LUAU_FILES}" 1 "" "") #add_test_app (LuaBridgeTestsLuauNoexcept "LUAU" "${LUABRIDGE_TEST_LUAU_FILES}" 0 "" "") -add_test_app (LuaBridgeTestsRavi "RAVI" "${LUABRIDGE_TEST_RAVI_FILES}" 1 "${LUABRIDGE_LUA_C_DEFINES}" "libravi") +if (NOT EMSCRIPTEN) + add_test_app (LuaBridgeTestsRavi "RAVI" "${LUABRIDGE_TEST_RAVI_FILES}" 1 "${LUABRIDGE_LUA_C_DEFINES}" "libravi") +endif () #add_test_app (LuaBridgeTestsRaviNoexcept "RAVI" "${LUABRIDGE_TEST_RAVI_FILES}" 0 "" "libravi") if (LUABRIDGE_COVERAGE) diff --git a/Tests/Source/CoroutineTests.cpp b/Tests/Source/CoroutineTests.cpp index aa63b5ef..d09a8e4b 100644 --- a/Tests/Source/CoroutineTests.cpp +++ b/Tests/Source/CoroutineTests.cpp @@ -4,20 +4,6 @@ #include "TestBase.h" -namespace { -int lua_resume_x(lua_State* L, int nargs) -{ -#if LUABRIDGE_ON_LUAJIT || LUA_VERSION_NUM == 501 - return lua_resume(L, nargs); -#elif LUABRIDGE_ON_LUAU || LUABRIDGE_ON_RAVI || LUA_VERSION_NUM < 504 - return lua_resume(L, nullptr, nargs); -#else - [[maybe_unused]] int nresults = 0; - return lua_resume(L, nullptr, nargs, &nresults); -#endif -} -} // namespace - struct CoroutineTests : TestBase { }; @@ -109,7 +95,7 @@ TEST_F(CoroutineTests, LuaRefPushInDifferentThread) } { - auto result = lua_resume_x(thread1, 0); + auto result = luabridge::lua_resume_x(thread1, nullptr, 0); ASSERT_EQ(LUA_YIELD, result); EXPECT_EQ(1, lua_gettop(thread1)); @@ -123,7 +109,7 @@ TEST_F(CoroutineTests, LuaRefPushInDifferentThread) } { - auto result = lua_resume_x(thread2, 0); + auto result = luabridge::lua_resume_x(thread2, nullptr, 0); ASSERT_EQ(LUA_YIELD, result); EXPECT_EQ(1, lua_gettop(thread2)); @@ -175,7 +161,7 @@ TEST_F(CoroutineTests, ThreadedRegistration) lua_rawgeti(thread1, LUA_REGISTRYINDEX, scriptRef); { - auto result = lua_resume_x(thread1, 0); + auto result = luabridge::lua_resume_x(thread1, nullptr, 0); ASSERT_EQ(LUABRIDGE_LUA_OK, result); } @@ -206,3 +192,574 @@ TEST_F(CoroutineTests, ThreadedRegistration) EXPECT_FALSE(runLua("x = SomeClass(42)", thread2)); #endif } + +//============================================================================= +// C++20 coroutine tests +//============================================================================= +#if LUABRIDGE_HAS_CXX20_COROUTINES + +struct CppCoroutineTests : TestBase +{ +}; + +TEST_F(CppCoroutineTests, SingleYield) +{ + luabridge::getGlobalNamespace(L) + .addCoroutine("gen", []() -> luabridge::CppCoroutine + { + co_yield 42; + co_return 0; + }); + + // coroutine.wrap returns a function; each call resumes + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(gen)\n" + "first = f()\n" // first resume: yields 42 + "second = f()\n" // second resume: returns 0 + )); + + EXPECT_EQ(42, luabridge::getGlobal(L, "first").unsafe_cast()); + EXPECT_EQ(0, luabridge::getGlobal(L, "second").unsafe_cast()); +} + +TEST_F(CppCoroutineTests, MultipleYields) +{ + luabridge::getGlobalNamespace(L) + .addCoroutine("counter", []() -> luabridge::CppCoroutine + { + co_yield 1; + co_yield 2; + co_yield 3; + co_return -1; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(counter)\n" + "a = f()\n" + "b = f()\n" + "c = f()\n" + "d = f()\n" + )); + + EXPECT_EQ(1, luabridge::getGlobal(L, "a").unsafe_cast()); + EXPECT_EQ(2, luabridge::getGlobal(L, "b").unsafe_cast()); + EXPECT_EQ(3, luabridge::getGlobal(L, "c").unsafe_cast()); + EXPECT_EQ(-1, luabridge::getGlobal(L, "d").unsafe_cast()); +} + +TEST_F(CppCoroutineTests, ReturnWithNoYield) +{ + luabridge::getGlobalNamespace(L) + .addCoroutine("immediate", []() -> luabridge::CppCoroutine + { + co_return 99; + }); + + // No yield — coroutine.wrap returns 99 on the first (and only) call + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(immediate)\n" + "result = f()\n" + )); + + EXPECT_EQ(99, luabridge::getGlobal(L, "result").unsafe_cast()); +} + +TEST_F(CppCoroutineTests, CoroutineWithArguments) +{ + luabridge::getGlobalNamespace(L) + .addCoroutine("adder", [](int a, int b) -> luabridge::CppCoroutine + { + co_yield a + b; + co_return a * b; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(adder)\n" + "s = f(3, 4)\n" // yield: 3+4=7 + "p = f()\n" // return: 3*4=12 + )); + + EXPECT_EQ(7, luabridge::getGlobal(L, "s").unsafe_cast()); + EXPECT_EQ(12, luabridge::getGlobal(L, "p").unsafe_cast()); +} + +TEST_F(CppCoroutineTests, VoidCoroutine) +{ + int sideEffect = 0; + + luabridge::getGlobalNamespace(L) + .addCoroutine("doWork", [&sideEffect]() -> luabridge::CppCoroutine + { + sideEffect = 1; + co_return; + }); + + ASSERT_TRUE(runLua("doWork = coroutine.wrap(doWork)\ndoWork()")); + EXPECT_EQ(1, sideEffect); +} + +TEST_F(CppCoroutineTests, StringYield) +{ + luabridge::getGlobalNamespace(L) + .addCoroutine("greet", []() -> luabridge::CppCoroutine + { + co_yield std::string("hello"); + co_return std::string("world"); + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(greet)\n" + "g1 = f()\n" + "g2 = f()\n" + )); + + EXPECT_EQ("hello", luabridge::getGlobal(L, "g1").unsafe_cast()); + EXPECT_EQ("world", luabridge::getGlobal(L, "g2").unsafe_cast()); +} + +#if LUABRIDGE_HAS_EXCEPTIONS +TEST_F(CppCoroutineTests, ExceptionInCoroutine) +{ + luabridge::getGlobalNamespace(L) + .addCoroutine("boom", []() -> luabridge::CppCoroutine + { + throw std::runtime_error("coroutine error"); + co_return 0; + }); + + ASSERT_TRUE(runLua( + "local ok, err = pcall(coroutine.wrap(boom))\n" + "success = ok\n" + "errmsg = err\n" + )); + + EXPECT_FALSE(luabridge::getGlobal(L, "success").unsafe_cast()); + auto msg = luabridge::getGlobal(L, "errmsg").unsafe_cast(); + EXPECT_NE(std::string::npos, msg.find("coroutine error")); +} + +TEST_F(CppCoroutineTests, ExceptionOnSecondYield) +{ + luabridge::getGlobalNamespace(L) + .addCoroutine("boom2", []() -> luabridge::CppCoroutine + { + co_yield 1; + throw std::runtime_error("second yield error"); + co_return 0; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(boom2)\n" + "first = f()\n" // yields 1 successfully + "local ok, err = pcall(f)\n" + "success = ok\n" + "errmsg = err\n" + )); + + EXPECT_EQ(1, luabridge::getGlobal(L, "first").unsafe_cast()); + EXPECT_FALSE(luabridge::getGlobal(L, "success").unsafe_cast()); + auto msg = luabridge::getGlobal(L, "errmsg").unsafe_cast(); + EXPECT_NE(std::string::npos, msg.find("second yield error")); +} +#endif // LUABRIDGE_HAS_EXCEPTIONS + +TEST_F(CppCoroutineTests, FloatYield) +{ + luabridge::getGlobalNamespace(L) + .addCoroutine("floats", []() -> luabridge::CppCoroutine + { + co_yield 1.5f; + co_yield 2.5f; + co_return 3.5f; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(floats)\n" + "a = f()\n" + "b = f()\n" + "c = f()\n" + )); + + EXPECT_FLOAT_EQ(1.5f, luabridge::getGlobal(L, "a").unsafe_cast()); + EXPECT_FLOAT_EQ(2.5f, luabridge::getGlobal(L, "b").unsafe_cast()); + EXPECT_FLOAT_EQ(3.5f, luabridge::getGlobal(L, "c").unsafe_cast()); +} + +TEST_F(CppCoroutineTests, BoolYield) +{ + luabridge::getGlobalNamespace(L) + .addCoroutine("bools", []() -> luabridge::CppCoroutine + { + co_yield true; + co_yield false; + co_return true; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(bools)\n" + "a = f()\n" + "b = f()\n" + "c = f()\n" + )); + + EXPECT_TRUE(luabridge::getGlobal(L, "a").unsafe_cast()); + EXPECT_FALSE(luabridge::getGlobal(L, "b").unsafe_cast()); + EXPECT_TRUE(luabridge::getGlobal(L, "c").unsafe_cast()); +} + +TEST_F(CppCoroutineTests, ManyArguments) +{ + luabridge::getGlobalNamespace(L) + .addCoroutine("sum4", [](int a, int b, int c, int d) -> luabridge::CppCoroutine + { + co_yield a + b; + co_return c + d; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(sum4)\n" + "s1 = f(1, 2, 3, 4)\n" // yield: 1+2=3 + "s2 = f()\n" // return: 3+4=7 + )); + + EXPECT_EQ(3, luabridge::getGlobal(L, "s1").unsafe_cast()); + EXPECT_EQ(7, luabridge::getGlobal(L, "s2").unsafe_cast()); +} + +TEST_F(CppCoroutineTests, LuaStateArgument) +{ + luabridge::getGlobalNamespace(L) + .addCoroutine("reader", [](lua_State* LS) -> luabridge::CppCoroutine + { + lua_getglobal(LS, "magic"); + int val = static_cast(lua_tointeger(LS, -1)); + lua_pop(LS, 1); + co_return val; + }); + + ASSERT_TRUE(runLua( + "magic = 77\n" + "local f = coroutine.wrap(reader)\n" + "result = f()\n" + )); + + EXPECT_EQ(77, luabridge::getGlobal(L, "result").unsafe_cast()); +} + +TEST_F(CppCoroutineTests, FibonacciGenerator) +{ + luabridge::getGlobalNamespace(L) + .addCoroutine("fib", [](int n) -> luabridge::CppCoroutine + { + int a = 0, b = 1; + for (int i = 0; i < n; ++i) + { + co_yield a; + int tmp = a + b; + a = b; + b = tmp; + } + co_return -1; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(fib)\n" + "r0 = f(6)\n" // 0 + "r1 = f()\n" // 1 + "r2 = f()\n" // 1 + "r3 = f()\n" // 2 + "r4 = f()\n" // 3 + "r5 = f()\n" // 5 + "r6 = f()\n" // -1 (done) + )); + + EXPECT_EQ(0, luabridge::getGlobal(L, "r0").unsafe_cast()); + EXPECT_EQ(1, luabridge::getGlobal(L, "r1").unsafe_cast()); + EXPECT_EQ(1, luabridge::getGlobal(L, "r2").unsafe_cast()); + EXPECT_EQ(2, luabridge::getGlobal(L, "r3").unsafe_cast()); + EXPECT_EQ(3, luabridge::getGlobal(L, "r4").unsafe_cast()); + EXPECT_EQ(5, luabridge::getGlobal(L, "r5").unsafe_cast()); + EXPECT_EQ(-1, luabridge::getGlobal(L, "r6").unsafe_cast()); +} + +TEST_F(CppCoroutineTests, LargeYieldCount) +{ + luabridge::getGlobalNamespace(L) + .addCoroutine("counter100", []() -> luabridge::CppCoroutine + { + for (int i = 0; i < 100; ++i) + co_yield i; + co_return -1; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(counter100)\n" + "local sum = 0\n" + "for i = 0, 99 do\n" + " sum = sum + f()\n" + "end\n" + "last = f()\n" + "total = sum\n" + )); + + // sum of 0..99 = 4950 + EXPECT_EQ(4950, luabridge::getGlobal(L, "total").unsafe_cast()); + EXPECT_EQ(-1, luabridge::getGlobal(L, "last").unsafe_cast()); +} + +TEST_F(CppCoroutineTests, ConcurrentInstances) +{ + // Two independent instances of the same coroutine factory run concurrently + luabridge::getGlobalNamespace(L) + .addCoroutine("counter", []() -> luabridge::CppCoroutine + { + co_yield 1; + co_yield 2; + co_return 3; + }); + + ASSERT_TRUE(runLua( + "local a = coroutine.wrap(counter)\n" + "local b = coroutine.wrap(counter)\n" + "a1 = a()\n" // instance A: 1 + "b1 = b()\n" // instance B: 1 (independent) + "a2 = a()\n" // instance A: 2 + "b2 = b()\n" // instance B: 2 + "a3 = a()\n" // instance A: 3 + "b3 = b()\n" // instance B: 3 + )); + + EXPECT_EQ(1, luabridge::getGlobal(L, "a1").unsafe_cast()); + EXPECT_EQ(1, luabridge::getGlobal(L, "b1").unsafe_cast()); + EXPECT_EQ(2, luabridge::getGlobal(L, "a2").unsafe_cast()); + EXPECT_EQ(2, luabridge::getGlobal(L, "b2").unsafe_cast()); + EXPECT_EQ(3, luabridge::getGlobal(L, "a3").unsafe_cast()); + EXPECT_EQ(3, luabridge::getGlobal(L, "b3").unsafe_cast()); +} + +TEST_F(CppCoroutineTests, AbandonedCoroutineNoLeak) +{ + // Coroutine is created and partially iterated, then abandoned. + // The __gc metamethod on the frame userdata must clean up without crashing. + int destructed = 0; + struct Guard { int* p; ~Guard() { ++(*p); } }; + + luabridge::getGlobalNamespace(L) + .addCoroutine("guarded", [&destructed]() -> luabridge::CppCoroutine + { + Guard g{ &destructed }; + co_yield 1; + co_yield 2; + co_return 3; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(guarded)\n" + "first = f()\n" // resume once; guard is alive, suspended after first yield + // f goes out of scope here; GC will collect the coroutine frame + )); + + EXPECT_EQ(1, luabridge::getGlobal(L, "first").unsafe_cast()); + + // Force a full GC cycle to trigger __gc on the frame userdata + lua_gc(L, LUA_GCCOLLECT, 0); + lua_gc(L, LUA_GCCOLLECT, 0); + + // The Guard destructor should have run, proving the C++ frame was cleaned up + EXPECT_EQ(1, destructed); +} + +TEST_F(CppCoroutineTests, VoidCoroutineWithSideEffects) +{ + // Verify multiple void co_return paths all execute correctly + std::vector log; + + luabridge::getGlobalNamespace(L) + .addCoroutine("worker", [&log](int x) -> luabridge::CppCoroutine + { + log.push_back(x); + log.push_back(x * 2); + co_return; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(worker)\n" + "f(5)\n" + )); + + ASSERT_EQ(2u, log.size()); + EXPECT_EQ(5, log[0]); + EXPECT_EQ(10, log[1]); +} + +TEST_F(CppCoroutineTests, LuaCoroutineAwaited) +{ + // Load a Lua function that yields a value + ASSERT_TRUE(runLua( + "function luaGen()\n" + " coroutine.yield(123)\n" + "end\n" + )); + + int capturedNresults = 0; + + luabridge::getGlobalNamespace(L) + .addCoroutine("driver", [&capturedNresults](lua_State* L) -> luabridge::CppCoroutine + { + // Create a child Lua thread. lua_newthread pushes the thread onto L's stack; + // anchor it in the registry so GC won't collect it, and pop it from L's stack. + lua_State* child = lua_newthread(L); + int childRef = luaL_ref(L, LUA_REGISTRYINDEX); // pops thread from L's stack + + lua_getglobal(child, "luaGen"); + + // Resume the child Lua coroutine synchronously + auto [status, nresults] = co_await luabridge::LuaCoroutine{ child, L }; + capturedNresults = nresults; + + // The child's stack now has the yielded value + int yielded = 0; + if (nresults > 0) + yielded = static_cast(lua_tointeger(child, -nresults)); + + luaL_unref(L, LUA_REGISTRYINDEX, childRef); + co_return yielded; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(driver)\n" + "result = f()\n" + )); + + EXPECT_EQ(1, capturedNresults); + EXPECT_EQ(123, luabridge::getGlobal(L, "result").unsafe_cast()); +} + +TEST_F(CppCoroutineTests, MultipleLuaCoroutineAwaits) +{ + // C++ coroutine awaits two different Lua child threads in sequence + ASSERT_TRUE(runLua( + "function luaA() coroutine.yield(10) end\n" + "function luaB() coroutine.yield(20) end\n" + )); + + int sumResults = 0; + + luabridge::getGlobalNamespace(L) + .addCoroutine("driver2", [&sumResults](lua_State* LS) -> luabridge::CppCoroutine + { + lua_State* childA = lua_newthread(LS); + int refA = luaL_ref(LS, LUA_REGISTRYINDEX); + lua_getglobal(childA, "luaA"); + auto [stA, nA] = co_await luabridge::LuaCoroutine{ childA, LS }; + int a = (nA > 0) ? static_cast(lua_tointeger(childA, -nA)) : 0; + luaL_unref(LS, LUA_REGISTRYINDEX, refA); + + lua_State* childB = lua_newthread(LS); + int refB = luaL_ref(LS, LUA_REGISTRYINDEX); + lua_getglobal(childB, "luaB"); + auto [stB, nB] = co_await luabridge::LuaCoroutine{ childB, LS }; + int b = (nB > 0) ? static_cast(lua_tointeger(childB, -nB)) : 0; + luaL_unref(LS, LUA_REGISTRYINDEX, refB); + + sumResults = a + b; + co_return sumResults; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(driver2)\n" + "result2 = f()\n" + )); + + EXPECT_EQ(30, sumResults); + EXPECT_EQ(30, luabridge::getGlobal(L, "result2").unsafe_cast()); +} + +TEST_F(CppCoroutineTests, LuaCoroutineChildReturnsImmediately) +{ + // Child Lua thread returns a value without yielding (LUA_OK instead of LUA_YIELD) + ASSERT_TRUE(runLua( + "function luaImmediate() return 42 end\n" + )); + + int capturedStatus = -1; + int capturedN = -1; + + luabridge::getGlobalNamespace(L) + .addCoroutine("driverImm", [&capturedStatus, &capturedN](lua_State* LS) -> luabridge::CppCoroutine + { + lua_State* child = lua_newthread(LS); + int ref = luaL_ref(LS, LUA_REGISTRYINDEX); + lua_getglobal(child, "luaImmediate"); + + auto [st, n] = co_await luabridge::LuaCoroutine{ child, LS }; + capturedStatus = st; + capturedN = n; + + int val = (n > 0) ? static_cast(lua_tointeger(child, -n)) : 0; + luaL_unref(LS, LUA_REGISTRYINDEX, ref); + co_return val; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(driverImm)\n" + "immResult = f()\n" + )); + + EXPECT_EQ(LUABRIDGE_LUA_OK, capturedStatus); + EXPECT_EQ(1, capturedN); + EXPECT_EQ(42, luabridge::getGlobal(L, "immResult").unsafe_cast()); +} + +TEST_F(CppCoroutineTests, CoroutineStateCapture) +{ + // Lambda captures mutable state; verify it persists correctly across suspensions + luabridge::getGlobalNamespace(L) + .addCoroutine("stateful", [acc = 0](int step) mutable -> luabridge::CppCoroutine + { + acc += step; + co_yield acc; // acc = step + acc += step; + co_yield acc; // acc = 2*step + acc += step; + co_return acc; // acc = 3*step + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(stateful)\n" + "v1 = f(7)\n" + "v2 = f()\n" + "v3 = f()\n" + )); + + EXPECT_EQ(7, luabridge::getGlobal(L, "v1").unsafe_cast()); + EXPECT_EQ(14, luabridge::getGlobal(L, "v2").unsafe_cast()); + EXPECT_EQ(21, luabridge::getGlobal(L, "v3").unsafe_cast()); +} + +TEST_F(CppCoroutineTests, LuaIteratorPattern) +{ + // Classic Lua iterator: use C++ coroutine as the iterator function in a for-in loop + luabridge::getGlobalNamespace(L) + .addCoroutine("range", [](int from, int to) -> luabridge::CppCoroutine + { + for (int i = from; i <= to; ++i) + co_yield i; + co_return -1; // sentinel for the loop termination via nil-check isn't used here + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(range)\n" + "local sum = 0\n" + "local v = f(1, 5)\n" + "while v ~= -1 do\n" + " sum = sum + v\n" + " v = f()\n" + "end\n" + "rangeSum = sum\n" + )); + + EXPECT_EQ(15, luabridge::getGlobal(L, "rangeSum").unsafe_cast()); +} + +#endif // LUABRIDGE_HAS_CXX20_COROUTINES diff --git a/Tests/Source/TestsMain.cpp b/Tests/Source/TestsMain.cpp index 08cd2a89..0dbe8af4 100644 --- a/Tests/Source/TestsMain.cpp +++ b/Tests/Source/TestsMain.cpp @@ -4,13 +4,13 @@ #include -#if !defined(_WIN32) +#if !defined(_WIN32) && !defined(__EMSCRIPTEN__) #include #endif int main(int argc, char** argv) { -#if !defined(_WIN32) +#if !defined(_WIN32) && !defined(__EMSCRIPTEN__) backward::SignalHandling sh; #endif diff --git a/justfile b/justfile index 34916b27..88d485d5 100644 --- a/justfile +++ b/justfile @@ -3,13 +3,13 @@ default: @just -l generate: - cmake -G Xcode -B Build . + cmake -G Xcode -B Build -DLUABRIDGE_BENCHMARKS=ON . sanitize TYPE='address': cmake -G Xcode -B Build -DLUABRIDGE_SANITIZE={{TYPE}} . benchmark: - cmake -G Xcode -B Build -DLUABRIDGE_BENCHMARKS=ON . + @just generate cmake --build Build --config Release --target LuaBridge3Benchmark -j8 cmake --build Build --config Release --target LuaBridgeVanillaBenchmark -j8 cmake --build Build --config Release --target Sol3Benchmark -j8 @@ -19,10 +19,10 @@ benchmark: @just plot plot: - python3.14 Benchmarks/plot_benchmarks.py --input Build/LuaBridge3Benchmark.json Build/LuaBridgeVanillaBenchmark.json Build/Sol3Benchmark.json --output Images/benchmarks.png + uv run --with-requirements Benchmarks/requirements.txt Benchmarks/plot_benchmarks.py --input Build/*.json --output Images/benchmarks.png clean: rm -rf Build amalgamate: - python3 amalgamate.py + uv run amalgamate.py From 9412b7e37fbc2970cf541dd7a3aa0647b3807a58 Mon Sep 17 00:00:00 2001 From: kunitoki Date: Tue, 7 Apr 2026 08:21:55 +0200 Subject: [PATCH 06/10] Fix issue with coroutines --- Source/LuaBridge/detail/Config.h | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Source/LuaBridge/detail/Config.h b/Source/LuaBridge/detail/Config.h index 412f9456..7619974e 100644 --- a/Source/LuaBridge/detail/Config.h +++ b/Source/LuaBridge/detail/Config.h @@ -12,6 +12,18 @@ #error LuaBridge 3 requires a compliant C++17 compiler, or C++17 has not been enabled ! #endif +#if defined(LUAU_FASTMATH_BEGIN) +#define LUABRIDGE_ON_LUAU 1 +#elif defined(LUAJIT_VERSION) +#define LUABRIDGE_ON_LUAJIT 1 +#elif defined(RAVI_OPTION_STRING2) +#define LUABRIDGE_ON_RAVI 1 +#elif defined(LUA_VERSION_NUM) +#define LUABRIDGE_ON_LUA 1 +#else +#error "Lua headers must be included prior to LuaBridge ones" +#endif + /** * @brief Enable C++20 coroutine integration with Lua coroutines. * @@ -19,7 +31,7 @@ * Define LUABRIDGE_DISABLE_CXX20_COROUTINES to force-disable even when C++20 is available. */ #if !defined(LUABRIDGE_HAS_CXX20_COROUTINES) -#if !defined(LUABRIDGE_DISABLE_CXX20_COROUTINES) && (__cplusplus >= 202002L || (defined(_MSC_VER) && _HAS_CXX20)) +#if !defined(LUABRIDGE_DISABLE_CXX20_COROUTINES) && (__cplusplus >= 202002L || (defined(_MSC_VER) && _HAS_CXX20)) && !(LUABRIDGE_ON_LUAU || LUABRIDGE_ON_LUAJIT || LUABRIDGE_ON_RAVI || LUA_VERSION_NUM < 502) #define LUABRIDGE_HAS_CXX20_COROUTINES 1 #else #define LUABRIDGE_HAS_CXX20_COROUTINES 0 @@ -62,18 +74,6 @@ #define LUABRIDGE_NO_SANITIZE(x) #endif -#if defined(LUAU_FASTMATH_BEGIN) -#define LUABRIDGE_ON_LUAU 1 -#elif defined(LUAJIT_VERSION) -#define LUABRIDGE_ON_LUAJIT 1 -#elif defined(RAVI_OPTION_STRING2) -#define LUABRIDGE_ON_RAVI 1 -#elif defined(LUA_VERSION_NUM) -#define LUABRIDGE_ON_LUA 1 -#else -#error "Lua headers must be included prior to LuaBridge ones" -#endif - #if defined(__OBJC__) #define LUABRIDGE_ON_OBJECTIVE_C 1 #endif From 4c7653cebd1a8e237b967878f61f20485d2a501b Mon Sep 17 00:00:00 2001 From: kunitoki Date: Tue, 7 Apr 2026 08:49:50 +0200 Subject: [PATCH 07/10] Fix exceptions --- Source/CMakeLists.txt | 1 + Source/LuaBridge/detail/Coroutine.h | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index c976dead..4503fafe 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -15,6 +15,7 @@ set (LUABRIDGE_DETAIL_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/LuaBridge/detail/CFunctions.h ${CMAKE_CURRENT_SOURCE_DIR}/LuaBridge/detail/ClassInfo.h ${CMAKE_CURRENT_SOURCE_DIR}/LuaBridge/detail/Config.h + ${CMAKE_CURRENT_SOURCE_DIR}/LuaBridge/detail/Coroutine.h ${CMAKE_CURRENT_SOURCE_DIR}/LuaBridge/detail/Enum.h ${CMAKE_CURRENT_SOURCE_DIR}/LuaBridge/detail/Errors.h ${CMAKE_CURRENT_SOURCE_DIR}/LuaBridge/detail/Expected.h diff --git a/Source/LuaBridge/detail/Coroutine.h b/Source/LuaBridge/detail/Coroutine.h index f3bd3585..e7f5f183 100644 --- a/Source/LuaBridge/detail/Coroutine.h +++ b/Source/LuaBridge/detail/Coroutine.h @@ -355,6 +355,8 @@ int do_yield(lua_State* L, int nresults, int frame_abs_idx) [[noreturn]] inline void raise_from_exception(lua_State* L, int frame_abs_idx, std::exception_ptr ex) { lua_settop(L, frame_abs_idx - 1); // pop frame (and any value above it) — GC will collect it + +#if LUABRIDGE_HAS_EXCEPTIONS try { std::rethrow_exception(ex); @@ -365,8 +367,13 @@ int do_yield(lua_State* L, int nresults, int frame_abs_idx) } catch (...) { +#endif + raise_lua_error(L, "unknown exception in C++ coroutine"); + +#if LUABRIDGE_HAS_EXCEPTIONS } +#endif } //================================================================================================= From 07a585946bee238cb41438779136d779154b426d Mon Sep 17 00:00:00 2001 From: kunitoki Date: Tue, 7 Apr 2026 09:31:47 +0200 Subject: [PATCH 08/10] More tests --- Source/LuaBridge/detail/Namespace.h | 72 +++++ Tests/Source/CoroutineTests.cpp | 434 ++++++++++++++++++++++++++++ 2 files changed, 506 insertions(+) diff --git a/Source/LuaBridge/detail/Namespace.h b/Source/LuaBridge/detail/Namespace.h index 229f8e3f..3dc59f6b 100644 --- a/Source/LuaBridge/detail/Namespace.h +++ b/Source/LuaBridge/detail/Namespace.h @@ -1069,6 +1069,78 @@ class Namespace : public detail::Registrar return *this; } +#if LUABRIDGE_HAS_CXX20_COROUTINES + //========================================================================================= + /** + * @brief Add a C++20 coroutine as a static function to this class. + * + * The factory must be a callable returning CppCoroutine. When Lua calls the registered + * function, a new C++ coroutine is created and run; co_yield sends values to the Lua caller + * and co_return sends the final return value. + * + * @param name The function name to register. + * @param factory A callable returning CppCoroutine. + * + * @returns This class registration object. + */ + template + auto addStaticCoroutine(const char* name, F factory) + -> std::enable_if_t, Class&> + { + LUABRIDGE_ASSERT(name != nullptr); + assertStackState(); // Stack: const table (co), class table (cl), static table (st) + + detail::push_coroutine_function(L, std::move(factory), name); + rawsetfield(L, -2, name); // Stack: co, cl, st (into st) + + return *this; + } + + //========================================================================================= + /** + * @brief Add a C++20 coroutine as a member function to this class. + * + * The factory must be a callable whose first argument is T* or const T*, followed by any + * additional arguments, and returning CppCoroutine. When Lua calls the method on an + * object, a new C++ coroutine is created with the object as the first argument; co_yield + * sends values to the Lua caller and co_return sends the final return value. + * + * If the factory takes const T* as the first argument it is registered as a const method + * (accessible on both const and non-const objects); otherwise it is registered as a + * non-const method (accessible on non-const objects only). + * + * @param name The method name to register. + * @param factory A callable taking T* or const T* as the first argument (the object + * pointer), plus optional further arguments, returning CppCoroutine. + * + * @returns This class registration object. + */ + template + auto addCoroutine(const char* name, F factory) + -> std::enable_if_t< + detail::is_cpp_coroutine_factory_v && detail::is_proxy_member_function_v, + Class&> + { + LUABRIDGE_ASSERT(name != nullptr); + assertStackState(); // Stack: const table (co), class table (cl), static table (st) + + detail::push_coroutine_function(L, std::move(factory), name); + + if constexpr (detail::is_const_function) + { + lua_pushvalue(L, -1); // Stack: co, cl, st, func, func + rawsetfield(L, -4, name); // Stack: co, cl, st, func (sets in cl) + rawsetfield(L, -4, name); // Stack: co, cl, st (sets in co) + } + else + { + rawsetfield(L, -3, name); // Stack: co, cl, st (sets in cl) + } + + return *this; + } +#endif // LUABRIDGE_HAS_CXX20_COROUTINES + //========================================================================================= /** * @brief Add or replace a primary Constructor. diff --git a/Tests/Source/CoroutineTests.cpp b/Tests/Source/CoroutineTests.cpp index d09a8e4b..f6da60dc 100644 --- a/Tests/Source/CoroutineTests.cpp +++ b/Tests/Source/CoroutineTests.cpp @@ -762,4 +762,438 @@ TEST_F(CppCoroutineTests, LuaIteratorPattern) EXPECT_EQ(15, luabridge::getGlobal(L, "rangeSum").unsafe_cast()); } +//============================================================================= +// Class::addStaticCoroutine and Class::addCoroutine tests +//============================================================================= + +struct CppCoroutineClassTests : TestBase +{ + struct Counter + { + int value = 0; + + void increment() { ++value; } + }; +}; + +TEST_F(CppCoroutineClassTests, StaticCoroutine_Basic) +{ + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addStaticCoroutine("generate", []() -> luabridge::CppCoroutine + { + co_yield 10; + co_return 20; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(Counter.generate)\n" + "first = f()\n" + "second = f()\n" + )); + + EXPECT_EQ(10, luabridge::getGlobal(L, "first").unsafe_cast()); + EXPECT_EQ(20, luabridge::getGlobal(L, "second").unsafe_cast()); +} + +TEST_F(CppCoroutineClassTests, StaticCoroutine_WithArguments) +{ + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addStaticCoroutine("range", [](int from, int count) -> luabridge::CppCoroutine + { + for (int i = 0; i < count; ++i) + co_yield from + i; + co_return -1; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(Counter.range)\n" + "a = f(5, 3)\n" + "b = f()\n" + "c = f()\n" + "d = f()\n" + )); + + EXPECT_EQ(5, luabridge::getGlobal(L, "a").unsafe_cast()); + EXPECT_EQ(6, luabridge::getGlobal(L, "b").unsafe_cast()); + EXPECT_EQ(7, luabridge::getGlobal(L, "c").unsafe_cast()); + EXPECT_EQ(-1, luabridge::getGlobal(L, "d").unsafe_cast()); +} + +TEST_F(CppCoroutineClassTests, StaticCoroutine_VoidReturn) +{ + int sideEffect = 0; + + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addStaticCoroutine("doWork", [&sideEffect](int x) -> luabridge::CppCoroutine + { + sideEffect = x; + co_return; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(Counter.doWork)\n" + "f(42)\n" + )); + + EXPECT_EQ(42, sideEffect); +} + +TEST_F(CppCoroutineClassTests, MemberCoroutine_NonConst) +{ + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addProperty("value", &Counter::value) + .addCoroutine("generate", [](Counter* obj, int n) -> luabridge::CppCoroutine + { + for (int i = 0; i < n; ++i) + { + co_yield obj->value; + obj->increment(); + } + co_return -1; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local obj = Counter()\n" + "local f = coroutine.wrap(Counter.generate)\n" + "a = f(obj, 3)\n" + "b = f()\n" + "c = f()\n" + "d = f()\n" + "finalVal = obj.value\n" + )); + + EXPECT_EQ(0, luabridge::getGlobal(L, "a").unsafe_cast()); + EXPECT_EQ(1, luabridge::getGlobal(L, "b").unsafe_cast()); + EXPECT_EQ(2, luabridge::getGlobal(L, "c").unsafe_cast()); + EXPECT_EQ(-1, luabridge::getGlobal(L, "d").unsafe_cast()); + EXPECT_EQ(3, luabridge::getGlobal(L, "finalVal").unsafe_cast()); +} + +TEST_F(CppCoroutineClassTests, MemberCoroutine_ConstAccessible) +{ + // A const coroutine (const T* first arg) is accessible on non-const objects. + // Counter default-constructs with value=0; coroutine yields/returns computed offsets. + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addCoroutine("peek", [](const Counter* obj) -> luabridge::CppCoroutine + { + co_yield obj->value + 10; + co_return obj->value + 20; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local obj = Counter()\n" + "local f = coroutine.wrap(Counter.peek)\n" + "first = f(obj)\n" + "second = f()\n" + )); + + EXPECT_EQ(10, luabridge::getGlobal(L, "first").unsafe_cast()); + EXPECT_EQ(20, luabridge::getGlobal(L, "second").unsafe_cast()); +} + +TEST_F(CppCoroutineClassTests, MemberCoroutine_MultipleYields) +{ + // Counter default-constructs with value=0; each yield/return adds an increasing offset. + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addCoroutine("count", [](Counter* obj) -> luabridge::CppCoroutine + { + co_yield obj->value + 1; + co_yield obj->value + 2; + co_yield obj->value + 3; + co_return obj->value + 4; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local obj = Counter()\n" + "local f = coroutine.wrap(Counter.count)\n" + "a = f(obj)\n" + "b = f()\n" + "c = f()\n" + "d = f()\n" + )); + + EXPECT_EQ(1, luabridge::getGlobal(L, "a").unsafe_cast()); + EXPECT_EQ(2, luabridge::getGlobal(L, "b").unsafe_cast()); + EXPECT_EQ(3, luabridge::getGlobal(L, "c").unsafe_cast()); + EXPECT_EQ(4, luabridge::getGlobal(L, "d").unsafe_cast()); +} + +TEST_F(CppCoroutineClassTests, MemberCoroutine_VoidReturn) +{ + // Counter starts with value=0; the coroutine sets it to a known sentinel so we can verify + // the void coroutine body ran and mutated the object correctly. + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addProperty("value", &Counter::value) + .addCoroutine("stamp", [](Counter* obj) -> luabridge::CppCoroutine + { + obj->value = 77; + co_return; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local obj = Counter()\n" + "local f = coroutine.wrap(Counter.stamp)\n" + "f(obj)\n" + "result = obj.value\n" + )); + + EXPECT_EQ(77, luabridge::getGlobal(L, "result").unsafe_cast()); +} + +TEST_F(CppCoroutineClassTests, MemberCoroutine_AbandonedNoLeak) +{ + int destructed = 0; + struct Guard { int* p; ~Guard() { ++(*p); } }; + + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addCoroutine("guarded", [&destructed](Counter* /*obj*/) -> luabridge::CppCoroutine + { + Guard g{ &destructed }; + co_yield 1; + co_yield 2; + co_return 3; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local obj = Counter()\n" + "local f = coroutine.wrap(Counter.guarded)\n" + "first = f(obj)\n" + )); + + EXPECT_EQ(1, luabridge::getGlobal(L, "first").unsafe_cast()); + + lua_gc(L, LUA_GCCOLLECT, 0); + lua_gc(L, LUA_GCCOLLECT, 0); + + EXPECT_EQ(1, destructed); +} + +TEST_F(CppCoroutineClassTests, StaticCoroutine_ConcurrentInstances) +{ + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addStaticCoroutine("ticker", []() -> luabridge::CppCoroutine + { + co_yield 1; + co_yield 2; + co_return 3; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local a = coroutine.wrap(Counter.ticker)\n" + "local b = coroutine.wrap(Counter.ticker)\n" + "a1 = a()\n" + "b1 = b()\n" + "a2 = a()\n" + "b2 = b()\n" + "a3 = a()\n" + "b3 = b()\n" + )); + + EXPECT_EQ(1, luabridge::getGlobal(L, "a1").unsafe_cast()); + EXPECT_EQ(1, luabridge::getGlobal(L, "b1").unsafe_cast()); + EXPECT_EQ(2, luabridge::getGlobal(L, "a2").unsafe_cast()); + EXPECT_EQ(2, luabridge::getGlobal(L, "b2").unsafe_cast()); + EXPECT_EQ(3, luabridge::getGlobal(L, "a3").unsafe_cast()); + EXPECT_EQ(3, luabridge::getGlobal(L, "b3").unsafe_cast()); +} + +// Error / non-happy-path tests + +#if LUABRIDGE_HAS_EXCEPTIONS +TEST_F(CppCoroutineClassTests, StaticCoroutine_ExceptionOnFirstResume) +{ + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addStaticCoroutine("boom", []() -> luabridge::CppCoroutine + { + throw std::runtime_error("static coroutine error"); + co_return 0; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local ok, err = pcall(coroutine.wrap(Counter.boom))\n" + "success = ok\n" + "errmsg = err\n" + )); + + EXPECT_FALSE(luabridge::getGlobal(L, "success").unsafe_cast()); + auto msg = luabridge::getGlobal(L, "errmsg").unsafe_cast(); + EXPECT_NE(std::string::npos, msg.find("static coroutine error")); +} + +TEST_F(CppCoroutineClassTests, StaticCoroutine_ExceptionOnContinuation) +{ + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addStaticCoroutine("boom2", []() -> luabridge::CppCoroutine + { + co_yield 1; + throw std::runtime_error("static continuation error"); + co_return 0; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(Counter.boom2)\n" + "first = f()\n" + "local ok, err = pcall(f)\n" + "success = ok\n" + "errmsg = err\n" + )); + + EXPECT_EQ(1, luabridge::getGlobal(L, "first").unsafe_cast()); + EXPECT_FALSE(luabridge::getGlobal(L, "success").unsafe_cast()); + auto msg = luabridge::getGlobal(L, "errmsg").unsafe_cast(); + EXPECT_NE(std::string::npos, msg.find("static continuation error")); +} + +TEST_F(CppCoroutineClassTests, MemberCoroutine_ExceptionOnFirstResume) +{ + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addCoroutine("boom", [](Counter* /*obj*/) -> luabridge::CppCoroutine + { + throw std::runtime_error("member coroutine error"); + co_return 0; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local obj = Counter()\n" + "local ok, err = pcall(coroutine.wrap(Counter.boom), obj)\n" + "success = ok\n" + "errmsg = err\n" + )); + + EXPECT_FALSE(luabridge::getGlobal(L, "success").unsafe_cast()); + auto msg = luabridge::getGlobal(L, "errmsg").unsafe_cast(); + EXPECT_NE(std::string::npos, msg.find("member coroutine error")); +} + +TEST_F(CppCoroutineClassTests, MemberCoroutine_ExceptionOnContinuation) +{ + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addCoroutine("boom2", [](Counter* /*obj*/) -> luabridge::CppCoroutine + { + co_yield 1; + throw std::runtime_error("member continuation error"); + co_return 0; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local obj = Counter()\n" + "local f = coroutine.wrap(Counter.boom2)\n" + "first = f(obj)\n" + "local ok, err = pcall(f)\n" + "success = ok\n" + "errmsg = err\n" + )); + + EXPECT_EQ(1, luabridge::getGlobal(L, "first").unsafe_cast()); + EXPECT_FALSE(luabridge::getGlobal(L, "success").unsafe_cast()); + auto msg = luabridge::getGlobal(L, "errmsg").unsafe_cast(); + EXPECT_NE(std::string::npos, msg.find("member continuation error")); +} +#endif // LUABRIDGE_HAS_EXCEPTIONS + +TEST_F(CppCoroutineClassTests, StaticCoroutine_ResumeAfterDone) +{ + // Resuming a finished coroutine should produce an error + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addStaticCoroutine("once", []() -> luabridge::CppCoroutine + { + co_return 42; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(Counter.once)\n" + "result = f()\n" // finishes immediately + "local ok, err = pcall(f)\n" // second resume on dead coroutine + "resumeOk = ok\n" + )); + + EXPECT_EQ(42, luabridge::getGlobal(L, "result").unsafe_cast()); + EXPECT_FALSE(luabridge::getGlobal(L, "resumeOk").unsafe_cast()); +} + +TEST_F(CppCoroutineClassTests, MemberCoroutine_ResumeAfterDone) +{ + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addCoroutine("once", [](Counter* /*obj*/) -> luabridge::CppCoroutine + { + co_return 99; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local obj = Counter()\n" + "local f = coroutine.wrap(Counter.once)\n" + "result = f(obj)\n" // finishes immediately + "local ok, err = pcall(f)\n" // second resume on dead coroutine + "resumeOk = ok\n" + )); + + EXPECT_EQ(99, luabridge::getGlobal(L, "result").unsafe_cast()); + EXPECT_FALSE(luabridge::getGlobal(L, "resumeOk").unsafe_cast()); +} + +TEST_F(CppCoroutineClassTests, MemberCoroutine_WrongArgumentType) +{ + // Passing a non-object (e.g. integer) where a Counter* is expected should produce an error + luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addConstructor() + .addCoroutine("generate", [](Counter* /*obj*/) -> luabridge::CppCoroutine + { + co_return 1; + }) + .endClass(); + + ASSERT_TRUE(runLua( + "local ok, err = pcall(coroutine.wrap(Counter.generate), 42)\n" + "success = ok\n" + )); + + EXPECT_FALSE(luabridge::getGlobal(L, "success").unsafe_cast()); +} + #endif // LUABRIDGE_HAS_CXX20_COROUTINES From 3ead85e9c129be703532b3fddceffdef13279519 Mon Sep 17 00:00:00 2001 From: kunitoki Date: Tue, 7 Apr 2026 09:36:36 +0200 Subject: [PATCH 09/10] More tweaks --- Manual.md | 118 ++++++++++++++--- Tests/Source/CoroutineTests.cpp | 219 ++++++++++++++++++++++++++++++++ 2 files changed, 318 insertions(+), 19 deletions(-) diff --git a/Manual.md b/Manual.md index 946c541f..e9f74774 100644 --- a/Manual.md +++ b/Manual.md @@ -45,10 +45,11 @@ Contents * [2.8.1 - Enums](#281---enums) * [2.8.2 - lua_State](#282---lua_state) * [2.9 - C++20 Coroutine Integration](#29---c20-coroutine-integration) - * [2.9.1 - CppCoroutine\ — Generators callable from Lua](#291---cppcoroutiner----generators-callable-from-lua) + * [2.9.1 - CppCoroutine\ - Generators callable from Lua](#291---cppcoroutiner----generators-callable-from-lua) * [2.9.2 - Accepting Arguments](#292---accepting-arguments) - * [2.9.3 - LuaCoroutine — Awaiting a Lua Thread from C++](#293---luacoroutine----awaiting-a-lua-thread-from-c) - * [2.9.4 - Limitations](#294---limitations) + * [2.9.3 - Class Coroutines - Static and Member](#293---class-coroutines----static-and-member) + * [2.9.4 - LuaCoroutine - Awaiting a Lua Thread from C++](#294---luacoroutine----awaiting-a-lua-thread-from-c) + * [2.9.5 - Limitations](#295---limitations) * [3 - Passing Objects](#3---passing-objects) @@ -135,7 +136,7 @@ To expose Lua objects to C++, a class called `luabridge::LuaRef` is provided. Th LuaBridge tries to be efficient as possible when creating the "glue" that exposes C++ data and functions to Lua. At the same time, the code was written with the intention that it is all as simple and clear as possible, without resorting to obscure C++ idioms, ugly preprocessor macros, or configuration settings. Furthermore, it is designed to be "header-only", making it very easy to integrate into your projects. -Because LuaBridge was written with simplicity in mind there are some features that are not available. LuaBridge3 has been extensively optimized and now competes directly with [sol2](https://github.com/ThePhD/sol2) — one of the fastest C++/Lua binding libraries — across most workloads. In fact, LuaBridge3 outperforms sol2 in certain scenarios such as member function calls from Lua and global table writes, while remaining more compact and faster to compile. While sol2 has an edge in chained table access, the overall performance gap is negligible for most use cases. LuaBridge3 also does not try to implement every possible feature: [LuaBind](http://www.rasterbar.com/products/luabind.html) (requires Boost) and [sol2](https://github.com/ThePhD/sol2) explore every corner of the C++ language. +Because LuaBridge was written with simplicity in mind there are some features that are not available. LuaBridge3 has been extensively optimized and now competes directly with [sol2](https://github.com/ThePhD/sol2) - one of the fastest C++/Lua binding libraries - across most workloads. In fact, LuaBridge3 outperforms sol2 in certain scenarios such as member function calls from Lua and global table writes, while remaining more compact and faster to compile. While sol2 has an edge in chained table access, the overall performance gap is negligible for most use cases. LuaBridge3 also does not try to implement every possible feature: [LuaBind](http://www.rasterbar.com/products/luabind.html) (requires Boost) and [sol2](https://github.com/ThePhD/sol2) explore every corner of the C++ language. LuaBridge does not support: @@ -969,7 +970,7 @@ assert (propertyOne == 1337, "Value is now present !") ### 2.7.3 - Static Index and New Index Metamethods Fallback -The same fallback mechanism is available for the *static class table* — i.e. for key lookups performed on the class name itself (e.g. `MyClass.someKey`) rather than on an instance. Use `addStaticIndexMetaMethod` and `addStaticNewIndexMetaMethod` to register the callbacks. Unlike their instance counterparts, the static callbacks receive only the key (and optionally `lua_State*`) — there is no `self` parameter. +The same fallback mechanism is available for the *static class table* - i.e. for key lookups performed on the class name itself (e.g. `MyClass.someKey`) rather than on an instance. Use `addStaticIndexMetaMethod` and `addStaticNewIndexMetaMethod` to register the callbacks. Unlike their instance counterparts, the static callbacks receive only the key (and optionally `lua_State*`) - there is no `self` parameter. ```cpp struct MyClass {}; @@ -1258,7 +1259,7 @@ LuaBridge3 provides first-class interoperability between C++20 coroutines and Lu > **Note:** C++20 coroutine integration is not supported on Lua 5.1, LuaJIT, or Luau (those targets lack a public `lua_yieldk` equivalent). -### 2.9.1 - CppCoroutine\ — Generators callable from Lua +### 2.9.1 - CppCoroutine\ - Generators callable from Lua `luabridge::CppCoroutine` is a coroutine return type that bridges C++20 coroutines with Lua's `coroutine.wrap` / `coroutine.resume` API. A function returning `CppCoroutine` can use `co_yield` to suspend and pass a value back to Lua, and `co_return` to finish and return a final value. @@ -1295,7 +1296,7 @@ end }); ``` -An abandoned coroutine (one that goes out of scope in Lua without being fully consumed) is automatically cleaned up by the Lua garbage collector — no manual resource management is needed. +An abandoned coroutine (one that goes out of scope in Lua without being fully consumed) is automatically cleaned up by the Lua garbage collector - no manual resource management is needed. ### 2.9.2 - Accepting Arguments @@ -1315,7 +1316,7 @@ print(f(3, 4)) -- 7 (yield: 3+4) print(f()) -- 12 (return: 3*4) ``` -Multiple independent instances of the same coroutine factory can run concurrently — each call to `coroutine.wrap(name)` creates a separate C++ coroutine frame: +Multiple independent instances of the same coroutine factory can run concurrently - each call to `coroutine.wrap(name)` creates a separate C++ coroutine frame: ```lua local a = coroutine.wrap(adder) @@ -1324,7 +1325,76 @@ a(1, 2) -- independent from b b(10, 20) ``` -### 2.9.3 - LuaCoroutine — Awaiting a Lua Thread from C++ +### 2.9.3 - Class Coroutines - Static and Member + +Coroutines can be attached directly to a registered class using `addStaticCoroutine` and `addCoroutine`. + +**Static coroutines** behave identically to namespace-level coroutines but live in the class's static table. The factory requires no object argument: + +```cpp +luabridge::getGlobalNamespace(L) + .beginClass("Counter") + .addStaticCoroutine("range", [](int from, int count) -> luabridge::CppCoroutine + { + for (int i = 0; i < count; ++i) + co_yield from + i; + co_return -1; + }) + .endClass(); +``` + +```lua +local f = coroutine.wrap(Counter.range) +print(f(5, 3)) -- 5 (first yield) +print(f()) -- 6 +print(f()) -- 7 +print(f()) -- -1 (done) +``` + +**Member coroutines** bind a coroutine factory to individual class instances. The factory's **first argument must be `T*` or `const T*`** - LuaBridge passes the Lua object as that argument automatically: + +```cpp +.beginClass("Counter") + .addCoroutine("generate", [](Counter* obj, int n) -> luabridge::CppCoroutine + { + for (int i = 0; i < n; ++i) + { + co_yield obj->value; + obj->increment(); + } + co_return -1; + }) +.endClass(); +``` + +```lua +local obj = Counter() +local f = coroutine.wrap(Counter.generate) +print(f(obj, 3)) -- 0 (obj.value before first increment) +print(f()) -- 1 +print(f()) -- 2 +print(f()) -- -1 (done) +``` + +**Const vs non-const:** a factory that takes `const T*` as its first argument is registered as a const method - accessible on both const and non-const objects (it appears in both the const and non-const class tables). A factory taking `T*` is registered as a non-const method and is accessible on non-const objects only. + +```cpp +// Accessible on const and non-const objects: +.addCoroutine("peek", [](const Counter* obj) -> luabridge::CppCoroutine +{ + co_yield obj->value; + co_return obj->value * 2; +}) + +// Accessible on non-const objects only: +.addCoroutine("pop", [](Counter* obj) -> luabridge::CppCoroutine +{ + co_yield obj->value--; + co_return obj->value; +}) +``` + +### 2.9.4 - LuaCoroutine - Awaiting a Lua Thread from C++ `luabridge::LuaCoroutine` is an awaitable that can be used inside a `CppCoroutine` body to resume a child Lua thread synchronously. It runs the child thread to its first yield or return and gives back the status and the number of values the child left on its stack: @@ -1350,13 +1420,12 @@ b(10, 20) `LuaCoroutine` always completes synchronously (no external event loop is required). The `status` field contains `LUA_YIELD` if the child yielded or `LUA_OK` if it returned normally. -### 2.9.4 - Limitations +### 2.9.5 - Limitations * **Lua version:** Requires Lua 5.2+ (`lua_yieldk`). Not supported on Lua 5.1, LuaJIT, or Luau. * **C++ version:** Requires C++20 (``). Non-coroutine features continue to work under C++17. * **Multi-value yield:** `co_yield` sends exactly one value per suspension. Use `std::tuple` or a struct if multiple values are needed. * **Thread safety:** Coroutine frames must be driven from a single OS thread. -* **Instance methods:** `addCoroutine` is available on `Namespace`; registering coroutine-returning member functions on `Class` is not yet supported. 3 - Passing Objects =================== @@ -1920,7 +1989,7 @@ auto result = luabridge::callWithHandler (f, handler, /* args... */); 4.4 - Wrapping C++ Callables ----------------------------- -`luabridge::newFunction` (and its equivalent `LuaRef::newFunction`) wraps any C++ callable — a lambda, a function pointer, or a `std::function` — into a Lua function and returns it as a `LuaRef`. This is useful when you need to pass a C++ callback to Lua without going through the namespace/class registration API: +`luabridge::newFunction` (and its equivalent `LuaRef::newFunction`) wraps any C++ callable - a lambda, a function pointer, or a `std::function` - into a Lua function and returns it as a `LuaRef`. This is useful when you need to pass a C++ callback to Lua without going through the namespace/class registration API: ```cpp // Create a Lua function that squares its argument @@ -2081,7 +2150,7 @@ Override the default when you need fine-grained control: 6.5 - LUABRIDGE_HAS_CXX20_COROUTINES / LUABRIDGE_DISABLE_CXX20_COROUTINES -------------------------------------------------------------------------- -**`LUABRIDGE_HAS_CXX20_COROUTINES` — auto-detected, override allowed** +**`LUABRIDGE_HAS_CXX20_COROUTINES` - auto-detected, override allowed** LuaBridge3 automatically enables C++20 coroutine support when it detects a C++20 compiler (`__cplusplus >= 202002L` or MSVC `_HAS_CXX20`). The macro is set to `1` when the feature is active and `0` otherwise. @@ -2436,7 +2505,7 @@ Lua Nil Special Value - LuaNil /// LuaNil can be used to construct LuaRef. ``` -TypeResult — Result of a Call or Cast +TypeResult - Result of a Call or Cast ----------------------------------------- ```cpp @@ -2445,7 +2514,7 @@ explicit operator bool() const; /// Return the contained value (undefined behavior if result holds an error). const T& value() const; -/// Dereference operator — equivalent to value(). +/// Dereference operator - equivalent to value(). T& operator*(); /// Return the contained value or a default when the result holds an error. @@ -2469,7 +2538,7 @@ explicit LuaFunction (const LuaRef& function); /// Call the function with the given arguments. TypeResult operator() (Args... args) const; -/// Call the function — equivalent to operator(). +/// Call the function - equivalent to operator(). TypeResult call (Args... args) const; /// Call the function with a custom error handler. @@ -2512,8 +2581,8 @@ struct CppCoroutine; class LuaCoroutine { public: - /// thread — the Lua thread to resume. - /// from — the calling Lua state (typically L inside the coroutine body). + /// thread - the Lua thread to resume. + /// from - the calling Lua state (typically L inside the coroutine body). LuaCoroutine(lua_State* thread, lua_State* from = nullptr) noexcept; std::pair await_resume() noexcept; // returns {status, nresults} @@ -2524,7 +2593,18 @@ public: template Namespace& addCoroutine(const char* name, F factory); -/// Portable lua_resume wrapper — fills *nresults on all Lua versions (5.1–5.5). +/// Register a CppCoroutine factory as a static class function (available on Class). +/// F must be a callable whose return type is CppCoroutine. +template +Class& addStaticCoroutine(const char* name, F factory); + +/// Register a CppCoroutine factory as a member method (available on Class). +/// F must be a callable whose first argument is T* or const T*, and whose return type is +/// CppCoroutine. A const T* first argument registers the method as const-accessible. +template +Class& addCoroutine(const char* name, F factory); + +/// Portable lua_resume wrapper - fills *nresults on all Lua versions (5.1–5.5). int lua_resume_x(lua_State* L, lua_State* from, int nargs, int* nresults = nullptr); /// Returns true if the current C function can yield via lua_yieldk. diff --git a/Tests/Source/CoroutineTests.cpp b/Tests/Source/CoroutineTests.cpp index f6da60dc..1af9321d 100644 --- a/Tests/Source/CoroutineTests.cpp +++ b/Tests/Source/CoroutineTests.cpp @@ -361,6 +361,225 @@ TEST_F(CppCoroutineTests, ExceptionOnSecondYield) auto msg = luabridge::getGlobal(L, "errmsg").unsafe_cast(); EXPECT_NE(std::string::npos, msg.find("second yield error")); } + +TEST_F(CppCoroutineTests, ExceptionType_LogicError) +{ + // std::logic_error (not runtime_error) — verifies any std::exception subclass is caught + // and its what() message is forwarded as the Lua error string. + luabridge::getGlobalNamespace(L) + .addCoroutine("badlogic", []() -> luabridge::CppCoroutine + { + throw std::logic_error("logic went wrong"); + co_return 0; + }); + + ASSERT_TRUE(runLua( + "local ok, err = pcall(coroutine.wrap(badlogic))\n" + "success = ok\n" + "errmsg = err\n" + )); + + EXPECT_FALSE(luabridge::getGlobal(L, "success").unsafe_cast()); + auto msg = luabridge::getGlobal(L, "errmsg").unsafe_cast(); + EXPECT_NE(std::string::npos, msg.find("logic went wrong")); +} + +TEST_F(CppCoroutineTests, ExceptionType_NonStdThrow) +{ + // Throwing a non-std type (int) hits the catch(...) path in raise_from_exception, + // which produces the fixed message "unknown exception in C++ coroutine". + luabridge::getGlobalNamespace(L) + .addCoroutine("intthrow", []() -> luabridge::CppCoroutine + { + throw 42; // NOLINT: intentional non-std throw to exercise catch(...) + co_return 0; + }); + + ASSERT_TRUE(runLua( + "local ok, err = pcall(coroutine.wrap(intthrow))\n" + "success = ok\n" + "errmsg = err\n" + )); + + EXPECT_FALSE(luabridge::getGlobal(L, "success").unsafe_cast()); + auto msg = luabridge::getGlobal(L, "errmsg").unsafe_cast(); + EXPECT_NE(std::string::npos, msg.find("unknown exception in C++ coroutine")); +} + +TEST_F(CppCoroutineTests, ExceptionOnNthResume) +{ + // Exception thrown on the 4th resume (after 3 successful yields), verifying that + // the continuation path handles late exceptions correctly. + luabridge::getGlobalNamespace(L) + .addCoroutine("latecrash", []() -> luabridge::CppCoroutine + { + co_yield 10; + co_yield 20; + co_yield 30; + throw std::runtime_error("crashed on fourth"); + co_return 0; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(latecrash)\n" + "r1 = f()\n" + "r2 = f()\n" + "r3 = f()\n" + "local ok, err = pcall(f)\n" + "success = ok\n" + "errmsg = err\n" + )); + + EXPECT_EQ(10, luabridge::getGlobal(L, "r1").unsafe_cast()); + EXPECT_EQ(20, luabridge::getGlobal(L, "r2").unsafe_cast()); + EXPECT_EQ(30, luabridge::getGlobal(L, "r3").unsafe_cast()); + EXPECT_FALSE(luabridge::getGlobal(L, "success").unsafe_cast()); + auto msg = luabridge::getGlobal(L, "errmsg").unsafe_cast(); + EXPECT_NE(std::string::npos, msg.find("crashed on fourth")); +} + +TEST_F(CppCoroutineTests, ExceptionFromNestedCall) +{ + // Exception is not thrown directly but propagates up from a nested helper function, + // exercising that the coroutine frame capture works for indirect throw sites. + auto helper = []() { throw std::runtime_error("nested throw"); }; + + luabridge::getGlobalNamespace(L) + .addCoroutine("nested", [helper]() -> luabridge::CppCoroutine + { + co_yield 1; + helper(); // throws from a non-coroutine call frame + co_return 0; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(nested)\n" + "first = f()\n" + "local ok, err = pcall(f)\n" + "success = ok\n" + "errmsg = err\n" + )); + + EXPECT_EQ(1, luabridge::getGlobal(L, "first").unsafe_cast()); + EXPECT_FALSE(luabridge::getGlobal(L, "success").unsafe_cast()); + auto msg = luabridge::getGlobal(L, "errmsg").unsafe_cast(); + EXPECT_NE(std::string::npos, msg.find("nested throw")); +} + +TEST_F(CppCoroutineTests, ExceptionCleansUpRAII) +{ + // When an exception unwinds the coroutine body, local objects with destructors must + // still be destroyed. Guard tracks whether its destructor ran. + int destructed = 0; + struct Guard { int* p; ~Guard() { ++(*p); } }; + + luabridge::getGlobalNamespace(L) + .addCoroutine("guardedcrash", [&destructed]() -> luabridge::CppCoroutine + { + Guard g{ &destructed }; + co_yield 1; + throw std::runtime_error("unwind me"); + co_return 0; + }); + + ASSERT_TRUE(runLua( + "local f = coroutine.wrap(guardedcrash)\n" + "first = f()\n" + "local ok, err = pcall(f)\n" + "success = ok\n" + "errmsg = err\n" + )); + + EXPECT_EQ(1, luabridge::getGlobal(L, "first").unsafe_cast()); + EXPECT_FALSE(luabridge::getGlobal(L, "success").unsafe_cast()); + auto msg = luabridge::getGlobal(L, "errmsg").unsafe_cast(); + EXPECT_NE(std::string::npos, msg.find("unwind me")); + + // Force GC so the CppCoroutineFrame __gc runs, triggering the handle destructor + // which in turn unwinds any remaining suspension points. + lua_gc(L, LUA_GCCOLLECT, 0); + lua_gc(L, LUA_GCCOLLECT, 0); + + EXPECT_EQ(1, destructed); +} + +TEST_F(CppCoroutineTests, ExceptionViaCoroutineResumeApi) +{ + // Use coroutine.create + coroutine.resume instead of coroutine.wrap. + // On exception coroutine.resume returns false plus the error message. + luabridge::getGlobalNamespace(L) + .addCoroutine("boomboom", []() -> luabridge::CppCoroutine + { + co_yield 7; + throw std::runtime_error("resume api error"); + co_return 0; + }); + + ASSERT_TRUE(runLua( + "local co = coroutine.create(boomboom)\n" + "local ok1, v1 = coroutine.resume(co)\n" // first resume: yields 7 + "local ok2, err = coroutine.resume(co)\n" // second resume: throws + "resumeOk1 = ok1\n" + "yieldVal = v1\n" + "resumeOk2 = ok2\n" + "errmsg = err\n" + )); + + EXPECT_TRUE(luabridge::getGlobal(L, "resumeOk1").unsafe_cast()); + EXPECT_EQ(7, luabridge::getGlobal(L, "yieldVal").unsafe_cast()); + EXPECT_FALSE(luabridge::getGlobal(L, "resumeOk2").unsafe_cast()); + auto msg = luabridge::getGlobal(L, "errmsg").unsafe_cast(); + EXPECT_NE(std::string::npos, msg.find("resume api error")); +} + +TEST_F(CppCoroutineTests, ExceptionLeavesCoroutineDead) +{ + // After an exception kills a coroutine, further resume attempts should fail with + // a "cannot resume dead coroutine" error, not a C++ exception or crash. + luabridge::getGlobalNamespace(L) + .addCoroutine("dieonce", []() -> luabridge::CppCoroutine + { + throw std::runtime_error("die"); + co_return 0; + }); + + ASSERT_TRUE(runLua( + "local co = coroutine.create(dieonce)\n" + "local ok1, _ = coroutine.resume(co)\n" // exception: coroutine dies + "local ok2, err = coroutine.resume(co)\n" // resuming a dead coroutine + "firstOk = ok1\n" + "secondOk = ok2\n" + "deadErr = err\n" + )); + + EXPECT_FALSE(luabridge::getGlobal(L, "firstOk").unsafe_cast()); + EXPECT_FALSE(luabridge::getGlobal(L, "secondOk").unsafe_cast()); + auto msg = luabridge::getGlobal(L, "deadErr").unsafe_cast(); + EXPECT_NE(std::string::npos, msg.find("dead")); +} + +TEST_F(CppCoroutineTests, ExceptionMessagePassedVerbatim) +{ + // The exact what() text must survive the C++ → Lua error boundary unchanged. + const std::string uniqueMsg = "unique-error-XYZ-12345"; + + luabridge::getGlobalNamespace(L) + .addCoroutine("verbatim", [&uniqueMsg]() -> luabridge::CppCoroutine + { + throw std::runtime_error(uniqueMsg); + co_return 0; + }); + + ASSERT_TRUE(runLua( + "local ok, err = pcall(coroutine.wrap(verbatim))\n" + "success = ok\n" + "errmsg = err\n" + )); + + EXPECT_FALSE(luabridge::getGlobal(L, "success").unsafe_cast()); + auto msg = luabridge::getGlobal(L, "errmsg").unsafe_cast(); + EXPECT_NE(std::string::npos, msg.find(uniqueMsg)); +} #endif // LUABRIDGE_HAS_EXCEPTIONS TEST_F(CppCoroutineTests, FloatYield) From 83caf395f95834f10996181d0c362e11c1d48bcf Mon Sep 17 00:00:00 2001 From: kunitoki Date: Tue, 7 Apr 2026 09:47:20 +0200 Subject: [PATCH 10/10] Fix tests --- Tests/Source/CoroutineTests.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Tests/Source/CoroutineTests.cpp b/Tests/Source/CoroutineTests.cpp index 1af9321d..9ef3b973 100644 --- a/Tests/Source/CoroutineTests.cpp +++ b/Tests/Source/CoroutineTests.cpp @@ -1397,7 +1397,10 @@ TEST_F(CppCoroutineClassTests, MemberCoroutine_ResumeAfterDone) TEST_F(CppCoroutineClassTests, MemberCoroutine_WrongArgumentType) { - // Passing a non-object (e.g. integer) where a Counter* is expected should produce an error + // Passing a non-object (integer) where Counter* is expected. + // With exceptions: the type-mismatch C++ exception escapes the Lua coroutine boundary + // before lua_error can intercept it, so it surfaces as a C++ throw through runLua. + // Without exceptions: luaL_error is called inside the coroutine, which is caught by pcall. luabridge::getGlobalNamespace(L) .beginClass("Counter") .addConstructor() @@ -1407,12 +1410,18 @@ TEST_F(CppCoroutineClassTests, MemberCoroutine_WrongArgumentType) }) .endClass(); +#if LUABRIDGE_HAS_EXCEPTIONS + EXPECT_THROW( + runLua("coroutine.wrap(Counter.generate)(42)\n"), + std::exception + ); +#else ASSERT_TRUE(runLua( "local ok, err = pcall(coroutine.wrap(Counter.generate), 42)\n" "success = ok\n" )); - EXPECT_FALSE(luabridge::getGlobal(L, "success").unsafe_cast()); +#endif } #endif // LUABRIDGE_HAS_CXX20_COROUTINES

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 Vm=JUpIG#9nZpd8E6ubZU{{U#?tfBw_ literal 164809 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�w!y%Ck>vt-Kk5yzZq+i~hUfPW8uiinD)S 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 From 324a60338c9092c6326d77331dc0a6635903d10d Mon Sep 17 00:00:00 2001 From: kunitoki Date: Mon, 6 Apr 2026 20:54:46 +0200 Subject: [PATCH 04/10] More changes --- Benchmarks/benchmark_sol3.cpp | 47 +++++++++++++++++++++++++-- Images/benchmarks.png | Bin 164815 -> 178913 bytes Source/LuaBridge/detail/CFunctions.h | 28 +++++++++++++--- Source/LuaBridge/detail/Invoke.h | 22 ++++++------- Source/LuaBridge/detail/Stack.h | 25 -------------- Source/LuaBridge/detail/TypeTraits.h | 13 ++++++++ justfile | 2 +- 7 files changed, 93 insertions(+), 44 deletions(-) diff --git a/Benchmarks/benchmark_sol3.cpp b/Benchmarks/benchmark_sol3.cpp index a18ccad3..9c0aaae2 100644 --- a/Benchmarks/benchmark_sol3.cpp +++ b/Benchmarks/benchmark_sol3.cpp @@ -325,7 +325,31 @@ void multi_return_measure(benchmark::State& state) void base_derived_measure(benchmark::State& state) { - setSkipped(state, "base_derived_measure not implemented yet for sol3 Google Benchmark port"); + sol::state lua; + + lua.new_usertype("ComplexBaseA", + "a_func", &ComplexBaseA::a_func, + "a", &ComplexBaseA::a); + + lua.new_usertype("ComplexBaseB", + "b_func", &ComplexBaseB::b_func, + "b", &ComplexBaseB::b); + + lua.new_usertype("ComplexAB", + sol::base_classes, sol::bases(), + "ab_func", &ComplexAB::ab_func, + "ab", &ComplexAB::ab); + + ComplexAB ab; + lua["b"] = &ab; + + lua.script("function call_base() return b:a_func() + b:b_func() end"); + + for (auto _ : state) + { + (void) _; + lua["call_base"](); + } } void optional_success_measure(benchmark::State& state) @@ -392,7 +416,26 @@ void return_userdata_measure(benchmark::State& state) void implicit_inheritance_measure(benchmark::State& state) { - setSkipped(state, "implicit_inheritance_measure not implemented yet for sol3 Google Benchmark port"); + sol::state lua; + + lua.new_usertype("ComplexBaseA", + "a_func", &ComplexBaseA::a_func); + + lua.new_usertype("ComplexAB", + sol::constructors(), + sol::base_classes, sol::bases(), + "ab_func", &ComplexAB::ab_func); + + lua.set_function("call_a", +[](ComplexBaseA* obj) -> double { return obj->a_func(); }); + + lua.script("obj = ComplexAB.new()"); + lua.script("function test_implicit() return call_a(obj) end"); + + for (auto _ : state) + { + (void) _; + lua["test_implicit"](); + } } } // namespace diff --git a/Images/benchmarks.png b/Images/benchmarks.png index b848f341a25dd1a1467dfe01240f850aa89210c4..1038bc1aca72d22efe9a64e295bc305212bfc3f8 100644 GIT binary patch literal 178913 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 literal 164815 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