xref: /freebsd-12.1/contrib/lua/doc/readme.html (revision e112e9d2)
18e3e3a7aSWarner Losh<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
28e3e3a7aSWarner Losh<HTML>
38e3e3a7aSWarner Losh<HEAD>
48e3e3a7aSWarner Losh<TITLE>Lua 5.3 readme</TITLE>
58e3e3a7aSWarner Losh<LINK REL="stylesheet" TYPE="text/css" HREF="lua.css">
68e3e3a7aSWarner Losh<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">
78e3e3a7aSWarner Losh<STYLE TYPE="text/css">
88e3e3a7aSWarner Loshblockquote, .display {
98e3e3a7aSWarner Losh	border: solid #a0a0a0 2px ;
108e3e3a7aSWarner Losh	border-radius: 8px ;
118e3e3a7aSWarner Losh	padding: 1em ;
128e3e3a7aSWarner Losh	margin: 0px ;
138e3e3a7aSWarner Losh}
148e3e3a7aSWarner Losh
158e3e3a7aSWarner Losh.display {
168e3e3a7aSWarner Losh	word-spacing: 0.25em ;
178e3e3a7aSWarner Losh}
188e3e3a7aSWarner Losh
198e3e3a7aSWarner Loshdl.display dd {
208e3e3a7aSWarner Losh	padding-bottom: 0.2em ;
218e3e3a7aSWarner Losh}
228e3e3a7aSWarner Losh
238e3e3a7aSWarner Loshtt, kbd, code {
248e3e3a7aSWarner Losh	font-size: 12pt ;
258e3e3a7aSWarner Losh}
268e3e3a7aSWarner Losh</STYLE>
278e3e3a7aSWarner Losh</HEAD>
288e3e3a7aSWarner Losh
298e3e3a7aSWarner Losh<BODY>
308e3e3a7aSWarner Losh
318e3e3a7aSWarner Losh<H1>
328e3e3a7aSWarner Losh<A HREF="http://www.lua.org/"><IMG SRC="logo.gif" ALT="Lua"></A>
338e3e3a7aSWarner LoshWelcome to Lua 5.3
348e3e3a7aSWarner Losh</H1>
358e3e3a7aSWarner Losh
368e3e3a7aSWarner Losh<DIV CLASS="menubar">
378e3e3a7aSWarner Losh<A HREF="#about">about</A>
388e3e3a7aSWarner Losh&middot;
398e3e3a7aSWarner Losh<A HREF="#install">installation</A>
408e3e3a7aSWarner Losh&middot;
418e3e3a7aSWarner Losh<A HREF="#changes">changes</A>
428e3e3a7aSWarner Losh&middot;
438e3e3a7aSWarner Losh<A HREF="#license">license</A>
448e3e3a7aSWarner Losh&middot;
458e3e3a7aSWarner Losh<A HREF="contents.html">reference manual</A>
468e3e3a7aSWarner Losh</DIV>
478e3e3a7aSWarner Losh
488e3e3a7aSWarner Losh<H2><A NAME="about">About Lua</A></H2>
498e3e3a7aSWarner Losh<P>
508e3e3a7aSWarner LoshLua is a powerful, fast, lightweight, embeddable scripting language
518e3e3a7aSWarner Loshdeveloped by a
528e3e3a7aSWarner Losh<A HREF="http://www.lua.org/authors.html">team</A>
538e3e3a7aSWarner Loshat
548e3e3a7aSWarner Losh<A HREF="http://www.puc-rio.br/">PUC-Rio</A>,
558e3e3a7aSWarner Loshthe Pontifical Catholic University of Rio de Janeiro in Brazil.
568e3e3a7aSWarner LoshLua is
578e3e3a7aSWarner Losh<A HREF="#license">free software</A>
588e3e3a7aSWarner Loshused in many products and projects around the world.
598e3e3a7aSWarner Losh
608e3e3a7aSWarner Losh<P>
618e3e3a7aSWarner LoshLua's
628e3e3a7aSWarner Losh<A HREF="http://www.lua.org/">official web site</A>
638e3e3a7aSWarner Loshprovides complete information
648e3e3a7aSWarner Loshabout Lua,
658e3e3a7aSWarner Loshincluding
668e3e3a7aSWarner Loshan
678e3e3a7aSWarner Losh<A HREF="http://www.lua.org/about.html">executive summary</A>
688e3e3a7aSWarner Loshand
698e3e3a7aSWarner Loshupdated
708e3e3a7aSWarner Losh<A HREF="http://www.lua.org/docs.html">documentation</A>,
718e3e3a7aSWarner Loshespecially the
728e3e3a7aSWarner Losh<A HREF="http://www.lua.org/manual/5.3/">reference manual</A>,
738e3e3a7aSWarner Loshwhich may differ slightly from the
748e3e3a7aSWarner Losh<A HREF="contents.html">local copy</A>
758e3e3a7aSWarner Loshdistributed in this package.
768e3e3a7aSWarner Losh
778e3e3a7aSWarner Losh<H2><A NAME="install">Installing Lua</A></H2>
788e3e3a7aSWarner Losh<P>
798e3e3a7aSWarner LoshLua is distributed in
808e3e3a7aSWarner Losh<A HREF="http://www.lua.org/ftp/">source</A>
818e3e3a7aSWarner Loshform.
828e3e3a7aSWarner LoshYou need to build it before using it.
838e3e3a7aSWarner LoshBuilding Lua should be straightforward
848e3e3a7aSWarner Loshbecause
858e3e3a7aSWarner LoshLua is implemented in pure ANSI C and compiles unmodified in all known
868e3e3a7aSWarner Loshplatforms that have an ANSI C compiler.
878e3e3a7aSWarner LoshLua also compiles unmodified as C++.
888e3e3a7aSWarner LoshThe instructions given below for building Lua are for Unix-like platforms.
898e3e3a7aSWarner LoshSee also
908e3e3a7aSWarner Losh<A HREF="#other">instructions for other systems</A>
918e3e3a7aSWarner Loshand
928e3e3a7aSWarner Losh<A HREF="#customization">customization options</A>.
938e3e3a7aSWarner Losh
948e3e3a7aSWarner Losh<P>
958e3e3a7aSWarner LoshIf you don't have the time or the inclination to compile Lua yourself,
968e3e3a7aSWarner Loshget a binary from
978e3e3a7aSWarner Losh<A HREF="http://lua-users.org/wiki/LuaBinaries">LuaBinaries</A>.
988e3e3a7aSWarner LoshTry also
998e3e3a7aSWarner Losh<A HREF="http://luadist.org/">LuaDist</A>,
1008e3e3a7aSWarner Losha multi-platform distribution of Lua that includes batteries.
1018e3e3a7aSWarner Losh
1028e3e3a7aSWarner Losh<H3>Building Lua</H3>
1038e3e3a7aSWarner Losh<P>
1048e3e3a7aSWarner LoshIn most Unix-like platforms, simply do "<KBD>make</KBD>" with a suitable target.
1058e3e3a7aSWarner LoshHere are the details.
1068e3e3a7aSWarner Losh
1078e3e3a7aSWarner Losh<OL>
1088e3e3a7aSWarner Losh<LI>
1098e3e3a7aSWarner LoshOpen a terminal window and move to
110*e112e9d2SKyle Evansthe top-level directory, which is named <TT>lua-5.3.5</TT>.
1118e3e3a7aSWarner LoshThe <TT>Makefile</TT> there controls both the build process and the installation process.
1128e3e3a7aSWarner Losh<P>
1138e3e3a7aSWarner Losh<LI>
1148e3e3a7aSWarner Losh  Do "<KBD>make</KBD>" and see if your platform is listed.
1158e3e3a7aSWarner Losh  The platforms currently supported are:
1168e3e3a7aSWarner Losh<P>
1178e3e3a7aSWarner Losh<P CLASS="display">
1188e3e3a7aSWarner Losh   aix bsd c89 freebsd generic linux macosx mingw posix solaris
1198e3e3a7aSWarner Losh</P>
1208e3e3a7aSWarner Losh<P>
1218e3e3a7aSWarner Losh  If your platform is listed, just do "<KBD>make xxx</KBD>", where xxx
1228e3e3a7aSWarner Losh  is your platform name.
1238e3e3a7aSWarner Losh<P>
1248e3e3a7aSWarner Losh  If your platform is not listed, try the closest one or posix, generic,
1258e3e3a7aSWarner Losh  c89, in this order.
1268e3e3a7aSWarner Losh<P>
1278e3e3a7aSWarner Losh<LI>
1288e3e3a7aSWarner LoshThe compilation takes only a few moments
1298e3e3a7aSWarner Loshand produces three files in the <TT>src</TT> directory:
1308e3e3a7aSWarner Loshlua (the interpreter),
1318e3e3a7aSWarner Loshluac (the compiler),
1328e3e3a7aSWarner Loshand liblua.a (the library).
1338e3e3a7aSWarner Losh<P>
1348e3e3a7aSWarner Losh<LI>
1358e3e3a7aSWarner Losh  To check that Lua has been built correctly, do "<KBD>make test</KBD>"
1368e3e3a7aSWarner Losh  after building Lua. This will run the interpreter and print its version.
1378e3e3a7aSWarner Losh</OL>
1388e3e3a7aSWarner Losh<P>
1398e3e3a7aSWarner LoshIf you're running Linux and get compilation errors,
1408e3e3a7aSWarner Loshmake sure you have installed the <TT>readline</TT> development package
1418e3e3a7aSWarner Losh(which is probably named <TT>libreadline-dev</TT> or <TT>readline-devel</TT>).
1428e3e3a7aSWarner LoshIf you get link errors after that,
1438e3e3a7aSWarner Loshthen try "<KBD>make linux MYLIBS=-ltermcap</KBD>".
1448e3e3a7aSWarner Losh
1458e3e3a7aSWarner Losh<H3>Installing Lua</H3>
1468e3e3a7aSWarner Losh<P>
1478e3e3a7aSWarner Losh  Once you have built Lua, you may want to install it in an official
1488e3e3a7aSWarner Losh  place in your system. In this case, do "<KBD>make install</KBD>". The official
1498e3e3a7aSWarner Losh  place and the way to install files are defined in the <TT>Makefile</TT>. You'll
1508e3e3a7aSWarner Losh  probably need the right permissions to install files.
1518e3e3a7aSWarner Losh
1528e3e3a7aSWarner Losh<P>
1538e3e3a7aSWarner Losh  To build and install Lua in one step, do "<KBD>make xxx install</KBD>",
1548e3e3a7aSWarner Losh  where xxx is your platform name.
1558e3e3a7aSWarner Losh
1568e3e3a7aSWarner Losh<P>
1578e3e3a7aSWarner Losh  To install Lua locally, do "<KBD>make local</KBD>".
1588e3e3a7aSWarner Losh  This will create a directory <TT>install</TT> with subdirectories
1598e3e3a7aSWarner Losh  <TT>bin</TT>, <TT>include</TT>, <TT>lib</TT>, <TT>man</TT>, <TT>share</TT>,
1608e3e3a7aSWarner Losh  and install Lua as listed below.
1618e3e3a7aSWarner Losh
1628e3e3a7aSWarner Losh  To install Lua locally, but in some other directory, do
1638e3e3a7aSWarner Losh  "<KBD>make install INSTALL_TOP=xxx</KBD>", where xxx is your chosen directory.
1648e3e3a7aSWarner Losh  The installation starts in the <TT>src</TT> and <TT>doc</TT> directories,
1658e3e3a7aSWarner Losh  so take care if <TT>INSTALL_TOP</TT> is not an absolute path.
1668e3e3a7aSWarner Losh
1678e3e3a7aSWarner Losh<DL CLASS="display">
1688e3e3a7aSWarner Losh<DT>
1698e3e3a7aSWarner Losh    bin:
1708e3e3a7aSWarner Losh<DD>
1718e3e3a7aSWarner Losh    lua luac
1728e3e3a7aSWarner Losh<DT>
1738e3e3a7aSWarner Losh    include:
1748e3e3a7aSWarner Losh<DD>
1758e3e3a7aSWarner Losh    lua.h luaconf.h lualib.h lauxlib.h lua.hpp
1768e3e3a7aSWarner Losh<DT>
1778e3e3a7aSWarner Losh    lib:
1788e3e3a7aSWarner Losh<DD>
1798e3e3a7aSWarner Losh    liblua.a
1808e3e3a7aSWarner Losh<DT>
1818e3e3a7aSWarner Losh    man/man1:
1828e3e3a7aSWarner Losh<DD>
1838e3e3a7aSWarner Losh    lua.1 luac.1
1848e3e3a7aSWarner Losh</DL>
1858e3e3a7aSWarner Losh
1868e3e3a7aSWarner Losh<P>
1878e3e3a7aSWarner Losh  These are the only directories you need for development.
1888e3e3a7aSWarner Losh  If you only want to run Lua programs,
1898e3e3a7aSWarner Losh  you only need the files in <TT>bin</TT> and <TT>man</TT>.
1908e3e3a7aSWarner Losh  The files in <TT>include</TT> and <TT>lib</TT> are needed for
1918e3e3a7aSWarner Losh  embedding Lua in C or C++ programs.
1928e3e3a7aSWarner Losh
1938e3e3a7aSWarner Losh<H3><A NAME="customization">Customization</A></H3>
1948e3e3a7aSWarner Losh<P>
1958e3e3a7aSWarner Losh  Three kinds of things can be customized by editing a file:
1968e3e3a7aSWarner Losh<UL>
1978e3e3a7aSWarner Losh    <LI> Where and how to install Lua &mdash; edit <TT>Makefile</TT>.
1988e3e3a7aSWarner Losh    <LI> How to build Lua &mdash; edit <TT>src/Makefile</TT>.
1998e3e3a7aSWarner Losh    <LI> Lua features &mdash; edit <TT>src/luaconf.h</TT>.
2008e3e3a7aSWarner Losh</UL>
2018e3e3a7aSWarner Losh
2028e3e3a7aSWarner Losh<P>
2038e3e3a7aSWarner Losh  You don't actually need to edit the Makefiles because you may set the
2048e3e3a7aSWarner Losh  relevant variables in the command line when invoking make.
2058e3e3a7aSWarner Losh  Nevertheless, it's probably best to edit and save the Makefiles to
2068e3e3a7aSWarner Losh  record the changes you've made.
2078e3e3a7aSWarner Losh
2088e3e3a7aSWarner Losh<P>
2098e3e3a7aSWarner Losh  On the other hand, if you need to customize some Lua features, you'll need
2108e3e3a7aSWarner Losh  to edit <TT>src/luaconf.h</TT> before building and installing Lua.
2118e3e3a7aSWarner Losh  The edited file will be the one installed, and
2128e3e3a7aSWarner Losh  it will be used by any Lua clients that you build, to ensure consistency.
2138e3e3a7aSWarner Losh  Further customization is available to experts by editing the Lua sources.
2148e3e3a7aSWarner Losh
2158e3e3a7aSWarner Losh<H3><A NAME="other">Building Lua on other systems</A></H3>
2168e3e3a7aSWarner Losh<P>
2178e3e3a7aSWarner Losh  If you're not using the usual Unix tools, then the instructions for
2188e3e3a7aSWarner Losh  building Lua depend on the compiler you use. You'll need to create
2198e3e3a7aSWarner Losh  projects (or whatever your compiler uses) for building the library,
2208e3e3a7aSWarner Losh  the interpreter, and the compiler, as follows:
2218e3e3a7aSWarner Losh
2228e3e3a7aSWarner Losh<DL CLASS="display">
2238e3e3a7aSWarner Losh<DT>
2248e3e3a7aSWarner Loshlibrary:
2258e3e3a7aSWarner Losh<DD>
2268e3e3a7aSWarner Loshlapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c
2278e3e3a7aSWarner Loshlmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c
2288e3e3a7aSWarner Loshltm.c lundump.c lvm.c lzio.c
2298e3e3a7aSWarner Loshlauxlib.c lbaselib.c lbitlib.c lcorolib.c ldblib.c liolib.c
2308e3e3a7aSWarner Loshlmathlib.c loslib.c lstrlib.c ltablib.c lutf8lib.c loadlib.c linit.c
2318e3e3a7aSWarner Losh<DT>
2328e3e3a7aSWarner Loshinterpreter:
2338e3e3a7aSWarner Losh<DD>
2348e3e3a7aSWarner Losh  library, lua.c
2358e3e3a7aSWarner Losh<DT>
2368e3e3a7aSWarner Loshcompiler:
2378e3e3a7aSWarner Losh<DD>
2388e3e3a7aSWarner Losh  library, luac.c
2398e3e3a7aSWarner Losh</DL>
2408e3e3a7aSWarner Losh
2418e3e3a7aSWarner Losh<P>
2428e3e3a7aSWarner Losh  To use Lua as a library in your own programs you'll need to know how to
2438e3e3a7aSWarner Losh  create and use libraries with your compiler. Moreover, to dynamically load
2448e3e3a7aSWarner Losh  C libraries for Lua you'll need to know how to create dynamic libraries
2458e3e3a7aSWarner Losh  and you'll need to make sure that the Lua API functions are accessible to
2468e3e3a7aSWarner Losh  those dynamic libraries &mdash; but <EM>don't</EM> link the Lua library
2478e3e3a7aSWarner Losh  into each dynamic library. For Unix, we recommend that the Lua library
2488e3e3a7aSWarner Losh  be linked statically into the host program and its symbols exported for
2498e3e3a7aSWarner Losh  dynamic linking; <TT>src/Makefile</TT> does this for the Lua interpreter.
2508e3e3a7aSWarner Losh  For Windows, we recommend that the Lua library be a DLL.
2518e3e3a7aSWarner Losh  In all cases, the compiler luac should be linked statically.
2528e3e3a7aSWarner Losh
2538e3e3a7aSWarner Losh<P>
2548e3e3a7aSWarner Losh  As mentioned above, you may edit <TT>src/luaconf.h</TT> to customize
2558e3e3a7aSWarner Losh  some features before building Lua.
2568e3e3a7aSWarner Losh
2578e3e3a7aSWarner Losh<H2><A NAME="changes">Changes since Lua 5.2</A></H2>
2588e3e3a7aSWarner Losh<P>
2598e3e3a7aSWarner LoshHere are the main changes introduced in Lua 5.3.
2608e3e3a7aSWarner LoshThe
2618e3e3a7aSWarner Losh<A HREF="contents.html">reference manual</A>
2628e3e3a7aSWarner Loshlists the
2638e3e3a7aSWarner Losh<A HREF="manual.html#8">incompatibilities</A> that had to be introduced.
2648e3e3a7aSWarner Losh
2658e3e3a7aSWarner Losh<H3>Main changes</H3>
2668e3e3a7aSWarner Losh<UL>
2678e3e3a7aSWarner Losh<LI> integers (64-bit by default)
2688e3e3a7aSWarner Losh<LI> official support for 32-bit numbers
2698e3e3a7aSWarner Losh<LI> bitwise operators
2708e3e3a7aSWarner Losh<LI> basic utf-8 support
2718e3e3a7aSWarner Losh<LI> functions for packing and unpacking values
2728e3e3a7aSWarner Losh
2738e3e3a7aSWarner Losh</UL>
2748e3e3a7aSWarner Losh
2758e3e3a7aSWarner LoshHere are the other changes introduced in Lua 5.3:
2768e3e3a7aSWarner Losh<H3>Language</H3>
2778e3e3a7aSWarner Losh<UL>
2788e3e3a7aSWarner Losh<LI> userdata can have any Lua value as uservalue
2798e3e3a7aSWarner Losh<LI> floor division
2808e3e3a7aSWarner Losh<LI> more flexible rules for some metamethods
2818e3e3a7aSWarner Losh</UL>
2828e3e3a7aSWarner Losh
2838e3e3a7aSWarner Losh<H3>Libraries</H3>
2848e3e3a7aSWarner Losh<UL>
2858e3e3a7aSWarner Losh<LI> <CODE>ipairs</CODE> and the table library respect metamethods
2868e3e3a7aSWarner Losh<LI> strip option in <CODE>string.dump</CODE>
2878e3e3a7aSWarner Losh<LI> table library respects metamethods
2888e3e3a7aSWarner Losh<LI> new function <CODE>table.move</CODE>
2898e3e3a7aSWarner Losh<LI> new function <CODE>string.pack</CODE>
2908e3e3a7aSWarner Losh<LI> new function <CODE>string.unpack</CODE>
2918e3e3a7aSWarner Losh<LI> new function <CODE>string.packsize</CODE>
2928e3e3a7aSWarner Losh</UL>
2938e3e3a7aSWarner Losh
2948e3e3a7aSWarner Losh<H3>C API</H3>
2958e3e3a7aSWarner Losh<UL>
2968e3e3a7aSWarner Losh<LI> simpler API for continuation functions in C
2978e3e3a7aSWarner Losh<LI> <CODE>lua_gettable</CODE> and similar functions return type of resulted value
2988e3e3a7aSWarner Losh<LI> strip option in <CODE>lua_dump</CODE>
2998e3e3a7aSWarner Losh<LI> new function: <CODE>lua_geti</CODE>
3008e3e3a7aSWarner Losh<LI> new function: <CODE>lua_seti</CODE>
3018e3e3a7aSWarner Losh<LI> new function: <CODE>lua_isyieldable</CODE>
3028e3e3a7aSWarner Losh<LI> new function: <CODE>lua_numbertointeger</CODE>
3038e3e3a7aSWarner Losh<LI> new function: <CODE>lua_rotate</CODE>
3048e3e3a7aSWarner Losh<LI> new function: <CODE>lua_stringtonumber</CODE>
3058e3e3a7aSWarner Losh</UL>
3068e3e3a7aSWarner Losh
3078e3e3a7aSWarner Losh<H3>Lua standalone interpreter</H3>
3088e3e3a7aSWarner Losh<UL>
3098e3e3a7aSWarner Losh<LI> can be used as calculator; no need to prefix with '='
3108e3e3a7aSWarner Losh<LI> <CODE>arg</CODE> table available to all code
3118e3e3a7aSWarner Losh</UL>
3128e3e3a7aSWarner Losh
3138e3e3a7aSWarner Losh<H2><A NAME="license">License</A></H2>
3148e3e3a7aSWarner Losh<P>
3158e3e3a7aSWarner Losh<A HREF="http://www.opensource.org/docs/definition.php">
3168e3e3a7aSWarner Losh<IMG SRC="osi-certified-72x60.png" ALIGN="right" ALT="[osi certified]" STYLE="padding-left: 30px ;">
3178e3e3a7aSWarner Losh</A>
3188e3e3a7aSWarner LoshLua is free software distributed under the terms of the
3198e3e3a7aSWarner Losh<A HREF="http://www.opensource.org/licenses/mit-license.html">MIT license</A>
3208e3e3a7aSWarner Loshreproduced below;
3218e3e3a7aSWarner Loshit may be used for any purpose, including commercial purposes,
3228e3e3a7aSWarner Loshat absolutely no cost without having to ask us.
3238e3e3a7aSWarner Losh
3248e3e3a7aSWarner LoshThe only requirement is that if you do use Lua,
3258e3e3a7aSWarner Loshthen you should give us credit by including the appropriate copyright notice somewhere in your product or its documentation.
3268e3e3a7aSWarner Losh
3278e3e3a7aSWarner LoshFor details, see
3288e3e3a7aSWarner Losh<A HREF="http://www.lua.org/license.html">this</A>.
3298e3e3a7aSWarner Losh
3308e3e3a7aSWarner Losh<BLOCKQUOTE STYLE="padding-bottom: 0em">
3318e3e3a7aSWarner LoshCopyright &copy; 1994&ndash;2017 Lua.org, PUC-Rio.
3328e3e3a7aSWarner Losh
3338e3e3a7aSWarner Losh<P>
3348e3e3a7aSWarner LoshPermission is hereby granted, free of charge, to any person obtaining a copy
3358e3e3a7aSWarner Loshof this software and associated documentation files (the "Software"), to deal
3368e3e3a7aSWarner Loshin the Software without restriction, including without limitation the rights
3378e3e3a7aSWarner Loshto use, copy, modify, merge, publish, distribute, sublicense, and/or sell
3388e3e3a7aSWarner Loshcopies of the Software, and to permit persons to whom the Software is
3398e3e3a7aSWarner Loshfurnished to do so, subject to the following conditions:
3408e3e3a7aSWarner Losh
3418e3e3a7aSWarner Losh<P>
3428e3e3a7aSWarner LoshThe above copyright notice and this permission notice shall be included in
3438e3e3a7aSWarner Loshall copies or substantial portions of the Software.
3448e3e3a7aSWarner Losh
3458e3e3a7aSWarner Losh<P>
3468e3e3a7aSWarner LoshTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
3478e3e3a7aSWarner LoshIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
3488e3e3a7aSWarner LoshFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
3498e3e3a7aSWarner LoshAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
3508e3e3a7aSWarner LoshLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
3518e3e3a7aSWarner LoshOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
3528e3e3a7aSWarner LoshTHE SOFTWARE.
3538e3e3a7aSWarner Losh</BLOCKQUOTE>
3548e3e3a7aSWarner Losh<P>
3558e3e3a7aSWarner Losh
3568e3e3a7aSWarner Losh<P CLASS="footer">
3578e3e3a7aSWarner LoshLast update:
358*e112e9d2SKyle EvansMon Jun 18 22:57:33 -03 2018
3598e3e3a7aSWarner Losh</P>
3608e3e3a7aSWarner Losh<!--
361*e112e9d2SKyle EvansLast change: revised for Lua 5.3.5
3628e3e3a7aSWarner Losh-->
3638e3e3a7aSWarner Losh
3648e3e3a7aSWarner Losh</BODY>
3658e3e3a7aSWarner Losh</HTML>
366