Module pl.compat
Lua 5.1/5.2/5.3 compatibility.
Injects table.pack, table.unpack, and package.searchpath in the global environment, to make sure they are available for Lua 5.1 and LuaJIT.
All other functions are exported as usual in the returned module table.
NOTE: everything in this module is also available in pl.utils.
Functions
execute (cmd) | execute a shell command, in a compatible and platform independent way. |
load (ld[, source[, mode[, env]]]) | Load Lua code as a text or binary chunk (in a Lua 5.2 compatible way). |
getfenv (f) | Get environment of a function (in a Lua 5.1 compatible way). |
setfenv (f, env) | Set environment of a function (in a Lua 5.1 compatible way). |
Fields
lua51 | boolean flag this is Lua 5.1 (or LuaJIT). |
jit | boolean flag this is LuaJIT. |
jit52 | boolean flag this is LuaJIT with 5.2 compatibility compiled in. |
dir_separator | the directory separator character for the current platform. |
is_windows | boolean flag this is a Windows platform. |
Global exported functions (for Lua 5.1 & LuaJIT)
table.pack (...) | pack an argument list into a table. |
table.unpack (t[, i[, j]]) | unpack a table and return the elements. |
package.searchpath (name, path[, sep[, rep]]) | return the full path where a file name would be matched. |
Global exported functions (for Lua < 5.4)
warn (...) | raise a warning message. |
Functions
- execute (cmd)
-
execute a shell command, in a compatible and platform independent way.
This is a compatibility function that returns the same for Lua 5.1 and
Lua 5.2+.
NOTE: Windows systems can use signed 32bit integer exitcodes. Posix systems only use exitcodes 0-255, anything else is undefined.
NOTE2: In Lua 5.2 and 5.3 a Windows exitcode of -1 would not properly be returned, this function will return it properly for all versions.
Parameters:
- cmd a shell command
Returns:
- true if successful
- actual return code
- load (ld[, source[, mode[, env]]])
-
Load Lua code as a text or binary chunk (in a Lua 5.2 compatible way).
Parameters:
- ld code string or loader
- source name of chunk for errors (optional)
- mode 'b', 't' or 'bt' (optional)
- env environment to load the chunk in (optional)
- getfenv (f)
-
Get environment of a function (in a Lua 5.1 compatible way).
Not 100% compatible, so with Lua 5.2 it may return nil for a function with no
global references!
Based on code by Sergey Rozhenko
Parameters:
- f a function or a call stack reference
- setfenv (f, env)
-
Set environment of a function (in a Lua 5.1 compatible way).
Parameters:
- f a function or a call stack reference
- env
a table that becomes the new environment of
f
Fields
- lua51
-
boolean flag this is Lua 5.1 (or LuaJIT).
- lua51
- jit
-
boolean flag this is LuaJIT.
- jit
- jit52
-
boolean flag this is LuaJIT with 5.2 compatibility compiled in.
- jit52
- dir_separator
-
the directory separator character for the current platform.
- dir_separator
- is_windows
-
boolean flag this is a Windows platform.
- is_windows
Global exported functions (for Lua 5.1 & LuaJIT)
- table.pack (...)
-
pack an argument list into a table.
Parameters:
- ... any arguments
Returns:
-
a table with field n set to the length
- table.unpack (t[, i[, j]])
-
unpack a table and return the elements.
NOTE: this version does NOT honor the n field, and hence it is not nil-safe. See utils.unpack for a version that is nil-safe.
Parameters:
- t table to unpack
- i index from which to start unpacking, defaults to 1 (optional)
- j index of the last element to unpack, defaults to #t (optional)
Returns:
-
multiple return values from the table
See also:
- package.searchpath (name, path[, sep[, rep]])
-
return the full path where a file name would be matched.
This function was introduced in Lua 5.2, so this compatibility version
will be injected in Lua 5.1 engines.
Parameters:
- name string file name, possibly dotted
- path string a path-template in the same form as package.path or package.cpath
- sep string template separate character to be replaced by path separator. Default: "." (optional)
- rep string the path separator to use, defaults to system separator. Default; "/" on Unixes, "\" on Windows. (optional)
Returns:
- on success: path of the file
- on failure: nil, error string listing paths tried
See also:
Global exported functions (for Lua < 5.4)
- warn (...)
-
raise a warning message.
This functions mimics the warn function added in Lua 5.4.
Parameters:
- ... any arguments