Changeset

6418:ae798314347c

Merge 0.10->trunk
author Kim Alvefur <zash@zash.se>
date Thu, 18 Sep 2014 02:22:48 +0200
parents 6410:d782cbb46c2a (current diff) 6417:060b63a27e9b (diff)
children 6419:84b332eacde9
files core/moduleapi.lua
diffstat 10 files changed, 57 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/core/moduleapi.lua	Tue Sep 16 13:02:21 2014 -0400
+++ b/core/moduleapi.lua	Thu Sep 18 02:22:48 2014 +0200
@@ -7,7 +7,7 @@
 --
 
 local config = require "core.configmanager";
-local modulemanager = require "modulemanager"; -- This is necessary to avoid require loops
+local modulemanager; -- This gets set from modulemanager
 local array = require "util.array";
 local set = require "util.set";
 local logger = require "util.logger";
@@ -19,6 +19,7 @@
 local error, setmetatable, type = error, setmetatable, type;
 local ipairs, pairs, select = ipairs, pairs, select;
 local tonumber, tostring = tonumber, tostring;
+local require = require;
 local pack = table.pack or function(...) return {n=select("#",...), ...}; end -- table.pack is only in 5.2
 local unpack = table.unpack or unpack; -- renamed in 5.2
 
@@ -386,7 +387,10 @@
 end
 
 function api:open_store(name, type)
-	return storagemanager.open(self.host, name or self.name, type);
+	return require"core.storagemanager".open(self.host, name or self.name, type);
 end
 
-return api;
+return function (mm)
+	modulemanager = mm;
+	return api;
+end
--- a/core/modulemanager.lua	Tue Sep 16 13:02:21 2014 -0400
+++ b/core/modulemanager.lua	Thu Sep 18 02:22:48 2014 +0200
@@ -37,7 +37,7 @@
 
 module "modulemanager"
 
-local api = _G.require "core.moduleapi"; -- Module API container
+local api = _G.require "core.moduleapi"(_M); -- Module API container
 
 -- [host] = { [module] = module_env }
 local modulemap = { ["*"] = {} };
--- a/prosody	Tue Sep 16 13:02:21 2014 -0400
+++ b/prosody	Thu Sep 18 02:22:48 2014 +0200
@@ -153,7 +153,12 @@
 	local _real_require = require;
 	if not getfenv then
 		-- FIXME: This is a hack to replace getfenv() in Lua 5.2
-		function getfenv(f) return debug.getupvalue(debug.getinfo(f or 1).func, 1); end
+		function getfenv(f)
+			local name, env = debug.getupvalue(debug.getinfo(f or 1).func, 1);
+			if name == "_ENV" then
+				return env;
+			end
+		end
 	end
 	function require(...)
 		local curr_env = getfenv(2);
--- a/util-src/encodings.c	Tue Sep 16 13:02:21 2014 -0400
+++ b/util-src/encodings.c	Thu Sep 18 02:22:48 2014 +0200
@@ -20,6 +20,10 @@
 #include "lua.h"
 #include "lauxlib.h"
 
+#if (LUA_VERSION_NUM == 502)
+#define luaL_register(L, N, R) luaL_setfuncs(L, R, 0)
+#endif
+
 /***************** BASE64 *****************/
 
 static const char code[]=
@@ -361,35 +365,26 @@
 
 /***************** end *****************/
 
-static const luaL_Reg Reg[] =
-{
-	{ NULL,		NULL	}
-};
-
 LUALIB_API int luaopen_util_encodings(lua_State *L)
 {
 #ifdef USE_STRINGPREP_ICU
 	init_icu();
 #endif
-	luaL_register(L, "encodings", Reg);
+	lua_newtable(L);
 
-	lua_pushliteral(L, "base64");
 	lua_newtable(L);
 	luaL_register(L, NULL, Reg_base64);
-	lua_settable(L,-3);
+	lua_setfield(L, -2, "base64");
 
-	lua_pushliteral(L, "stringprep");
 	lua_newtable(L);
 	luaL_register(L, NULL, Reg_stringprep);
-	lua_settable(L,-3);
+	lua_setfield(L, -2, "stringprep");
 
-	lua_pushliteral(L, "idna");
 	lua_newtable(L);
 	luaL_register(L, NULL, Reg_idna);
-	lua_settable(L,-3);
+	lua_setfield(L, -2, "idna");
 
-	lua_pushliteral(L, "version");			/** version */
 	lua_pushliteral(L, "-3.14");
-	lua_settable(L,-3);
+	lua_setfield(L, -2, "version");
 	return 1;
 }
--- a/util-src/hashes.c	Tue Sep 16 13:02:21 2014 -0400
+++ b/util-src/hashes.c	Thu Sep 18 02:22:48 2014 +0200
@@ -27,6 +27,10 @@
 #include <openssl/sha.h>
 #include <openssl/md5.h>
 
+#if (LUA_VERSION_NUM == 502)
+#define luaL_register(L, N, R) luaL_setfuncs(L, R, 0)
+#endif
+
 #define HMAC_IPAD 0x36363636
 #define HMAC_OPAD 0x5c5c5c5c
 
@@ -203,9 +207,9 @@
 
 LUALIB_API int luaopen_util_hashes(lua_State *L)
 {
-	luaL_register(L, "hashes", Reg);
-	lua_pushliteral(L, "version");			/** version */
+	lua_newtable(L);
+	luaL_register(L, NULL, Reg);
 	lua_pushliteral(L, "-3.14");
-	lua_settable(L,-3);
+	lua_setfield(L, -2, "version");
 	return 1;
 }
--- a/util-src/net.c	Tue Sep 16 13:02:21 2014 -0400
+++ b/util-src/net.c	Thu Sep 18 02:22:48 2014 +0200
@@ -26,6 +26,10 @@
 #include <lua.h>
 #include <lauxlib.h>
 
+#if (LUA_VERSION_NUM == 502)
+#define luaL_register(L, N, R) luaL_setfuncs(L, R, 0)
+#endif
+
 /* Enumerate all locally configured IP addresses */
 
 const char * const type_strings[] = {
@@ -112,6 +116,7 @@
 		{ NULL, NULL }
 	};
 
-	luaL_register(L, "net",  exports);
+	lua_newtable(L);
+	luaL_register(L, NULL,  exports);
 	return 1;
 }
--- a/util-src/pposix.c	Tue Sep 16 13:02:21 2014 -0400
+++ b/util-src/pposix.c	Thu Sep 18 02:22:48 2014 +0200
@@ -35,6 +35,10 @@
 #include "lualib.h"
 #include "lauxlib.h"
 
+#if (LUA_VERSION_NUM == 502)
+#define luaL_register(L, N, R) luaL_setfuncs(L, R, 0)
+#endif
+
 #include <fcntl.h>
 #if defined(__linux__) && defined(_GNU_SOURCE)
 #include <linux/falloc.h>
@@ -768,7 +772,8 @@
 		{ NULL, NULL }
 	};
 
-	luaL_register(L, "pposix",  exports);
+	lua_newtable(L);
+	luaL_register(L, NULL,  exports);
 
 	lua_pushliteral(L, "pposix");
 	lua_setfield(L, -2, "_NAME");
--- a/util-src/signal.c	Tue Sep 16 13:02:21 2014 -0400
+++ b/util-src/signal.c	Thu Sep 18 02:22:48 2014 +0200
@@ -32,6 +32,10 @@
 #include "lua.h"
 #include "lauxlib.h"
 
+#if (LUA_VERSION_NUM == 502)
+#define luaL_register(L, N, R) luaL_setfuncs(L, R, 0)
+#endif
+
 #ifndef lsig
 
 #define lsig
@@ -384,13 +388,14 @@
   int i = 0;
 
   /* add the library */
-  luaL_register(L, "signal", lsignal_lib);
+  lua_newtable(L);
+  luaL_register(L, NULL, lsignal_lib);
 
   /* push lua_signals table into the registry */
   /* put the signals inside the library table too,
    * they are only a reference */
   lua_pushstring(L, LUA_SIGNAL);
-  lua_createtable(L, 0, 0);
+  lua_newtable(L);
 
   while (lua_signals[i].name != NULL)
   {
--- a/util-src/windows.c	Tue Sep 16 13:02:21 2014 -0400
+++ b/util-src/windows.c	Thu Sep 18 02:22:48 2014 +0200
@@ -19,6 +19,10 @@
 #include "lua.h"
 #include "lauxlib.h"
 
+#if (LUA_VERSION_NUM == 502)
+#define luaL_register(L, N, R) luaL_setfuncs(L, R, 0)
+#endif
+
 static int Lget_nameservers(lua_State *L) {
 	char stack_buffer[1024]; // stack allocated buffer
 	IP4_ARRAY* ips = (IP4_ARRAY*) stack_buffer;
@@ -81,9 +85,9 @@
 };
 
 LUALIB_API int luaopen_util_windows(lua_State *L) {
-	luaL_register(L, "windows", Reg);
-	lua_pushliteral(L, "version");			/** version */
+	lua_newtable(L);
+	luaL_register(L, NULL, Reg);
 	lua_pushliteral(L, "-3.14");
-	lua_settable(L,-3);
+	lua_setfield(L, -2, "version");
 	return 1;
 }
--- a/util/array.lua	Tue Sep 16 13:02:21 2014 -0400
+++ b/util/array.lua	Thu Sep 18 02:22:48 2014 +0200
@@ -14,6 +14,7 @@
 local math_floor = math.floor;
 local pairs, ipairs = pairs, ipairs;
 local tostring = tostring;
+local type = type;
 
 local array = {};
 local array_base = {};