lua: reject Lua 5.3

It simply doesn't work, and is hard to make work. Lua 5.3 is a different
language from 5.1 and 5.2, and is different enough to make adding
support a major issue. Most importantly, 5.3 introduced integer types,
which completely mess up any code which deals with numbers.

I tried to make this a compile time check, but failed. Still at least
try to avoid selecting the 5.3 pkg-config package when the generic "lua"
name is used (why can't Lua upstream just provide an official .pc
file...). Maybe this actually covers all cases.

Fixes #1729 (kind of).
This commit is contained in:
wm4 2015-04-01 23:59:09 +02:00
parent f9db94ab71
commit 9b59c175e3
2 changed files with 6 additions and 1 deletions

View File

@ -377,6 +377,11 @@ static int load_lua(struct mpv_handle *client, const char *fname)
.filename = fname,
};
if (LUA_VERSION_NUM != 501 && LUA_VERSION_NUM != 502) {
MP_FATAL(ctx, "Only Lua 5.1 and 5.2 are supported.\n");
goto error_out;
}
lua_State *L = ctx->state = luaL_newstate();
if (!L)
goto error_out;

View File

@ -54,7 +54,7 @@ def check_lua(ctx, dependency_identifier):
( '51', 'lua >= 5.1.0 lua < 5.2.0'),
( '51deb', 'lua5.1 >= 5.1.0'), # debian
( '51fbsd', 'lua-5.1 >= 5.1.0'), # FreeBSD
( '52', 'lua >= 5.2.0' ),
( '52', 'lua >= 5.2.0 lua < 5.3.0' ),
( '52deb', 'lua5.2 >= 5.2.0'), # debian
( '52fbsd', 'lua-5.2 >= 5.2.0'), # FreeBSD
( 'luajit', 'luajit >= 2.0.0' ),