mirror of
https://github.com/holub/mame
synced 2025-04-21 16:01:56 +03:00

Compile Lua as C++. When Lua is compiled as C, it uses setjmp/longjmp for error handling, resulting in failure to unwind intermediate stack frames. Trying to ensure no objects with non-trivial destructors are in scope when raising a Lua error is error-prone. In particular, converting an exception to a Lua error becomes convoluted, and raising a Lua error from a constructor is effectively impossible. Updated Lua to 5.4.4 - this includes a brand-new garbage collector implementation with better performance. The main thing removed is the deprecated bitlib. Updated sol2 to version 3.3.0 - this adds support for Lua 5.4 and fixes a number of issues, including not correctly handling errors when Lua is built as C++. Updated LuaFileSystem to version 1.8.0 - this adds support for symbolic links on Windows, as well as Lua 5.4 compatibility. Updated LuaSQLite3 to version 0.9.5 - this fixes issues in multi-threaded environments, as well as Lua 5.4 compatibility. Fixed double-free after attempting to construct a debugger expression from Lua with an invalid string, and exposed expression error to Lua in a better way. Added warning level print function to Lua. Fixed saving cheats with shift operators in expressions, although this code isn't actually used as there's no cheat editor.
150 lines
3.0 KiB
Groff
150 lines
3.0 KiB
Groff
.\" $Id: lua.man,v 1.14 2020/05/21 19:31:21 lhf Exp $
|
|
.TH LUA 1 "$Date: 2020/05/21 19:31:21 $"
|
|
.SH NAME
|
|
lua \- Lua interpreter
|
|
.SH SYNOPSIS
|
|
.B lua
|
|
[
|
|
.I options
|
|
]
|
|
[
|
|
.I script
|
|
[
|
|
.I args
|
|
]
|
|
]
|
|
.SH DESCRIPTION
|
|
.B lua
|
|
is the standalone Lua interpreter.
|
|
It loads and executes Lua programs,
|
|
either in textual source form or
|
|
in precompiled binary form.
|
|
(Precompiled binaries are output by
|
|
.BR luac ,
|
|
the Lua compiler.)
|
|
.B lua
|
|
can be used as a batch interpreter and also interactively.
|
|
.LP
|
|
After handling the
|
|
.IR options ,
|
|
the Lua program in file
|
|
.I script
|
|
is loaded and executed.
|
|
The
|
|
.I args
|
|
are available to
|
|
.I script
|
|
as strings in a global table named
|
|
.B arg
|
|
and also as arguments to its main function.
|
|
When called without arguments,
|
|
.B lua
|
|
behaves as
|
|
.B "lua \-v \-i"
|
|
if the standard input is a terminal,
|
|
and as
|
|
.B "lua \-"
|
|
otherwise.
|
|
.LP
|
|
In interactive mode,
|
|
.B lua
|
|
prompts the user,
|
|
reads lines from the standard input,
|
|
and executes them as they are read.
|
|
If the line contains an expression,
|
|
then the line is evaluated and the result is printed.
|
|
If a line does not contain a complete statement,
|
|
then a secondary prompt is displayed and
|
|
lines are read until a complete statement is formed or
|
|
a syntax error is found.
|
|
.LP
|
|
Before handling command line options and scripts,
|
|
.B lua
|
|
checks the contents of the environment variables
|
|
.B LUA_INIT_5_4
|
|
and
|
|
.BR LUA_INIT ,
|
|
in that order.
|
|
If the contents are of the form
|
|
.RI '@ filename ',
|
|
then
|
|
.I filename
|
|
is executed.
|
|
Otherwise, the contents are assumed to be a Lua statement and is executed.
|
|
When
|
|
.B LUA_INIT_5_4
|
|
is defined,
|
|
.B LUA_INIT
|
|
is ignored.
|
|
.SH OPTIONS
|
|
.TP
|
|
.BI \-e " stat"
|
|
execute statement
|
|
.IR stat .
|
|
.TP
|
|
.B \-i
|
|
enter interactive mode after executing
|
|
.IR script .
|
|
.TP
|
|
.BI \-l " name"
|
|
require library
|
|
.I name
|
|
into global
|
|
.IR name .
|
|
.TP
|
|
.B \-v
|
|
show version information.
|
|
.TP
|
|
.B \-E
|
|
ignore environment variables.
|
|
.TP
|
|
.B \-W
|
|
turn warnings on.
|
|
.TP
|
|
.B \-\-
|
|
stop handling options.
|
|
.TP
|
|
.B \-
|
|
stop handling options and execute the standard input as a file.
|
|
.SH ENVIRONMENT VARIABLES
|
|
The following environment variables affect the execution of
|
|
.BR lua .
|
|
When defined,
|
|
the version-specific variants take priority
|
|
and the version-neutral variants are ignored.
|
|
.TP
|
|
.B LUA_INIT, LUA_INIT_5_4
|
|
Code to be executed before command line options and scripts.
|
|
.TP
|
|
.B LUA_PATH, LUA_PATH_5_4
|
|
Initial value of package.cpath,
|
|
the path used by require to search for Lua loaders.
|
|
.TP
|
|
.B LUA_CPATH, LUA_CPATH_5_4
|
|
Initial value of package.cpath,
|
|
the path used by require to search for C loaders.
|
|
.SH EXIT STATUS
|
|
If a script calls os.exit,
|
|
then
|
|
.B lua
|
|
exits with the given exit status.
|
|
Otherwise,
|
|
.B lua
|
|
exits
|
|
with EXIT_SUCCESS (0 on POSIX systems) if there were no errors
|
|
and
|
|
with EXIT_FAILURE (1 on POSIX systems) if there were errors.
|
|
Errors raised in interactive mode do not cause exits.
|
|
.SH DIAGNOSTICS
|
|
Error messages should be self explanatory.
|
|
.SH "SEE ALSO"
|
|
.BR luac (1)
|
|
.br
|
|
The documentation at lua.org,
|
|
especially section 7 of the reference manual.
|
|
.SH AUTHORS
|
|
R. Ierusalimschy,
|
|
L. H. de Figueiredo,
|
|
W. Celes
|
|
.\" EOF
|