aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Lanes.makefile11
-rw-r--r--src/lane.hpp2
-rw-r--r--src/lanes.cpp12
-rw-r--r--src/lanes.lua10
-rw-r--r--src/state.cpp7
-rw-r--r--src/universe.cpp2
6 files changed, 20 insertions, 24 deletions
diff --git a/src/Lanes.makefile b/src/Lanes.makefile
index 9798848..7d0a153 100644
--- a/src/Lanes.makefile
+++ b/src/Lanes.makefile
@@ -7,16 +7,14 @@
7 7
8include ../Shared.makefile 8include ../Shared.makefile
9 9
10_MODULE=lanes 10_TARGET := lanes_core.$(_SO)
11 11
12_SRC := $(wildcard *.cpp) 12_SRC := $(wildcard *.cpp)
13 13
14_OBJ := $(_SRC:.cpp=.o) 14_OBJ := $(_SRC:.cpp=.o)
15 15
16_MODULE_DIR = $(_MODULE)
17
18#--- 16#---
19all: info $(_MODULE)/core.$(_SO) 17all: info $(_TARGET)
20 18
21info: 19info:
22 $(info CC: $(CC)) 20 $(info CC: $(CC))
@@ -30,12 +28,11 @@ _pch.hpp.gch: _pch.hpp
30 28
31# Note: Don't put $(LUA_LIBS) ahead of $^; MSYS will not like that (I think) 29# Note: Don't put $(LUA_LIBS) ahead of $^; MSYS will not like that (I think)
32# 30#
33$(_MODULE_DIR)/core.$(_SO): $(_OBJ) 31$(_TARGET): $(_OBJ)
34 mkdir -p $(_MODULE_DIR)
35 $(CC) $(LIBFLAG) $^ $(LIBS) $(LUA_LIBS) -o $@ 32 $(CC) $(LIBFLAG) $^ $(LIBS) $(LUA_LIBS) -o $@
36 33
37clean: 34clean:
38 -rm -rf $(_MODULE)/core.$(_SO) *.o *.map *.gch 35 -rm -rf $(_TARGET) *.o *.map *.gch
39 36
40#--- 37#---
41# NSLU2 "slug" Linux ARM 38# NSLU2 "slug" Linux ARM
diff --git a/src/lane.hpp b/src/lane.hpp
index 4b5188c..9b678d6 100644
--- a/src/lane.hpp
+++ b/src/lane.hpp
@@ -41,7 +41,7 @@ static constexpr std::string_view kLaneMetatableName{ "Lane" };
41 41
42// must be a #define instead of a constexpr to benefit from compile-time string concatenation 42// must be a #define instead of a constexpr to benefit from compile-time string concatenation
43#define kLanesLibName "lanes" 43#define kLanesLibName "lanes"
44#define kLanesCoreLibName kLanesLibName ".core" 44#define kLanesCoreLibName kLanesLibName "_core"
45 45
46// for cancel() argument 46// for cancel() argument
47enum class [[nodiscard]] WakeLane 47enum class [[nodiscard]] WakeLane
diff --git a/src/lanes.cpp b/src/lanes.cpp
index 678540d..15e04a3 100644
--- a/src/lanes.cpp
+++ b/src/lanes.cpp
@@ -760,7 +760,7 @@ LUAG_FUNC(configure)
760 760
761 // register all native functions found in that module in the transferable functions database 761 // register all native functions found in that module in the transferable functions database
762 // we process it before _G because we don't want to find the module when scanning _G (this would generate longer names) 762 // we process it before _G because we don't want to find the module when scanning _G (this would generate longer names)
763 // for example in package.loaded["lanes.core"].* 763 // for example in package.loaded["lanes_core"].*
764 tools::PopulateFuncLookupTable(L_, kIdxTop, _name); 764 tools::PopulateFuncLookupTable(L_, kIdxTop, _name);
765 STACK_CHECK(L_, 2); 765 STACK_CHECK(L_, 2);
766 766
@@ -862,11 +862,11 @@ LANES_API int luaopen_lanes_core(lua_State* const L_)
862 // Create main module interface table 862 // Create main module interface table
863 // we only have 1 closure, which must be called to configure Lanes 863 // we only have 1 closure, which must be called to configure Lanes
864 lua_newtable(L_); // L_: M 864 lua_newtable(L_); // L_: M
865 lua_pushvalue(L_, 1); // L_: M "lanes.core" 865 lua_pushvalue(L_, 1); // L_: M "lanes_core"
866 lua_pushvalue(L_, -2); // L_: M "lanes.core" M 866 lua_pushvalue(L_, -2); // L_: M "lanes_core" M
867 lua_pushcclosure(L_, LG_configure, 2); // L_: M LG_configure() 867 lua_pushcclosure(L_, LG_configure, 2); // L_: M LG_configure()
868 kConfigRegKey.pushValue(L_); // L_: M LG_configure() settings 868 kConfigRegKey.pushValue(L_); // L_: M LG_configure() settings
869 if (!lua_isnil(L_, -1)) { // this is not the first require "lanes.core": call configure() immediately 869 if (!lua_isnil(L_, -1)) { // this is not the first require "lanes_core": call configure() immediately
870 lua_pushvalue(L_, -1); // L_: M LG_configure() settings settings 870 lua_pushvalue(L_, -1); // L_: M LG_configure() settings settings
871 lua_setfield(L_, -4, "settings"); // L_: M LG_configure() settings 871 lua_setfield(L_, -4, "settings"); // L_: M LG_configure() settings
872 lua_call(L_, 1, 0); // L_: M 872 lua_call(L_, 1, 0); // L_: M
@@ -898,8 +898,8 @@ static int default_luaopen_lanes(lua_State* const L_)
898LANES_API void luaopen_lanes_embedded(lua_State* const L_, lua_CFunction const luaopen_lanes_) 898LANES_API void luaopen_lanes_embedded(lua_State* const L_, lua_CFunction const luaopen_lanes_)
899{ 899{
900 STACK_CHECK_START_REL(L_, 0); 900 STACK_CHECK_START_REL(L_, 0);
901 // pre-require lanes.core so that when lanes.lua calls require "lanes.core" it finds it is already loaded 901 // pre-require lanes_core so that when lanes.lua calls require "lanes_core" it finds it is already loaded
902 luaL_requiref(L_, kLanesCoreLibName, luaopen_lanes_core, 0); // L_: ... lanes.core 902 luaL_requiref(L_, kLanesCoreLibName, luaopen_lanes_core, 0); // L_: ... lanes_core
903 lua_pop(L_, 1); // L_: ... 903 lua_pop(L_, 1); // L_: ...
904 STACK_CHECK(L_, 0); 904 STACK_CHECK(L_, 0);
905 // call user-provided function that runs the chunk "lanes.lua" from wherever they stored it 905 // call user-provided function that runs the chunk "lanes.lua" from wherever they stored it
diff --git a/src/lanes.lua b/src/lanes.lua
index 4df1f64..98f8c20 100644
--- a/src/lanes.lua
+++ b/src/lanes.lua
@@ -35,7 +35,7 @@ THE SOFTWARE.
35=============================================================================== 35===============================================================================
36]]-- 36]]--
37 37
38local core = require "lanes.core" 38local core = require "lanes_core"
39-- Lua 5.1: module() creates a global variable 39-- Lua 5.1: module() creates a global variable
40-- Lua 5.2: module() is gone 40-- Lua 5.2: module() is gone
41-- almost everything module() does is done by require() anyway 41-- almost everything module() does is done by require() anyway
@@ -228,7 +228,7 @@ local valid_libs =
228 ["table"] = true, 228 ["table"] = true,
229 ["utf8"] = true, 229 ["utf8"] = true,
230 -- 230 --
231 ["lanes.core"] = true 231 ["lanes_core"] = true
232} 232}
233-- same structure, but contains only the libraries that the current Lua flavor actually supports 233-- same structure, but contains only the libraries that the current Lua flavor actually supports
234local supported_libs 234local supported_libs
@@ -329,8 +329,8 @@ local process_gen_opt = function(...)
329 error "Libs specification '*' must be used alone" 329 error "Libs specification '*' must be used alone"
330 end 330 end
331 local found = {} 331 local found = {}
332 -- accept lib identifiers followed by an optional question mark 332 -- accept lib identifiers (alphanumeric plus '.-_'), followed by an optional question mark
333 for s, question in string_gmatch(libs, "([%a%d.]+)(%??)") do 333 for s, question in string_gmatch(libs, "([%-%w_.]+)(%??)") do
334 if not valid_libs[s] then 334 if not valid_libs[s] then
335 error("Bad library name: " .. string_format("%q", tostring(s)), 2) 335 error("Bad library name: " .. string_format("%q", tostring(s)), 2)
336 end 336 end
@@ -643,7 +643,7 @@ local configure_timers = function()
643 end 643 end
644 end 644 end
645 end -- timer_body() 645 end -- timer_body()
646 timer_lane = gen("lanes.core,table", { name = "LanesTimer", package = {}, priority = core.max_prio }, timer_body)() 646 timer_lane = gen("lanes_core,table", { name = "LanesTimer", package = {}, priority = core.max_prio }, timer_body)()
647 end -- first_time 647 end -- first_time
648 648
649 ----- 649 -----
diff --git a/src/state.cpp b/src/state.cpp
index 6fabc5f..b558d11 100644
--- a/src/state.cpp
+++ b/src/state.cpp
@@ -99,9 +99,9 @@ namespace {
99 DEBUGSPEW_CODE(DebugSpew(Universe::Get(L_)) << "opening '" << _name << "' library" << std::endl); 99 DEBUGSPEW_CODE(DebugSpew(Universe::Get(L_)) << "opening '" << _name << "' library" << std::endl);
100 STACK_CHECK_START_REL(L_, 0); 100 STACK_CHECK_START_REL(L_, 0);
101 // open the library as if through require(), and create a global as well if necessary (the library table is left on the stack) 101 // open the library as if through require(), and create a global as well if necessary (the library table is left on the stack)
102 bool const _isLanesCore{ _libfunc == luaopen_lanes_core }; // don't want to create a global for "lanes.core" 102 bool const _isLanesCore{ _libfunc == luaopen_lanes_core }; // don't want to create a global for "lanes_core"
103 luaL_requiref(L_, _name.data(), _libfunc, !_isLanesCore); // L_: {lib} 103 luaL_requiref(L_, _name.data(), _libfunc, !_isLanesCore); // L_: {lib}
104 // lanes.core doesn't declare a global, so scan it here and now 104 // lanes_core doesn't declare a global, so scan it here and now
105 if (_isLanesCore) { 105 if (_isLanesCore) {
106 tools::PopulateFuncLookupTable(L_, kIdxTop, _name); 106 tools::PopulateFuncLookupTable(L_, kIdxTop, _name);
107 } 107 }
@@ -224,7 +224,7 @@ namespace state {
224 if (_libs == "*") { 224 if (_libs == "*") {
225 DEBUGSPEW_CODE(DebugSpew(U_) << "opening ALL standard libraries" << std::endl); 225 DEBUGSPEW_CODE(DebugSpew(U_) << "opening ALL standard libraries" << std::endl);
226 luaL_openlibs(_L); 226 luaL_openlibs(_L);
227 // don't forget lanes.core for regular lane states 227 // don't forget lanes_core for regular lane states
228 Open1Lib(_L, kLanesCoreLibName); 228 Open1Lib(_L, kLanesCoreLibName);
229 _libs = ""; // done with libs 229 _libs = ""; // done with libs
230 } else { 230 } else {
@@ -248,7 +248,6 @@ namespace state {
248 248
249 // scan all libraries, open them one by one 249 // scan all libraries, open them one by one
250 auto isLibNameChar = [](char const c_) { 250 auto isLibNameChar = [](char const c_) {
251 // '.' can be part of name for "lanes.core"
252 return std::isalnum(c_) || c_ == '.' || c_ == '-' || c_ == '_'; 251 return std::isalnum(c_) || c_ == '.' || c_ == '-' || c_ == '_';
253 }; 252 };
254 while (!_libs.empty()) { 253 while (!_libs.empty()) {
diff --git a/src/universe.cpp b/src/universe.cpp
index bc309a2..3da0801 100644
--- a/src/universe.cpp
+++ b/src/universe.cpp
@@ -91,7 +91,7 @@ void Universe::callOnStateCreate(lua_State* const L_, lua_State* const from_, Lo
91 91
92 // C function: recreate a closure in the new state, bypassing the lookup scheme 92 // C function: recreate a closure in the new state, bypassing the lookup scheme
93 lua_pushcfunction(L_, std::get<lua_CFunction>(onStateCreateFunc)); // on_state_create() 93 lua_pushcfunction(L_, std::get<lua_CFunction>(onStateCreateFunc)); // on_state_create()
94 } else { // Lua function located in the config table, copied when we opened "lanes.core" 94 } else { // Lua function located in the config table, copied when we opened "lanes_core"
95 LUA_ASSERT(from_, std::holds_alternative<uintptr_t>(onStateCreateFunc)); 95 LUA_ASSERT(from_, std::holds_alternative<uintptr_t>(onStateCreateFunc));
96 if (mode_ != LookupMode::LaneBody) { 96 if (mode_ != LookupMode::LaneBody) {
97 // if attempting to call in a keeper state, do nothing because the function doesn't exist there 97 // if attempting to call in a keeper state, do nothing because the function doesn't exist there