File

util/bitcompat.lua @ 11687:153d2fdd97d3

net.server_epoll: Add way to enable TCP keeplives on all connections In case one wishes to enable this for all connections, not just c2s (not Direct TLS ones, because LuaSec) and s2s. Unclear what use these are, since they kick in after 2 hours of idle time.
author Kim Alvefur <zash@zash.se>
date Wed, 14 Jul 2021 22:09:39 +0200
parent 10241:48f7cda4174d
child 12573:0f4feaf9ca64
line wrap: on
line source

-- Compatibility layer for bitwise operations

-- First try the bit32 lib
-- Lua 5.3 has it with compat enabled
-- Lua 5.2 has it by default
if _G.bit32 then
	return _G.bit32;
else
	-- Lua 5.1 may have it as a standalone module that can be installed
	local ok, bitop = pcall(require, "bit32")
	if ok then
		return bitop;
	end
end

do
	-- Lua 5.3 and 5.4 would be able to use native infix operators
	local ok, bitop = pcall(require, "util.bit53")
	if ok then
		return bitop;
	end
end

do
	-- Lastly, try the LuaJIT bitop library
	local ok, bitop = pcall(require, "bit")
	if ok then
		return bitop;
	end
end

error "No bit module found. See https://prosody.im/doc/depends#bitop";