我在运行时如何检测我是否在运行Luajit或PUC Lua 5.1?

我正在为我的 Lua 项目编写一些测试脚本,并且希望确保它们在不同的 Lua 版本下正确运行。由于我的单元测试框架如果配置错误可能会使用错误的 Lua 版本,所以我希望更加安全,能在运行时检查我的测试正在哪个 Lua 版本下运行。最好的方法是什么?

我知道一个快速区分 Lua 5.1 和 5.2 的方法是检查 _VERSION 全局变量。但是如何区分普通的 Lua 5.1 和 LuaJIT 呢?

点赞
用户90511
用户90511

Luajit 通过 jit 模块扩展了标准库。这可能是一种更直接的方法来检测其是否存在:

if type(jit) == 'table' then
   print(jit.version)  --LuaJIT 2.0.2
end
2013-12-02 18:58:21