mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 15:14:08 +00:00
Update documentation for switch to rolling releases.
This commit is contained in:
parent
158a284cc9
commit
c345946819
4
README
4
README
@ -1,5 +1,5 @@
|
|||||||
README for LuaJIT 2.0.5
|
README for LuaJIT 2.0
|
||||||
-----------------------
|
---------------------
|
||||||
|
|
||||||
LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language.
|
LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language.
|
||||||
|
|
||||||
|
@ -206,11 +206,9 @@ img.right {
|
|||||||
.ext {
|
.ext {
|
||||||
color: #ff8000;
|
color: #ff8000;
|
||||||
}
|
}
|
||||||
.new {
|
.note {
|
||||||
font-size: 6pt;
|
padding: 0.5em 1em;
|
||||||
vertical-align: middle;
|
border-left: 3px solid #bfcfff;
|
||||||
background: #ff8000;
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
}
|
||||||
#site {
|
#site {
|
||||||
clear: both;
|
clear: both;
|
||||||
|
@ -42,9 +42,9 @@
|
|||||||
<a href="ext_c_api.html">Lua/C API</a>
|
<a href="ext_c_api.html">Lua/C API</a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="status.html">Status</a>
|
<a href="https://luajit.org/status.html">Status <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="faq.html">FAQ</a>
|
<a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
@ -42,9 +42,9 @@
|
|||||||
<a class="current" href="ext_c_api.html">Lua/C API</a>
|
<a class="current" href="ext_c_api.html">Lua/C API</a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="status.html">Status</a>
|
<a href="https://luajit.org/status.html">Status <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="faq.html">FAQ</a>
|
<a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
@ -42,9 +42,9 @@
|
|||||||
<a href="ext_c_api.html">Lua/C API</a>
|
<a href="ext_c_api.html">Lua/C API</a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="status.html">Status</a>
|
<a href="https://luajit.org/status.html">Status <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="faq.html">FAQ</a>
|
<a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
@ -47,9 +47,9 @@ td.abiparam { font-weight: bold; width: 6em; }
|
|||||||
<a href="ext_c_api.html">Lua/C API</a>
|
<a href="ext_c_api.html">Lua/C API</a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="status.html">Status</a>
|
<a href="https://luajit.org/status.html">Status <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="faq.html">FAQ</a>
|
<a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
@ -47,9 +47,9 @@ td.convop { font-style: italic; width: 40%; }
|
|||||||
<a href="ext_c_api.html">Lua/C API</a>
|
<a href="ext_c_api.html">Lua/C API</a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="status.html">Status</a>
|
<a href="https://luajit.org/status.html">Status <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="faq.html">FAQ</a>
|
<a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
@ -49,9 +49,9 @@ td.idiomlua b { font-weight: normal; color: #2142bf; }
|
|||||||
<a href="ext_c_api.html">Lua/C API</a>
|
<a href="ext_c_api.html">Lua/C API</a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="status.html">Status</a>
|
<a href="https://luajit.org/status.html">Status <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="faq.html">FAQ</a>
|
<a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
@ -42,9 +42,9 @@
|
|||||||
<a href="ext_c_api.html">Lua/C API</a>
|
<a href="ext_c_api.html">Lua/C API</a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="status.html">Status</a>
|
<a href="https://luajit.org/status.html">Status <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="faq.html">FAQ</a>
|
<a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
@ -131,7 +131,9 @@ Contains the LuaJIT version string.
|
|||||||
<h3 id="jit_version_num"><tt>jit.version_num</tt></h3>
|
<h3 id="jit_version_num"><tt>jit.version_num</tt></h3>
|
||||||
<p>
|
<p>
|
||||||
Contains the version number of the LuaJIT core. Version xx.yy.zz
|
Contains the version number of the LuaJIT core. Version xx.yy.zz
|
||||||
is represented by the decimal number xxyyzz.
|
is represented by the decimal number xxyyzz.<br>
|
||||||
|
<b>DEPRECATED after the switch to
|
||||||
|
<a href="https://luajit.org/status.html#release"><span class="ext">»</span> rolling releases</a>. zz is frozen at 99.</b>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 id="jit_os"><tt>jit.os</tt></h3>
|
<h3 id="jit_os"><tt>jit.os</tt></h3>
|
||||||
|
@ -59,14 +59,15 @@ td.excinterop {
|
|||||||
<a href="ext_c_api.html">Lua/C API</a>
|
<a href="ext_c_api.html">Lua/C API</a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="status.html">Status</a>
|
<a href="https://luajit.org/status.html">Status <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="faq.html">FAQ</a>
|
<a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</div>
|
</div>
|
||||||
<div id="main">
|
<div id="main">
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
LuaJIT is fully upwards-compatible with Lua 5.1. It supports all
|
LuaJIT is fully upwards-compatible with Lua 5.1. It supports all
|
||||||
<a href="https://www.lua.org/manual/5.1/manual.html#5"><span class="ext">»</span> standard Lua
|
<a href="https://www.lua.org/manual/5.1/manual.html#5"><span class="ext">»</span> standard Lua
|
||||||
|
191
doc/faq.html
191
doc/faq.html
@ -1,191 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Frequently Asked Questions (FAQ)</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
||||||
<meta name="Copyright" content="Copyright (C) 2005-2023">
|
|
||||||
<meta name="Language" content="en">
|
|
||||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
|
||||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
|
||||||
<style type="text/css">
|
|
||||||
dd { margin-left: 1.5em; }
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="site">
|
|
||||||
<a href="https://luajit.org"><span>Lua<span id="logo">JIT</span></span></a>
|
|
||||||
</div>
|
|
||||||
<div id="head">
|
|
||||||
<h1>Frequently Asked Questions (FAQ)</h1>
|
|
||||||
</div>
|
|
||||||
<div id="nav">
|
|
||||||
<ul><li>
|
|
||||||
<a href="luajit.html">LuaJIT</a>
|
|
||||||
<ul><li>
|
|
||||||
<a href="https://luajit.org/download.html">Download <span class="ext">»</span></a>
|
|
||||||
</li><li>
|
|
||||||
<a href="install.html">Installation</a>
|
|
||||||
</li><li>
|
|
||||||
<a href="running.html">Running</a>
|
|
||||||
</li></ul>
|
|
||||||
</li><li>
|
|
||||||
<a href="extensions.html">Extensions</a>
|
|
||||||
<ul><li>
|
|
||||||
<a href="ext_ffi.html">FFI Library</a>
|
|
||||||
<ul><li>
|
|
||||||
<a href="ext_ffi_tutorial.html">FFI Tutorial</a>
|
|
||||||
</li><li>
|
|
||||||
<a href="ext_ffi_api.html">ffi.* API</a>
|
|
||||||
</li><li>
|
|
||||||
<a href="ext_ffi_semantics.html">FFI Semantics</a>
|
|
||||||
</li></ul>
|
|
||||||
</li><li>
|
|
||||||
<a href="ext_jit.html">jit.* Library</a>
|
|
||||||
</li><li>
|
|
||||||
<a href="ext_c_api.html">Lua/C API</a>
|
|
||||||
</li></ul>
|
|
||||||
</li><li>
|
|
||||||
<a href="status.html">Status</a>
|
|
||||||
</li><li>
|
|
||||||
<a class="current" href="faq.html">FAQ</a>
|
|
||||||
</li><li>
|
|
||||||
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
|
||||||
</li></ul>
|
|
||||||
</div>
|
|
||||||
<div id="main">
|
|
||||||
<dl id="info">
|
|
||||||
<dt>Q: Where can I learn more about LuaJIT and Lua?</dt>
|
|
||||||
<dd>
|
|
||||||
<ul style="padding: 0;">
|
|
||||||
<li>The <a href="https://luajit.org/list.html"><span class="ext">»</span> LuaJIT mailing list</a> focuses on topics
|
|
||||||
related to LuaJIT.</li>
|
|
||||||
<li>News about Lua itself can be found at the
|
|
||||||
<a href="https://www.lua.org/lua-l.html"><span class="ext">»</span> Lua mailing list</a>.
|
|
||||||
The mailing list archives are worth checking out for older postings
|
|
||||||
about LuaJIT.</li>
|
|
||||||
<li>The <a href="https://lua.org"><span class="ext">»</span> main Lua.org site</a> has complete
|
|
||||||
<a href="https://www.lua.org/docs.html"><span class="ext">»</span> documentation</a> of the language
|
|
||||||
and links to books and papers about Lua.</li>
|
|
||||||
<li>The community-managed <a href="http://lua-users.org/wiki/"><span class="ext">»</span> Lua Wiki</a>
|
|
||||||
has information about diverse topics.</li>
|
|
||||||
</ul></dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<dl id="tech">
|
|
||||||
<dt>Q: Where can I learn more about the compiler technology used by LuaJIT?</dt>
|
|
||||||
<dd>
|
|
||||||
Please use the following Google Scholar searches to find relevant papers:<br>
|
|
||||||
Search for: <a href="https://scholar.google.com/scholar?q=Trace+Compiler"><span class="ext">»</span> Trace Compiler</a><br>
|
|
||||||
Search for: <a href="https://scholar.google.com/scholar?q=JIT+Compiler"><span class="ext">»</span> JIT Compiler</a><br>
|
|
||||||
Search for: <a href="https://scholar.google.com/scholar?q=Dynamic+Language+Optimizations"><span class="ext">»</span> Dynamic Language Optimizations</a><br>
|
|
||||||
Search for: <a href="https://scholar.google.com/scholar?q=SSA+Form"><span class="ext">»</span> SSA Form</a><br>
|
|
||||||
Search for: <a href="https://scholar.google.com/scholar?q=Linear+Scan+Register+Allocation"><span class="ext">»</span> Linear Scan Register Allocation</a><br>
|
|
||||||
Here is a list of the <a href="http://lua-users.org/lists/lua-l/2009-11/msg00089.html"><span class="ext">»</span> innovative features in LuaJIT</a>.<br>
|
|
||||||
And, you know, reading the source is of course the only way to enlightenment.
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<dl id="arg">
|
|
||||||
<dt>Q: Why do I get this error: "attempt to index global 'arg' (a nil value)"?<br>
|
|
||||||
Q: My vararg functions fail after switching to LuaJIT!</dt>
|
|
||||||
<dd>LuaJIT is compatible to the Lua 5.1 language standard. It doesn't
|
|
||||||
support the implicit <tt>arg</tt> parameter for old-style vararg
|
|
||||||
functions from Lua 5.0.<br>Please convert your code to the
|
|
||||||
<a href="https://www.lua.org/manual/5.1/manual.html#2.5.9"><span class="ext">»</span> Lua 5.1
|
|
||||||
vararg syntax</a>.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<dl id="x87">
|
|
||||||
<dt>Q: Why do I get this error: "bad FPU precision"?<br>
|
|
||||||
<dt>Q: I get weird behavior after initializing Direct3D.<br>
|
|
||||||
<dt>Q: Some FPU operations crash after I load a Delphi DLL.<br>
|
|
||||||
</dt>
|
|
||||||
<dd>
|
|
||||||
|
|
||||||
DirectX/Direct3D (up to version 9) sets the x87 FPU to single-precision
|
|
||||||
mode by default. This violates the Windows ABI and interferes with the
|
|
||||||
operation of many programs — LuaJIT is affected, too. Please make
|
|
||||||
sure you always use the <tt>D3DCREATE_FPU_PRESERVE</tt> flag when
|
|
||||||
initializing Direct3D.<br>
|
|
||||||
|
|
||||||
Direct3D version 10 or higher do not show this behavior anymore.
|
|
||||||
Consider testing your application with older versions, too.<br>
|
|
||||||
|
|
||||||
Similarly, the Borland/Delphi runtime modifies the FPU control word and
|
|
||||||
enables FP exceptions. Of course, this violates the Windows ABI, too.
|
|
||||||
Please check the Delphi docs for the Set8087CW method.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<dl id="ctrlc">
|
|
||||||
<dt>Q: Sometimes Ctrl-C fails to stop my Lua program. Why?</dt>
|
|
||||||
<dd>The interrupt signal handler sets a Lua debug hook. But this is
|
|
||||||
ignored by compiled code. If your program is running in a tight loop
|
|
||||||
and never falls back to the interpreter, the debug hook never runs and
|
|
||||||
can't throw the "interrupted!" error.<br>
|
|
||||||
You have to press Ctrl-C twice to stop your program. That's similar
|
|
||||||
to when it's stuck running inside a C function under the Lua interpreter.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<dl id="order">
|
|
||||||
<dt>Q: Table iteration with <tt>pairs()</tt> does not result in the same order?</dt>
|
|
||||||
<dd>The order of table iteration is explicitly <b>undefined</b> by
|
|
||||||
the Lua language standard.<br>
|
|
||||||
Different Lua implementations or versions may use different orders for
|
|
||||||
otherwise identical tables. Different ways of constructing a table may
|
|
||||||
result in different orders, too.<br>
|
|
||||||
Due to improved VM security, LuaJIT 2.1 may even use a different order
|
|
||||||
on separate VM invocations or when string keys are newly interned.<br><br>
|
|
||||||
If your program relies on a deterministic order, it has a bug. Rewrite it,
|
|
||||||
so it doesn't rely on the key order. Or sort the table keys, if you must.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<dl id="sandbox">
|
|
||||||
<dt>Q: Can Lua code be safely sandboxed?</dt>
|
|
||||||
<dd>
|
|
||||||
Maybe for an extremely restricted subset of Lua and if you relentlessly
|
|
||||||
scrutinize every single interface function you offer to the untrusted code.<br>
|
|
||||||
|
|
||||||
Although Lua provides some sandboxing functionality (<tt>setfenv()</tt>, hooks),
|
|
||||||
it's very hard to get this right even for the Lua core libraries. Of course,
|
|
||||||
you'll need to inspect any extension library, too. And there are libraries
|
|
||||||
that are inherently unsafe, e.g. the <a href="ext_ffi.html">FFI library</a>.<br>
|
|
||||||
|
|
||||||
More reading material at the <a href="http://lua-users.org/wiki/SandBoxes"><span class="ext">»</span> Lua Wiki</a> and <a href="https://en.wikipedia.org/wiki/Sandbox_(computer_security)"><span class="ext">»</span> Wikipedia</a>.<br><br>
|
|
||||||
|
|
||||||
Relatedly, <b>loading untrusted bytecode is not safe!</b><br>
|
|
||||||
|
|
||||||
It's trivial to crash the Lua or LuaJIT VM with maliciously crafted bytecode.
|
|
||||||
This is well known and there's no bytecode verification on purpose, so please
|
|
||||||
don't report a bug about it. Check the <tt>mode</tt> parameter for the
|
|
||||||
<tt>load*()</tt> functions to disable loading of bytecode.<br><br>
|
|
||||||
|
|
||||||
<b>In general, the only promising approach is to sandbox Lua code at the
|
|
||||||
process level and not the VM level.</b>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<dl id="arch">
|
|
||||||
<dt>Q: Lua runs everywhere. Why doesn't LuaJIT support my CPU?</dt>
|
|
||||||
<dd>Because it's a compiler — it needs to generate native
|
|
||||||
machine code. This means the code generator must be ported to each
|
|
||||||
architecture. And the fast interpreter is written in assembler and
|
|
||||||
must be ported, too. This is quite an undertaking.<br>
|
|
||||||
The <a href="install.html">install documentation</a> shows the supported
|
|
||||||
architectures.<br>
|
|
||||||
Other architectures may follow based on sufficient user demand and
|
|
||||||
market-relevance of the architecture. Sponsoring is required to develop
|
|
||||||
the port itself, to integrate it and to continuously maintain it in the
|
|
||||||
actively developed branches.</dd>
|
|
||||||
</dl>
|
|
||||||
<br class="flush">
|
|
||||||
</div>
|
|
||||||
<div id="foot">
|
|
||||||
<hr class="hide">
|
|
||||||
Copyright © 2005-2023
|
|
||||||
<span class="noprint">
|
|
||||||
·
|
|
||||||
<a href="contact.html">Contact</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
236
doc/install.html
236
doc/install.html
@ -20,7 +20,7 @@ table.compat tr.compathead td {
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border-bottom: 2px solid #bfcfff;
|
border-bottom: 2px solid #bfcfff;
|
||||||
}
|
}
|
||||||
td.compatname, td.compatver {
|
td.compatname {
|
||||||
width: 10%;
|
width: 10%;
|
||||||
}
|
}
|
||||||
td.compatbits {
|
td.compatbits {
|
||||||
@ -65,18 +65,18 @@ td.compatx {
|
|||||||
<a href="ext_c_api.html">Lua/C API</a>
|
<a href="ext_c_api.html">Lua/C API</a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="status.html">Status</a>
|
<a href="https://luajit.org/status.html">Status <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="faq.html">FAQ</a>
|
<a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</div>
|
</div>
|
||||||
<div id="main">
|
<div id="main">
|
||||||
<p>
|
<p>
|
||||||
LuaJIT is only distributed as a source package. This page explains
|
LuaJIT is only distributed as source code — get it from the
|
||||||
how to build and install LuaJIT with different operating systems
|
<a href="https://luajit.org/download.html"><span class="ext">»</span> git repository</a>. This page explains how to build
|
||||||
and C compilers.
|
and install the LuaJIT binary and library for different operating systems.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
For the impatient (on POSIX systems):
|
For the impatient (on POSIX systems):
|
||||||
@ -86,201 +86,21 @@ make && sudo make install
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<h2 id="req">Requirements</h2>
|
<h2 id="req">Requirements</h2>
|
||||||
<h3 id="systems">Systems</h3>
|
|
||||||
<p>
|
<p>
|
||||||
LuaJIT currently builds out-of-the box on most systems:
|
LuaJIT currently builds out-of-the box on most systems. Please check the
|
||||||
|
supported operating systems and CPU architectures on the
|
||||||
|
<a href="https://luajit.org/status.html"><span class="ext">»</span> status page</a>.
|
||||||
</p>
|
</p>
|
||||||
<table class="compat">
|
|
||||||
<tr class="compathead">
|
|
||||||
<td class="compatname">OS</td>
|
|
||||||
<td class="compatver">Min. Version</td>
|
|
||||||
<td class="compatx">Requirements</td>
|
|
||||||
<td class="compatx">LuaJIT Versions</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd separate">
|
|
||||||
<td class="compatname"><a href="#windows">Windows</a></td>
|
|
||||||
<td class="compatver">7</td>
|
|
||||||
<td class="compatx">x86 or x64, ARM64: TBA</td>
|
|
||||||
<td class="compatx">v2.0 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even">
|
|
||||||
<td class="compatname"><a href="#posix">Linux</a></td>
|
|
||||||
<td class="compatver"> </td>
|
|
||||||
<td class="compatx"> </td>
|
|
||||||
<td class="compatx">v2.0 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd">
|
|
||||||
<td class="compatname"><a href="#posix">*BSD</a></td>
|
|
||||||
<td class="compatver"> </td>
|
|
||||||
<td class="compatx"> </td>
|
|
||||||
<td class="compatx">v2.0 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even">
|
|
||||||
<td class="compatname"><a href="#osx">macOS (OSX)</a></td>
|
|
||||||
<td class="compatver">10.4</td>
|
|
||||||
<td class="compatx"> </td>
|
|
||||||
<td class="compatx">v2.1 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd">
|
|
||||||
<td class="compatname"><a href="#posix">POSIX</a></td>
|
|
||||||
<td class="compatver"> </td>
|
|
||||||
<td class="compatx">mmap, dlopen</td>
|
|
||||||
<td class="compatx">v2.0 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even separate">
|
|
||||||
<td class="compatname"><a href="#android">Android</a></td>
|
|
||||||
<td class="compatver">4.0</td>
|
|
||||||
<td class="compatx">Recent Android NDK</td>
|
|
||||||
<td class="compatx">v2.0 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd">
|
|
||||||
<td class="compatname"><a href="#ios">iOS</a></td>
|
|
||||||
<td class="compatver">3.0</td>
|
|
||||||
<td class="compatx">Xcode iOS SDK</td>
|
|
||||||
<td class="compatx">v2.1 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even separate">
|
|
||||||
<td class="compatname"><a href="#consoles">PS3</a></td>
|
|
||||||
<td class="compatver"> </td>
|
|
||||||
<td class="compatx">PS3 SDK</td>
|
|
||||||
<td class="compatx">v2.0 – v2.1 EOL</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd">
|
|
||||||
<td class="compatname"><a href="#consoles">PS4</a></td>
|
|
||||||
<td class="compatver"> </td>
|
|
||||||
<td class="compatx">PS4 SDK (ORBIS)</td>
|
|
||||||
<td class="compatx">v2.0 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even">
|
|
||||||
<td class="compatname"><a href="#consoles">PS5</a></td>
|
|
||||||
<td class="compatver"> </td>
|
|
||||||
<td class="compatx">PS5 SDK (PROSPERO)</td>
|
|
||||||
<td class="compatx">v2.1 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd">
|
|
||||||
<td class="compatname"><a href="#consoles">PS Vita</a></td>
|
|
||||||
<td class="compatver"> </td>
|
|
||||||
<td class="compatx">PS Vita SDK (PSP2)</td>
|
|
||||||
<td class="compatx">v2.0 – v2.1 EOL</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even">
|
|
||||||
<td class="compatname"><a href="#consoles">Xbox 360</a></td>
|
|
||||||
<td class="compatver"> </td>
|
|
||||||
<td class="compatx">Xbox 360 SDK (XEDK)</td>
|
|
||||||
<td class="compatx">v2.0 – v2.1 EOL</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd">
|
|
||||||
<td class="compatname"><a href="#consoles">Xbox One</a></td>
|
|
||||||
<td class="compatver"> </td>
|
|
||||||
<td class="compatx">Xbox One SDK (DURANGO)</td>
|
|
||||||
<td class="compatx">v2.1 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even">
|
|
||||||
<td class="compatname"><a href="#consoles">Nintendo Switch</a></td>
|
|
||||||
<td class="compatver"> </td>
|
|
||||||
<td class="compatx">NintendoSDK + NX Addon</td>
|
|
||||||
<td class="compatx">v2.1 –</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<p>
|
|
||||||
The codebase has compatibility defines for some more systems, but
|
|
||||||
without official support.
|
|
||||||
</p>
|
|
||||||
<h3 id="toolchains">Toolchains</h3>
|
|
||||||
<p>
|
<p>
|
||||||
Building LuaJIT requires a recent toolchain based on GCC, Clang/LLVM or
|
Building LuaJIT requires a recent toolchain based on GCC, Clang/LLVM or
|
||||||
MSVC++.
|
MSVC++.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
The Makefile-based build system requires GNU Make and supports
|
The Makefile-based build system requires GNU Make and supports
|
||||||
cross-builds. Batch files are provided for MSVC++ builds and console
|
|
||||||
cross-builds.
|
cross-builds.
|
||||||
</p>
|
</p>
|
||||||
<h3 id="architectures">CPU Architectures</h3>
|
|
||||||
<table class="compat">
|
|
||||||
<tr class="compathead">
|
|
||||||
<td class="compatname">CPU</td>
|
|
||||||
<td class="compatbits">Bits</td>
|
|
||||||
<td class="compatx">Requirements</td>
|
|
||||||
<td class="compatx">Variants</td>
|
|
||||||
<td class="compatx">LuaJIT Versions</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd separate">
|
|
||||||
<td class="compatname">x86</td>
|
|
||||||
<td class="compatbits">32</td>
|
|
||||||
<td class="compatx">v2.1+: SSE2</td>
|
|
||||||
<td class="compatx"> </td>
|
|
||||||
<td class="compatx">v2.0 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even">
|
|
||||||
<td class="compatname">x64</td>
|
|
||||||
<td class="compatbits">64</td>
|
|
||||||
<td class="compatx"> </td>
|
|
||||||
<td class="compatx"> </td>
|
|
||||||
<td class="compatx">v2.0 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd">
|
|
||||||
<td class="compatname">ARM</td>
|
|
||||||
<td class="compatbits">32</td>
|
|
||||||
<td class="compatx">ARMv5+, ARM9E+</td>
|
|
||||||
<td class="compatx">hard-fp + soft-fp</td>
|
|
||||||
<td class="compatx">v2.0 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even">
|
|
||||||
<td class="compatname">ARM64</td>
|
|
||||||
<td class="compatbits">64</td>
|
|
||||||
<td class="compatx"> </td>
|
|
||||||
<td class="compatx">ARM64le + ARM64be</td>
|
|
||||||
<td class="compatx">v2.1 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd">
|
|
||||||
<td class="compatname">PPC32</td>
|
|
||||||
<td class="compatbits">32</td>
|
|
||||||
<td class="compatx"> </td>
|
|
||||||
<td class="compatx">hard-fp + soft-fp</td>
|
|
||||||
<td class="compatx">v2.0 – v2.1 EOL</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even">
|
|
||||||
<td class="compatname">PPC/e500</td>
|
|
||||||
<td class="compatbits">32</td>
|
|
||||||
<td class="compatx">e500v2</td>
|
|
||||||
<td class="compatx"> </td>
|
|
||||||
<td class="compatx">v2.0 EOL</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd">
|
|
||||||
<td class="compatname">MIPS32</td>
|
|
||||||
<td class="compatbits">32</td>
|
|
||||||
<td class="compatx">MIPS32r1 – r5</td>
|
|
||||||
<td class="compatx">hard-fp + soft-fp</td>
|
|
||||||
<td class="compatx">v2.0 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even">
|
|
||||||
<td class="compatname">MIPS64</td>
|
|
||||||
<td class="compatbits">64</td>
|
|
||||||
<td class="compatx">MIPS64r1 – r5</td>
|
|
||||||
<td class="compatx">hard-fp + soft-fp</td>
|
|
||||||
<td class="compatx">v2.1 –</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd">
|
|
||||||
<td class="compatname">MIPS64</td>
|
|
||||||
<td class="compatbits">64</td>
|
|
||||||
<td class="compatx">MIPS64r6</td>
|
|
||||||
<td class="compatx">hard-fp + soft-fp</td>
|
|
||||||
<td class="compatx">v2.1 EOL</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even">
|
|
||||||
<td class="compatname">RISC-V</td>
|
|
||||||
<td class="compatbits">64</td>
|
|
||||||
<td class="compatx">RVA22+</td>
|
|
||||||
<td class="compatx"> </td>
|
|
||||||
<td class="compatx">TBA</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<p>
|
<p>
|
||||||
There are no plans to add historic architectures or to continue support
|
Batch files are provided for MSVC++ builds and console cross-builds.
|
||||||
for end-of-life (EOL) architectures, for which no new CPUs are commonly
|
|
||||||
available anymore. Likewise, there are no plans to support marginal
|
|
||||||
and/or de-facto-dead architectures.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>Configuring LuaJIT</h2>
|
<h2>Configuring LuaJIT</h2>
|
||||||
@ -290,7 +110,6 @@ Usually there is no need to tweak the settings. The following files
|
|||||||
hold all user-configurable settings:
|
hold all user-configurable settings:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><tt>src/luaconf.h</tt> sets some configuration variables.</li>
|
|
||||||
<li><tt>Makefile</tt> has settings for <b>installing</b> LuaJIT (POSIX
|
<li><tt>Makefile</tt> has settings for <b>installing</b> LuaJIT (POSIX
|
||||||
only).</li>
|
only).</li>
|
||||||
<li><tt>src/Makefile</tt> has settings for <b>compiling</b> LuaJIT
|
<li><tt>src/Makefile</tt> has settings for <b>compiling</b> LuaJIT
|
||||||
@ -306,23 +125,11 @@ any settings.
|
|||||||
<h2 id="posix">POSIX Systems (Linux, macOS, *BSD etc.)</h2>
|
<h2 id="posix">POSIX Systems (Linux, macOS, *BSD etc.)</h2>
|
||||||
<h3>Prerequisites</h3>
|
<h3>Prerequisites</h3>
|
||||||
<p>
|
<p>
|
||||||
Depending on your distribution, you may need to install a package for
|
Depending on your distribution, you may need to install a package for a
|
||||||
GCC, the development headers and/or a complete SDK. E.g. on a current
|
compiler (GCC or Clang/LLVM), the development headers and/or a complete SDK.
|
||||||
Debian/Ubuntu, install <tt>libc6-dev</tt> with the package manager.
|
E.g. on a current Debian/Ubuntu, install <tt>build-essential</tt> with the
|
||||||
|
package manager.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
|
||||||
The recommended way to fetch the latest version is to do a pull from
|
|
||||||
the git repository.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Alternatively, download the latest source package of LuaJIT (pick the .tar.gz).
|
|
||||||
Move it to a directory of your choice, open a terminal window and change
|
|
||||||
to this directory. Now unpack the archive and change to the newly created
|
|
||||||
directory (replace XX.YY.ZZ with the version you downloaded):
|
|
||||||
</p>
|
|
||||||
<pre class="code">
|
|
||||||
tar zxf LuaJIT-XX.YY.ZZ.tar.gz
|
|
||||||
cd LuaJIT-XX.YY.ZZ
|
|
||||||
</pre>
|
</pre>
|
||||||
<h3>Building LuaJIT</h3>
|
<h3>Building LuaJIT</h3>
|
||||||
<p>
|
<p>
|
||||||
@ -380,15 +187,10 @@ Either install one of the open source SDKs
|
|||||||
GCC plus the required development headers.
|
GCC plus the required development headers.
|
||||||
Or install Microsoft's Visual Studio (MSVC).
|
Or install Microsoft's Visual Studio (MSVC).
|
||||||
</p>
|
</p>
|
||||||
<p>
|
|
||||||
Next, pull from the git repository or download the source package and
|
|
||||||
unpack it using an archive manager (e.g. the Windows Explorer) to
|
|
||||||
a directory of your choice.
|
|
||||||
</p>
|
|
||||||
<h3>Building with MSVC</h3>
|
<h3>Building with MSVC</h3>
|
||||||
<p>
|
<p>
|
||||||
Open a "Visual Studio Command Prompt" (either x86 or x64), <tt>cd</tt> to the
|
Open a "Visual Studio Command Prompt" (either x86 or x64), <tt>cd</tt> to the
|
||||||
directory where you've unpacked the sources and run these commands:
|
directory with the source code and run these commands:
|
||||||
</p>
|
</p>
|
||||||
<pre class="code">
|
<pre class="code">
|
||||||
cd src
|
cd src
|
||||||
@ -401,8 +203,8 @@ Then follow the installation instructions below.
|
|||||||
<h3>Building with MinGW or Cygwin</h3>
|
<h3>Building with MinGW or Cygwin</h3>
|
||||||
<p>
|
<p>
|
||||||
Open a command prompt window and make sure the MinGW or Cygwin programs
|
Open a command prompt window and make sure the MinGW or Cygwin programs
|
||||||
are in your path. Then <tt>cd</tt> to the directory of the git repository
|
are in your path. Then <tt>cd</tt> to the directory of the git repository.
|
||||||
or where you've unpacked the sources. Then run this command for MinGW:
|
Then run this command for MinGW:
|
||||||
</p>
|
</p>
|
||||||
<pre class="code">
|
<pre class="code">
|
||||||
mingw32-make
|
mingw32-make
|
||||||
@ -547,8 +349,8 @@ make HOST_CC="gcc -m32" CROSS=ppu-lv2-
|
|||||||
To cross-compile for the other consoles from a Windows host, open a
|
To cross-compile for the other consoles from a Windows host, open a
|
||||||
"Native Tools Command Prompt for VS". You need to choose either the 32
|
"Native Tools Command Prompt for VS". You need to choose either the 32
|
||||||
or the 64 bit version of the host compiler to match the target.
|
or the 64 bit version of the host compiler to match the target.
|
||||||
Then <tt>cd</tt> to the <tt>src</tt> directory below where you've
|
Then <tt>cd</tt> to the <tt>src</tt> directory below the source code
|
||||||
unpacked the sources and run the build command given in the table:
|
and run the build command given in the table:
|
||||||
</p>
|
</p>
|
||||||
<table class="compat">
|
<table class="compat">
|
||||||
<tr class="compathead">
|
<tr class="compathead">
|
||||||
|
@ -67,30 +67,6 @@ table.fcompat td {
|
|||||||
background-image: -o-linear-gradient(#41bfbf 10%, #b0ffff 95%);
|
background-image: -o-linear-gradient(#41bfbf 10%, #b0ffff 95%);
|
||||||
background-image: -ms-linear-gradient(#41bfbf 10%, #b0ffff 95%);
|
background-image: -ms-linear-gradient(#41bfbf 10%, #b0ffff 95%);
|
||||||
}
|
}
|
||||||
table.stats td {
|
|
||||||
color: #ffffff;
|
|
||||||
background: #a0a0a0;
|
|
||||||
background-image: linear-gradient(#808080 10%, #d0d0d0 95%);
|
|
||||||
background-image: -moz-linear-gradient(#808080 10%, #d0d0d0 95%);
|
|
||||||
background-image: -webkit-linear-gradient(#808080 10%, #d0d0d0 95%);
|
|
||||||
background-image: -o-linear-gradient(#808080 10%, #d0d0d0 95%);
|
|
||||||
background-image: -ms-linear-gradient(#808080 10%, #d0d0d0 95%);
|
|
||||||
}
|
|
||||||
table.stats td.speed {
|
|
||||||
color: #ff4020;
|
|
||||||
}
|
|
||||||
table.stats td.kb {
|
|
||||||
color: #ffff80;
|
|
||||||
background: #808080;
|
|
||||||
background-image: linear-gradient(#606060 10%, #c0c0c0 95%);
|
|
||||||
background-image: -moz-linear-gradient(#606060 10%, #c0c0c0 95%);
|
|
||||||
background-image: -webkit-linear-gradient(#606060 10%, #c0c0c0 95%);
|
|
||||||
background-image: -o-linear-gradient(#606060 10%, #c0c0c0 95%);
|
|
||||||
background-image: -ms-linear-gradient(#606060 10%, #c0c0c0 95%);
|
|
||||||
}
|
|
||||||
table.feature small {
|
|
||||||
font-size: 50%;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@ -127,9 +103,9 @@ table.feature small {
|
|||||||
<a href="ext_c_api.html">Lua/C API</a>
|
<a href="ext_c_api.html">Lua/C API</a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="status.html">Status</a>
|
<a href="https://luajit.org/status.html">Status <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="faq.html">FAQ</a>
|
<a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
@ -169,23 +145,20 @@ LuaJIT is Copyright © 2005-2023 Mike Pall, released under the
|
|||||||
</table>
|
</table>
|
||||||
|
|
||||||
<h2>Overview</h2>
|
<h2>Overview</h2>
|
||||||
<table class="feature stats">
|
|
||||||
<tr>
|
|
||||||
<td class="speed">3x<br>- 100x</td>
|
|
||||||
<td class="kb">115 <small>KB</small><br>VM</td>
|
|
||||||
<td class="kb">90 <small>KB</small><br>JIT</td>
|
|
||||||
<td class="kloc">63 <small>KLOC</small><br>C</td>
|
|
||||||
<td class="kloc">24 <small>KLOC</small><br>ASM</td>
|
|
||||||
<td class="kloc">11 <small>KLOC</small><br>Lua</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<p style="margin-top: 1em;">
|
<p style="margin-top: 1em;">
|
||||||
LuaJIT has been successfully used as a <b>scripting middleware</b> in
|
LuaJIT has been successfully used as a <b>scripting middleware</b> in
|
||||||
games, appliances, network and graphics apps, numerical simulations,
|
games, appliances, network and graphics apps, numerical simulations,
|
||||||
trading platforms and many other specialty applications. It scales from
|
trading platforms and many other specialty applications.
|
||||||
embedded devices, smartphones, desktops up to server farms. It combines
|
</p>
|
||||||
high flexibility with high performance
|
<p>
|
||||||
and an unmatched <b>low memory footprint</b>.
|
LuaJIT is part of a hundred million web sites, huge SaaS installations,
|
||||||
|
network switches, set-top boxes and other embedded devices. You've probably
|
||||||
|
already used LuaJIT without knowing about it.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
LuaJIT scales from embedded devices, smartphones, desktops up to server
|
||||||
|
farms. It combines high flexibility with high performance and an unmatched
|
||||||
|
<b>low memory footprint</b>.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
LuaJIT has been in continuous development since 2005. It's widely
|
LuaJIT has been in continuous development since 2005. It's widely
|
||||||
|
@ -64,14 +64,15 @@ td.param_default {
|
|||||||
<a href="ext_c_api.html">Lua/C API</a>
|
<a href="ext_c_api.html">Lua/C API</a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="status.html">Status</a>
|
<a href="https://luajit.org/status.html">Status <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="faq.html">FAQ</a>
|
<a href="https://luajit.org/faq.html">FAQ <span class="ext">»</span></a>
|
||||||
</li><li>
|
</li><li>
|
||||||
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</div>
|
</div>
|
||||||
<div id="main">
|
<div id="main">
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
LuaJIT has only a single stand-alone executable, called <tt>luajit</tt> on
|
LuaJIT has only a single stand-alone executable, called <tt>luajit</tt> on
|
||||||
POSIX systems or <tt>luajit.exe</tt> on Windows. It can be used to run simple
|
POSIX systems or <tt>luajit.exe</tt> on Windows. It can be used to run simple
|
||||||
|
107
doc/status.html
107
doc/status.html
@ -1,107 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Status</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
||||||
<meta name="Copyright" content="Copyright (C) 2005-2023">
|
|
||||||
<meta name="Language" content="en">
|
|
||||||
<link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
|
|
||||||
<link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
|
|
||||||
<style type="text/css">
|
|
||||||
ul li { padding-bottom: 0.3em; }
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="site">
|
|
||||||
<a href="https://luajit.org"><span>Lua<span id="logo">JIT</span></span></a>
|
|
||||||
</div>
|
|
||||||
<div id="head">
|
|
||||||
<h1>Status</h1>
|
|
||||||
</div>
|
|
||||||
<div id="nav">
|
|
||||||
<ul><li>
|
|
||||||
<a href="luajit.html">LuaJIT</a>
|
|
||||||
<ul><li>
|
|
||||||
<a href="https://luajit.org/download.html">Download <span class="ext">»</span></a>
|
|
||||||
</li><li>
|
|
||||||
<a href="install.html">Installation</a>
|
|
||||||
</li><li>
|
|
||||||
<a href="running.html">Running</a>
|
|
||||||
</li></ul>
|
|
||||||
</li><li>
|
|
||||||
<a href="extensions.html">Extensions</a>
|
|
||||||
<ul><li>
|
|
||||||
<a href="ext_ffi.html">FFI Library</a>
|
|
||||||
<ul><li>
|
|
||||||
<a href="ext_ffi_tutorial.html">FFI Tutorial</a>
|
|
||||||
</li><li>
|
|
||||||
<a href="ext_ffi_api.html">ffi.* API</a>
|
|
||||||
</li><li>
|
|
||||||
<a href="ext_ffi_semantics.html">FFI Semantics</a>
|
|
||||||
</li></ul>
|
|
||||||
</li><li>
|
|
||||||
<a href="ext_jit.html">jit.* Library</a>
|
|
||||||
</li><li>
|
|
||||||
<a href="ext_c_api.html">Lua/C API</a>
|
|
||||||
</li></ul>
|
|
||||||
</li><li>
|
|
||||||
<a class="current" href="status.html">Status</a>
|
|
||||||
</li><li>
|
|
||||||
<a href="faq.html">FAQ</a>
|
|
||||||
</li><li>
|
|
||||||
<a href="https://luajit.org/list.html">Mailing List <span class="ext">»</span></a>
|
|
||||||
</li></ul>
|
|
||||||
</div>
|
|
||||||
<div id="main">
|
|
||||||
<p>
|
|
||||||
This documentation is for LuaJIT 2.0.5. Please check the <tt>doc</tt>
|
|
||||||
directory in each git branch for the version-specific documentation.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
The currently developed branches are LuaJIT 2.1 and LuaJIT 2.0.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
LuaJIT 2.0 is in feature-freeze — new features will only
|
|
||||||
be added to LuaJIT 2.1.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Current Status</h2>
|
|
||||||
<p>
|
|
||||||
LuaJIT ought to run all Lua 5.1-compatible source code just fine.
|
|
||||||
It's considered a serious bug if the VM crashes or produces unexpected
|
|
||||||
results — please report this.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Known incompatibilities and issues in LuaJIT 2.0:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
There are some differences in <b>implementation-defined</b> behavior.
|
|
||||||
These either have a good reason, are arbitrary design choices,
|
|
||||||
or are due to quirks in the VM. The latter cases may get fixed if a
|
|
||||||
demonstrable need is shown.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
The Lua <b>debug API</b> is missing a couple of features (return
|
|
||||||
hooks for non-Lua functions) and shows slightly different behavior
|
|
||||||
in LuaJIT (no per-coroutine hooks, no tail call counting).
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
Currently, some <b>out-of-memory</b> errors from <b>on-trace code</b> are not
|
|
||||||
handled correctly. The error may fall through an on-trace
|
|
||||||
<tt>pcall</tt> or it may be passed on to the function set with
|
|
||||||
<tt>lua_atpanic</tt> on x64.
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<br class="flush">
|
|
||||||
</div>
|
|
||||||
<div id="foot">
|
|
||||||
<hr class="hide">
|
|
||||||
Copyright © 2005-2023
|
|
||||||
<span class="noprint">
|
|
||||||
·
|
|
||||||
<a href="contact.html">Contact</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
Loading…
Reference in New Issue
Block a user