一尘不染

LuaSocket,Lua 5.2和Redis

redis

有没有人能够使它们一起工作?我已经将5.2很好地工作了,它可以找到lua-
redis(redis.lua),但是它无法加载套接字模块,而我似乎无法使用lua(LuaSocket版本2.0.2)。任何人都有任何技巧可以使它正常工作吗?

我尝试过制作luasocket,但是它完全失败了,我认为这是由于我的lua版本5.2。

答案只是恢复到lua 5.1,还是我不知道的另一种解决方法?


阅读 303

收藏
2020-06-20

共1个答案

一尘不染

与许多Lua库一样,当前版本的LuaSocket不支持Lua
5.2。对于Lua,该版本第二位的更改表示主要版本,并且不维护向后兼容(在某些情况下,通过编译标志重新启用不赞成使用的功能除外)。

Lua 5.1是稳定的,除非您需要5.2中添加的功能,否则没有特别的理由不使用它。

就是说,当前包括LuaSocket在内的许多库都已更新为5.2兼容。如果您决心从源代码和调整Makefile进行编译,请尝试使用此存储库,它是5.2兼容的LuaSocket版本。

请注意,必须使用已LUA_COMPAT_MODULE定义的Lua
5.2构建此版本的LuaSocket才能对其进行编译。您还需要编辑makefile,以适应系统上的正确路径。

再过3-4个月左右,我认为许多通用库将与5.2兼容。但是,我认为除非很小,否则我认为基于5.2的项目还为时过早。将代码向下移植到5.2并不难(特别是如果您熟悉不推荐使用的功能,那么可以避免在5.1中过多依赖它们-
特别是setfenv()and module())。

2020-06-20