How can I detect at runtime if I am running Luajit or PUC Lua 5.1?
Asked Answered
L

1

7

I am writing some test scripts for my Lua project and I want to be sure that they run correctly under the different Lua versions available. Since my unit testing framework can use the wrong Lua version if I misconfigure it, I would like to be extra safe and check at runtime what Lua version my tests are running under. What would be the best way to do that?

I know that a quick way to tell 5.1 and 5.2 apart is to check the _VERSION global but how can I tell regular Lua 5.1 and LuaJIT apart?

Liquidate answered 2/12, 2013 at 18:35 Comment(2)
local is_LuaJIT = ({false, [1] = true})[1]Mullite
@EgorSkriptunoff: would you mind posting that as an answer instead of a comment?Liquidate
L
19

Luajit extends the standard library with a jit module. That is probably a more direct way to detect its presence:

if type(jit) == 'table' then
   print(jit.version)  --LuaJIT 2.0.2
end
Liquidate answered 2/12, 2013 at 18:58 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.